2010-07-15 6 views
15

Nel OpenID specs, si dice:OpenID: l'identificatore è univoco? quali sono le differenze tra gli identificatori

  • Identifier:

Un identificatore è solo un URL. L'intero flusso del protocollo di autenticazione OpenID serve a dimostrare che un utente finale è proprietario di un URL.

  • Identifier dichiarati:

un identificatore che l'utente finale dice di loro proprietà, anche se questo non è stato ancora verificato dal consumatore.

  • Verificati Identifier:

un identificatore che l'utente finale ha dimostrato di un consumatore che possiedono.

  • Identity Provider:

Chiamato anche "IdP" o "Server". Questo è il server di autenticazione OpenID che un consumatore contatta per la prova crittografica che l'utente finale possiede l'Identificatore rivendicato. Come l'utente finale autentica il proprio provider di identità è al di fuori dell'ambito di OpenID Authenticaiton.

  • è l'URL identificatore univoco? Cosa è esattamente?

  • Se non è univoco, c'è qualcosa di unico in modo che il consumatore possa differenziarsi tra utenti diversi sullo stesso URL dell'endpoint OpenID?

  • Qual è la differenza tra l'IdP e l'URL dell'identificatore?

In altri punti, ho letto il termine "URL endpoint dell'endpoint".

  • L'URL dell'endpoint OpenID è uguale all'IDP? Quindi l'IdP è anche un URL?

Prendiamo GoID OpenID come esempio. Quando alcuni siti mi chiedono un login OpenID, utilizzo l'URL OpenID https://www.google.com/accounts/o8/id. È l'URL dell'identificatore? Se è così, è chiaramente non unico. Spesso, quando ricontrollo le impostazioni del mio account su quel sito sul mio login OpenID, questo non mostra l'URL inserito ma lo ha esteso in qualche modo come https://www.google.com/accounts/o8/id?id=AltOawk.... Quell'URL ora sembra un po 'unico.

  • Quello che oggi è lo scopo della https://www.google.com/accounts/o8/id? È l'URL dell'endpoint OpenID? O è l'URL IdP (se questo è qualcosa di diverso)?

  • E qual è lo scopo di https://www.google.com/accounts/o8/id?id=AltOawk...?È davvero unico e sempre lo stesso per il mio account my? Quindi quell'URL è ciò che mi identifica?

  • Perché non hanno usato https://www.google.com/accounts/o8/id?u={google-username} invece di questo criptico ...?id=AltOawk...?

  • Qual è l'URL dell'identificatore in caso di Google?

  • Qual è l'URL dell'endpoint OpenID? (Qual è l'URL IdP?)

Il motivo che chiedo è perché sto cercando di implementare il mio punto finale OpenID.

  • L'URL dell'endpoint OpenID è uguale all'URL dell'identificatore?

Nella mia implementazione di endpoint OpenID, ho esattamente quel problema, che non può differire tra utenti diversi. Un sito Web di un utente prende solo tutti gli utenti su quell'endpoint OpenID come lo stesso. Ovviamente è sempre lo stesso URL OpenID, ma è anche il caso di OpenID di Google.

  • Se l'utente finale utilizza questo URL "generale", come posso reindirizzare/inoltrarlo nell'implementazione dell'endpoint OpenID all'URL "concreto"/univoco (identificativo?)? O come faccio a distinguere tra diversi utenti finali sullo stesso URL OpenID?

Nel mio attuale implementazione, quando mi permetto alcune analisi del debug, la prima richiesta che ottenga è il checkid_setup modalità. Nelle specifiche, dice che sto ottenendo l'Identificatore Rivendicato qui. A causa di ciò che ho inserito sul sito del consumatore (e la mia traccia di debug dice lo stesso), questo è l'URL "generale" (l'URL dell'endpoint OpenID). Cioè ovvero non l'URL univoco.

  • Devo eseguire il reindirizzamento a quel punto ora? Le specifiche non dicono nulla al riguardo. Dove posso dire l'URL "concreto"? (Nel mio caso, questo è l'URL http://{endpoint-url}?u={endpoint-username}.)

Ci sono anche i termini "OpenID server" (URL) e "OpenID delegate" (URL).

  • In che modo questi termini si riferiscono agli altri termini sopra riportati? Tutto uguale all'URL dell'endpoint OpenID?

  • Che cos'è "Identità OpenID"? Uguale all'URL dell'ID identificatore?


Vedi anche la relativa domanda: How does OpenID differ between different logins on the same OpenID endpoint?

(domanda Meta:? Dovrei forse dividere questo in un sacco di domande in modo indipendente temo che potrei non avere risposte per tutte le mie domande altrimenti.)

risposta

4

Ok, come ho appena ho fissato il mio SMF OpenID endpoint implementation (leggi i dettagli su alcuni problemi molto affini che ho avuto here), dove ho fatto un paio di ipotesi su tali rapporti. Ovviamente questo non li dimostra (quindi per favore correggimi).Eccoli:

  • Identifier URL = OpenID endpoint URL = IdP

  • L'endpoint OpenID non è unico. È lo stesso per tutti gli utenti finali di quell'endpoint.

  • verificata identificativo URL = identità

  • URL identificatore Verificati è unico. È associato all'account utente endpoint.

  • https://www.google.com/accounts/o8/id è l'URL dell'endpoint di Google OpenID.

  • https://www.google.com/accounts/o8/id?id=AltOawk... è l'URL dell'identificatore verificato di OpenID di Google.

  • L'hash che l'URL di identità di OpenID di Google contiene è anche correlato al dominio OpenID (lo spazio dei nomi del dominio consumer in cui questo identificatore OpenID rimane valido). Questo è uno dei motivi per non essere solo il nome utente.

  • Informazioni su come fornire l'URL dell'identificatore verificato univoco, vedere here.

ancora alcune cose rimangono poco chiari a me:

  • Quali altri motivi ci sono che Google utilizza per l'hash id; potrebbe anche essere utilizzato id?u={username}&oidrealm={...}.

  • Qual è la ragione per avere un tale dominio OpenID?

  • Qual è esattamente la differenza tra l'URL dell'identificatore e l'URL dell'identificatore richiesto?

+0

Perché non 'id? U = {nomeutente} & oidrealm = {...}' ma un "hash"? Un motivo potrebbe essere che forse il tuo indirizzo email può essere derivato dal tuo nome utente? (Nome utente Gmail?) E potresti non voler dare la tua email a Relying Party. Un altro motivo potrebbe essere il fatto che non vuoi nemmeno regalare il tuo nome utente (anche se non può essere mappato sulla tua email), a causa di problemi di privacy. – KajMagnus

+1

[Qui ho trovato una risposta da Google] (http://groups.google.com/group/google-federated-login-api/web/the-most-important-technical-issue-in-using-the-google -accounts-api) (Penso): * Abbiamo scelto di rendere gli identificatori realm-specifici per fornire una misura della privacy ai nostri utenti. Ad esempio, puoi creare un sito che fornisce servizi agli utenti di Google Account, senza dover conoscere le loro identità su Google * – KajMagnus

2

Ecco la mia comprensione. In realtà sto solo rispondendo alle ultime due domande nella tua risposta. Spero che qualcuno trovi questi utili.

Qual è la ragione per avere tale dominio OpenID?

Il dominio viene utilizzato per la sicurezza. Fondamentalmente il return_url è controllato rispetto al regno, e le specifiche OpenID dicono che DEVONO abbinare. Google ha compiuto un ulteriore passo avanti e fornisce identificatori univoci verificati per ciascun dominio. Potrebbero averlo fatto come suggerito e reinserire il reame nel loro identificatore, ma in questo caso si potrebbe capire guardando due identificatori verificati, indipendentemente dal fatto che fossero o meno lo stesso utente finale. Penso che stiano cercando di mantenere i loro identificatori liberi di identificare le informazioni. (Ironico, no?)

Qual è esattamente la differenza tra URL identificatore e sostenuto URL identificativo?

L'identificatore dichiarato è quello che l'utente finale ha specificato. Questo è non il loro identificatore univoco. Yahoo è un buon esempio di questo.Ti permettono di specificare yahoo.com come identificativo, accedere al tuo account yahoo e restituire un identificatore univoco al consumatore openid. Questo semplifica il processo per l'utente finale. (E aumenta la probabilità che useranno yahoo.com come loro OpenID!)

2

E qual è lo scopo della https://www.google.com/accounts/o8/id?id=AltOawk ...? È davvero unico e sempre uguale per il mio account Google? Quindi quell'URL è ciò che mi identifica?

Se ho capito tutto correttamente, la risposta è "Sì, lo è!"

Perché non hanno usato https://www.google.com/accounts/o8/id?u= {google-username} invece di questo criptico ...? Id = AltOawk ...?

immagino che vogliono essere sicuri per le future modifiche al tuo account, se per esempio (ora o in futuro) sarebbe in grado di modificare il nome utente, quindi si sarebbe probabilmente simile a riflettersi nella vostra Identificatore Open-ID-richiesto pure - ma poi ti troverei nei guai! tutte le tue registrazioni per il tuo vecchio identificativo richiesto non sarebbero valutabili. Per saperne di più: http://wiki.openid.net/w/page/12995200/OpenID-Security-Best-Practices e qui: http://blog.nerdbank.net/2008/07/case-for-case-sensitive-openid-url.html

+3

Per quanto riguarda "Sì, lo è!": Varia in base al reame, in realtà. Se accedi con Gmail a example.com e a anotherdomain.com, otterrai diversi hash. Perché? È anche un problema di privacy, suppongo (oltre al motivo che hai menzionato). Dal momento che non si ottiene lo stesso id = ... "hash" quando visiti siti diversi, puoi essere molto anonimo se lo desideri. – KajMagnus

Problemi correlati