OpenID OpenID Wie unterscheidet sich OpenID zwischen verschiedenen Anmeldungen auf demselben OpenID-Endpunkt

StackOverflow https://stackoverflow.com/questions/3248925

Frage

Ich versuche einen eigenen OpenID-Endpunkt basierend auf zu implementieren SMF Benutzerkonten.Ich habe meinen Code auf phpMyOpenID und einem SMF-Autorisierungscode basiert.

Es funktioniert bisher gut.Ich kann den Endpunkt verwenden, um mich auf jeder Site anzumelden / zu registrieren.Wenn ich nicht beim SMF angemeldet bin, fragt es nach meinem Login und wenn das SMF-Login erfolgreich ist, akzeptiert es es.

Es scheint jedoch, dass es sich nicht zwischen verschiedenen SMF-Anmeldungen unterscheidet.Z.B.ein anderer Benutzer berichtete, dass er versucht habe, den Endpunkt auf Site X zu verwenden, sich mit seinem SMF-Konto angemeldet und auf meinem Benutzerkonto auf Site X gelandet sei (ich habe den OpenID-Endpunkt zuvor auf dieser Site registriert).

Ich denke, ich muss irgendwie das SMF-Login senden oder es pro SMF-Login irgendwie eindeutig machen.Da es wahrscheinlich trivial ist, was ich zu tun habe, dachte ich, ich würde hier auf SO fragen - vielleicht gibt es auch noch mehr Dinge, die ich reparieren muss.

Der Code (nur PHP), wenn Sie einen Blick darauf werfen möchten, ist hier:http://github.com/albertz/smf-openid-server

Oder beschreiben Sie einfach, was ich tun muss, um es für jedes SMF-Login eindeutig zu machen.

Ein anderes Projekt, das ich plane, ist ein OpenID-Client in einem Multiplayer-C ++ - Spiel.Der Hoster wird die Möglichkeit haben, nur Anmeldungen von Personen zuzulassen, die sich über OpenID authentifizieren können.Außerdem möchte ich es ermöglichen, dass sich nur bestimmte Personen anmelden können.Was ist eine gängige Methode, um eine eindeutige Zeichenfolge basierend auf einer OpenID-Anmeldung zu erhalten?In diesem Fall dachte ich an so etwas wie http://{smf-openid-endpoint}/{smf-user} oder http://www.google.de/profiles/{google-user}.Was ist ein kanonischer Weg, um eine solche Zeichenfolge zu erhalten?

Ich denke, diese andere Frage könnte mit meiner Hauptfrage zusammenhängen, deshalb stelle ich sie auch hier.


Siehe auch die zugehörige Frage: Ist die Identifikations-URL eindeutig?Was sind die verschiedenen Begriffe?

War es hilfreich?

Lösung

Es scheint, dass die erste Anfrage des Endbenutzers, die ich bekomme, ist checkid_einrichtung.Auf dieser Antwort kann ich eine eindeutige URL angeben (wie ich sie nenne eindeutige Zeichenfolge in meiner Frage) in der openid.identity Feld.

Ich habe das jetzt in meinem Code gemacht und es scheint zu funktionieren.Z.B.Ich kann die allgemeine OpenID-Endpunkt-URL eingeben (zum Beispiel auf SourceForge) und sie wird automatisch so erweitert, wie ich es in meiner Frage vorgeschlagen habe.

Um meine zweite Frage zu beantworten:Es scheint, dass die URL der verifizierten Kennung selbst eindeutig ist, sodass diese verwendet werden könnte.Wobei dies manchmal kryptisch aussehen kann (zum Beispiel im Fall von Google ist es nur ein Hash).Dies kann also intern verwendet werden, um zwischen verschiedenen Benutzern zu unterscheiden.Für die grafische Darstellung kann ich den echten Benutzernamen oder die Mailadresse anzeigen, die ich auch von der OpenID-Authentifizierung erhalten soll.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top