2009-02-27 13 views
7

abbiamo un sacco di utenti su un forum VBulletin. ora voglio scrivere poche altre app su binari per la stessa base di utenti. Fino ad ora tutte le attività di autenticazione e gestione delle sessioni sono state gestite da VBulletin. Qual è il modo migliore per fornire SSO per i miei utenti sia onVBulletin e sulle applicazioni rotaie sto scrivendosingle sign on tra applicazioni Vbulletin e Rails


Sto lavorando su singolo processo sign-on con v Bollettino e applicazioni su misura. posso accedere a Vb utilizzando i cookie. posso accedere a tutti. ma quando l'accesso invia "Messaggio privato". si dice

" di aver spento messaggi privati. Non puoi inviare messaggi privati ​​fino a quando non accenderli modificando le opzioni. "

è lì tutti i permessi sono impostati a tavola "origine dati" ?. .

Grazie maestri

risposta

7

Idealmente i tuoi due siti sono sottodomini di un dominio comune (ad esempio forum.example.com e rails.example.com), o condividono lo stesso dominio (www.example.com.) uno dei siti sarebbe l'autenticatore principale e impostare un cookie (per .example.com nel caso del dominio padre comune [notare lo . prima di example.com] o www.example.com nel caso del dominio condiviso, in modo che entrambe le applicazioni possano accedervi), dove il cookie contiene:

  • il user ID
  • un salt (valore casuale calcolato al momento del login) e
  • un SHA-2 signature calcolato sulla tripletta (user ID + salt + un shared secret key), in cui la chiave segreta condivisa è una stringa segreta conosciuto da bo i siti

Ogni sito sarà in grado di recuperare il user ID e salt dal cookie, quindi utilizzare il shared secret key (conosciuto solo dalle due applicazioni) per calcolare un SHA-2 signature che deve corrispondere al SHA-2 signature memorizzati nel cookie.

Se lo SHA-2 signatures corrisponde, è possibile assumere che l'utente sia autenticato, altrimenti obbligare l'utente ad accedere nuovamente.

Il cookie deve essere eliminato durante la disconnessione.

La piccola stampa

Per la protezione contro il dirottamento di sessione, tutte le richieste fatte nel corso dei due siti devono essere crittografati su SSL (utilizzare https). Se questo non è possibile, un hash in base all'indirizzo IP del client così come il tipo di browser e la versione (User-agent) dovrebbero probabilmente essere calcolati al momento del login e anche essere memorizzati nel cookie. Dovrebbe essere ricontrollato con l'indirizzo IP e l'agente utente del cliente prima di servire ogni richiesta. L'approccio basato su hash è la sicurezza attraverso l'oscurità e può essere ingannato; inoltre, un utente che accede a Internet da un pool di proxy o che utilizza TOR può essere espulso dal sistema ogni volta che un diverso proxy o nodo di uscita (con un diverso indirizzo IP) inoltra una richiesta.

Problemi correlati