Condivisione della sessione di accesso da un sito Web a un altro?

4

Considerate due società che gestiscono due siti Web distinti, il cliente desidera che l'utente possa accedere a un sito Web e quindi fare clic su un collegamento per navigare verso una determinata parte del secondo sito Web. Il cliente desidera eliminare la necessità di accedere una seconda volta all'arrivo sul secondo sito Web.

Penso che la soluzione sia

  1. Piuttosto che collegarti direttamente al secondo sito web, link a una pagina di reindirizzamento nel primo sito.
  2. La pagina di reindirizzamento genera una stringa casuale e notifica al secondo sito web qual è la stringa casuale e quale ID utente e indirizzo IP è per.
  3. L'utente verrebbe reindirizzato al secondo sito web con la stringa casuale inclusa nell'URL.
  4. Il secondo sito web controllerebbe la stringa casuale + IP + data / ora .
  5. Una volta convalidato, il secondo sito web inizializza una sessione di accesso dando all'utente l'accesso appropriato.

Avvertenze a mia conoscenza sono

  • La sicurezza del secondo sito Web è limitata a quella del primo sito Web.
  • Se l'utente si disconnette da un sito, non verrebbe automaticamente disconnesso dall'altro.

Quindi la mia domanda è

  1. Questa soluzione è buona, sarebbe sicura se implementata correttamente?
  2. C'è un'altra soluzione ovvia / migliore che dovrei esaminare?
  3. Per favore fatemi sapere se ci sono altri avvertimenti che dovrei sapere, o cose a cui prestare attenzione durante l'implementazione.
posta George Bailey 06.01.2014 - 15:45
fonte

1 risposta

4

Usare qualcosa come oauth sarebbe probabilmente più facile e più sicuro. Il problema principale è che non è possibile utilizzare la password utente per la crittografia a livello utente, ma se non è necessario dal sito a cui l'utente non accede direttamente, allora stai bene.

Hai l'idea di base giusta, nel senso che vuoi che l'unico server sia responsabile per il login e l'altro per fidarti di quel server, ma ti suggerirei di volere un sistema che si basi su comunicazioni fidate tra i due server piuttosto di una stringa per convalidare la sessione. Questa è fondamentalmente l'idea con oauth, in cui l'unico sistema ha l'altro sistema che esegue l'accesso e restituisce una convalida che l'utente ha autenticato. Puoi nascondere il processo oauth perché l'utente è già connesso al sito che convaliderà la propria identità, quindi potrebbe essere fatto dietro le quinte.

    
risposta data 06.01.2014 - 15:53
fonte

Leggi altre domande sui tag