15 Stimmen

OpenID: Ist die URL-Kennung eindeutig? Was sind die Unterschiede zwischen den Kennungen?

In der OpenID-Spezifikationen heißt es:

  • Kennung:

Ein Identifikator ist lediglich eine URL. Der gesamte Ablauf des OpenID-Authentifizierungsprotokolls besteht darin, zu beweisen, dass ein Endnutzer eine URL besitzt.

  • Beantragter Identifikator:

Ein Identifikator, von dem der Endnutzer behauptet, dass er ihm gehört, was jedoch vom Verbraucher noch nicht überprüft wurde.

  • Geprüfter Identifikator:

Ein Identifikator, den der Endnutzer gegenüber einem Verbraucher als sein Eigentum ausgewiesen hat.

  • Identitätsanbieter:

Auch "IdP" oder "Server" genannt. Dies ist der OpenID-Authentifizierungsserver, den ein Verbraucher kontaktiert, um einen kryptographischen Beweis zu erhalten, dass der Endnutzer den beanspruchten Identifikator besitzt. Wie sich der Endnutzer gegenüber seinem Identity Provider authentifiziert, liegt außerhalb des Anwendungsbereichs von OpenID Authenticaiton.

  • Ist die Bezeichner-URL eindeutig? Wie lautet sie genau?

  • Wenn es nicht eindeutig ist, gibt es irgendetwas Eindeutiges, so dass sich der Verbraucher zwischen verschiedenen Benutzern mit derselben OpenID-Endpunkt-URL unterscheiden kann?

  • Was ist der Unterschied zwischen dem IdP und der Identifier-URL?

An anderen Stellen habe ich den Begriff "OpenID-Endpunkt-URL" gelesen.

  • Ist die URL des OpenID-Endpunkts die gleiche wie die des IdP? Der IdP ist also auch eine URL?

Nehmen wir Googles OpenID als Beispiel. Wenn mich eine Website nach einem OpenID-Login fragt, verwende ich die OpenID-URL https://www.google.com/accounts/o8/id . Ist das die URL der Kennung? Wenn ja, ist sie eindeutig nicht eindeutig. Wenn ich in meinen Kontoeinstellungen auf dieser Website meine OpenID-Anmeldung überprüfe, wird die eingegebene URL oft nicht angezeigt, sondern irgendwie erweitert, wie https://www.google.com/accounts/o8/id?id=AltOawk... . Diese URL scheint jetzt ziemlich einzigartig zu sein.

  • Was ist nun der Zweck der https://www.google.com/accounts/o8/id ? Ist das die OpenID-Endpunkt-URL? Oder ist das die IdP-URL (falls das etwas anderes ist)?

  • Und was ist der Zweck von https://www.google.com/accounts/o8/id?id=AltOawk... ? Ist das wirklich einzigartig und immer dasselbe für mon Google-Konto? Diese URL ist also das, was mich identifiziert?

  • Warum haben sie nicht die https://www.google.com/accounts/o8/id?u={google-username} anstelle dieses kryptischen ...?id=AltOawk... ?

  • Wie lautet die Bezeichner-URL im Falle von Google?

  • Wie lautet die URL des OpenID-Endpunkts? (Was ist die IdP-URL?)

Der Grund für meine Frage ist, dass ich versuche, meinen eigenen OpenID-Endpunkt zu implementieren.

  • Ist die OpenID-Endpunkt-URL die gleiche wie die Bezeichner-URL?

In meiner OpenID-Endpunkt-Implementierung habe ich genau das Problem, dass sie sich nicht zwischen verschiedenen Benutzern unterscheiden kann. Eine Verbraucher-Website nimmt einfach alle Benutzer an diesem OpenID-Endpunkt als denselben an. Natürlich ist es immer dieselbe OpenID-URL, aber das ist auch bei Googles OpenID der Fall.

  • Wenn der Endbenutzer diese "allgemeine" URL verwendet, wie kann ich sie in meiner OpenID-Endpunktimplementierung auf die "konkrete"/einzigartige (Kennung?) URL umleiten/weiterleiten? Oder wie kann ich es schaffen, zwischen verschiedenen Endbenutzern mit derselben OpenID-URL zu unterscheiden?

In meiner derzeitigen Implementierung ist die erste Anforderung, die ich erhalte, wenn ich die Debug-Verfolgung aktiviere, der Modus checkid_setup. In der Spezifikation steht, dass ich hier den Claimed Identifier erhalte. Aufgrund dessen, was ich auf der Verbraucherseite eingegeben habe (und mein Debug-Trace sagt dasselbe), ist dies die "allgemeine" URL (die OpenID-Endpunkt-URL). D.h. das ist nicht die eindeutige URL.

  • Muss ich die Umleitung an dieser Stelle jetzt vornehmen? In der Spezifikation steht nichts darüber. Wo muss ich die "konkrete" URL angeben? (In meinem Fall ist das die URL http://{endpoint-url}?u={endpoint-username} .)

Es gibt auch die Begriffe "OpenID-Server" (URL) und "OpenID-Delegierter" (URL).

  • Wie hängen diese Begriffe mit den anderen oben genannten Begriffen zusammen? Ist das alles dasselbe wie die OpenID-Endpunkt-URL?

  • Was ist die "OpenID-Identität"? Dasselbe wie die OpenID-Kennung URL?


Siehe auch die entsprechende Frage: Wie unterscheidet sich OpenID zwischen verschiedenen Anmeldungen an demselben OpenID-Endpunkt?

(Meta-Frage: Sollte ich das vielleicht in viele unabhängige SO-Fragen aufteilen? Ich habe Angst, dass ich sonst nicht auf alle meine Fragen Antworten bekomme).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X