2009-09-19 15 views
7

Quale dovrei usare per indicizzare un utente da un processo di autorizzazione di Openid. "openid_identity" o "openid_claimed_id"? Im usando Dope OpenId classe e dati restituiti è:OpenID: quale utilizzare per indicizzare un utente "openid_identity" o "openid_claimed_id"?

[openid_ns] => http://specs.openid.net/auth/2.0 
[openid_mode] => id_res 
[openid_return_to] => http://localhost/login/authenticate 
[openid_claimed_id] => https://me.yahoo.com/a/wK7..MjM-#607 
[openid_identity] => https://me.yahoo.com/a/wK7...MjM- 
[openid_realm] => http://localhost/ 
[openid_assoc_handle] =>odm...j24yhwlT...2TOXQ9.sifIz3eLZoU.....jOoGM...9VPcMVavQkVgEQ-- 
[openid_response_nonce] => 2009-09-19T12:35:08Z95e...WtOYlQ-- 
[openid_signed] => assoc_handle,claimed_id,identity,mode,ns,op_endpoint,response_nonce,return_to,signed,ns.pape,pape.auth_level.ns.nist,pape.auth_level.nist,pape.auth_policies 
[openid_op_endpoint] => https://open.login.yahooapis.com/openid/op/auth 
[openid_ns_pape] => http://specs.openid.net/extensions/pape/1.0 
[openid_pape_auth_level_ns_nist] => http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf 
[openid_pape_auth_level_nist] => 0 
[openid_pape_auth_policies] => http://schemas.openid.net/pape/policies/2007/06/none 
[openid_sig] => kO7......EitU= 

Grazie

risposta

-2

Si deve sempre conservare la forma canonica della OpenID dell'utente fornito come input a causa di OpenID delegazione.

Nel tuo caso sembra che l'identità richiesta abbia un identificatore di frammento alla fine che è irrilevante per il processo OpenID.

+0

Ho fatto una ricerca che ho trovato che dovrebbe usare openid_claimed_id, il sito come yahoo usa il frammento in openid_claimed_id e questo è diff da ogni esempio di frammento https://me.yahoo.com/a/wK7..MjM-#607 è diff da https://me.yahoo.com/a/wK7..MjM-#608 non sono sicuro delle fonti, anche loro sono vecchi .. Grazie per la risposta. Io continuo a confondere quello che dovrei usare :( – mozlima

+0

Il frammento non viene inviato al server, solo JavaScript può effettivamente elaborarlo.Sarebbe piuttosto strano se ha un significato per il processo OpenID Come ho detto: uso una forma canonica di input dell'utente come OpenID! Yahoo non conoscerà alcuna delegazione OpenID che è accaduta prima, ma l'utente sa ancora meglio quale OpenID vuole usare con il tuo servizio! – stefanw

+0

Ma se uso l'input sorgente dell'utente come indice , forse gli URL come http://openid.yahoo/username/, https://openid.yahoo/username/, http://openid.yahoo/username, http://openid.yahoo/username?blabla è il stesso processo nell'OP, ma non nel mio db quindi dovrei usare qualche ref dal server, provare con una piccola possibilità di errori grazie per la risposta – mozlima

7

Utilizzare il parametro openid.claimed_id come chiave primaria logica per gli utenti. Tratta come case sensitive e usa il valore intero. Fare non tagliare il frammento o lo schema (protocollo). Tratta i protocolli "http: //" e "https: //" completamente diversi, anche se il resto dell'URL è lo stesso. In breve, considera lo openid.claimed_id come un valore opaco che deve essere interamente archiviato per i nuovi utenti ed essere interamente abbinato per gli utenti di ritorno.

Il spiega ulteriormente, ma la risposta breve è sopra.

+1

A proposito, non ho ancora sentito parlare di Dope OpenId, ma ci sono alcune scelte per le librerie OpenID di PHP. Ti suggerisco prima di accontentarti di usare Dope OpenID, eseguirlo attraverso i test RP su http://test-id.org/ per assicurarti che sia un'implementazione sicura di OpenID. Se non lo è, ti suggerisco di provare la libreria di Janrain PHP su http://www.openidenabled.com/ che prevedo di superare i test. –

+0

Come è possibile gestire gli OpenID delegati? Quando inserisco mydomain.com che delega a name.myopenid.com, claim_id = mydomain.com? Se il consumatore salva l'OpenID delegato (name.myopenid.com), l'intero senso della delega va sprecato. – stefanw

+0

Sei corretto. Nel caso di delega da mydomain.com a name.myopenid.com, openid.claimed_id è mydomain.com, che consente all'OIP delegato di cambiare mantenendo l'identità dell'utente poiché l'openid.claimed_id non cambia. –

Problemi correlati