PHP OpenID-Provider-Implementierung mit automatischer Anmeldung durch SSLClientzertifikat

Registriert
Dez. 2009
Beiträge
213
Hallo Community!

Ich wollte mir über meinen Webspace mit eigener Domain einen eigenen Open-ID-Provider hosten, den nur ich nutze, sodass meine OpenID dann 'https://www.meinedomain.de' lautet.

Der Trick an der Sache: Die Authentifizierung des Open-Id-Providers sollte automatisch OHNE Passworteingabe erfolgen, und zwar durch Überprüfung eines SSL-Clientzertifikates.

Ich bin mittlerweile so weit durchgestiegen, dass die Überprüfung des Clientzertifikats funktioniert. Meine Website erkennt also, wenn ich es bin, der sie besucht. Nur fehlt mir noch die Implementierung des Open-ID-Providers.

Sämtliche Open-Id-Provider-Lösungen die ich im Internet gefunden habe sind Komplettsoftware, die man nur mittels Passworteingabe und großem Datenbankanhang nutzen kann, da ist nichts mit meiner Auto-SSL-Login-Idee dabei. Ich bräuchte also quasi nur ein Stück PHP-Code, dass sich um die Abwicklung des Open-ID-Protokolls kümmert und dass die Eigenimplementierung einer Check-Funktion erwartet, ob man wirklich der zu authentifizierende ist (Hätte ich schon). Gleichzeitig neben dem Open-ID-Provider will ich übrigens auch den normalen Content meiner Website weiterhin zur Verfügung stellen, die Domain sollte also nicht nur für den Open-ID-Provider da sein. Vom Open-ID-Provider sollte man eigentlich gar nichts sehen, ich will ihn einfach nur in index.php integrieren.

Ziel sollte eben sein, dass ich in einem Forum zur Anmeldung als OpenID meine Domain angebe und dann kurz zu meiner Website umgelenkt werde und gleich darauf (nach dem SSL-Handshake) automatisch zurückgelenkt werde und angemeldet bin.

Ich bin ganz Stolz auf meine Idee, ihr könnt mir mit eurer Hilfe helfen, dass ich sie umsetzen kann! Vielen Dank schon mal!
 
Geht. Aber du meldest dich nicht "ohne" Passwort an, dein Passwort ist der Private Key. Du musst auf dem Webserver ne eigene CA aufsetzen. Dann einen CSR auf dem Client erstellen, diesen von der CA signieren lassen. Den Rest kann OpenSSL erledigen.

Beim Handshake müsst du eigentlich nur prüfen, ob du das Zertifikat ausgestellt hast und ob es noch gültig ist.
 
Genau das hab ich schon gemacht, zumindest so ähnlich. Ich hab mir nämlich von einer richtigen CA ein Zertifikat ausstellen lassen, dass ich auf meiner Website bereits erkennen und prüfen kann.

Es fehlt eben nur noch die OpenID-Implementierung...
 
Kennst du Browser-ID?
 
Browser ID? War das die eindeutige ID, die manche neue Browser zur Verfügung stellen und dadurch Kritik bezüglich Datenschutz geerntet haben? Sicherlich auch ein Gedanke, dass man sich mittels Browser-ID authentifizieren kann, aber ich will ja mit SSL-Clientzertifikaten authentifizieren und nochmal: Das funktioniert ja schon! Was mir fehlt ist ein entsprechendes OpenID-Handling.
 
Zurück
Oben