Spring Security und OpenID Connect (OIDC)
In meinem aktuellen Projekt verwende ich in einem vollen Umfang der Spring Security, OAuth ( http://projects.spring.io/spring-security-oauth/ ) - Projekt zum Schutz unserer Ressourcen (Web-API). Alles funktioniert einwandfrei bis jetzt.
Ich arbeite jetzt an der Entwicklung des Kunden und ich bin auf der Suche nach eine gute Unterstützung für die Authentifizierung Szenarien (wie OAuth ist ein authorization protocol). Nach langer, langer Suche im internet bin ich ganz sicher, ich sollte die OpenID Connect (http://openid.net/connect/) um diese Anforderung zu erfüllen, als es ist "eine einfache Identität-Schicht auf der Oberseite der OAuth-2.0" (ich weiß, es gibt jedoch keine "einfachen", im Falle von security-Themen).
Traurig aber wahr, ich bin nicht in der Lage zu finden, eine gute Ressourcen, über die Unterstützung für OpenID Connect (nicht zu verwechseln mit "reiner" OpenID) in Spring Security. Es ist eine OpenID Connect-Referenz-Implementierung auf https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server aber ich habe etwas ähnliches erwartet, direkt in/von Spring Security mit einer umfangreichen Dokumentation und so weiter. Ich habe etwa 2 Jahre alte Diskussion darüber hier https://github.com/spring-projects/spring-security-oauth/issues/220 aber was ist der aktuelle Stand? Suche für "Spring-Security-Unterstützung für OpenID Connect" nicht liefern "greifbare" Ergebnisse.
Hast du irgendwelche infos, Dokumentationen und/oder Erfahrung bezüglich der Umsetzung des OpenID Connect mit Hilfe von Spring Security?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bevor OpenID Connect entstanden, war es praktisch okay davon ausgehen, dass der Wert des request-Parameters
response_type
entwedercode
(für authorization code flow) odertoken
(für implizite flow). Jedoch, jetzt ein Autorisierungs-server-Implementierung muss in der Lage sein, jede Kombination von (code
,token
,id_token
), undnone
. Details sind beschrieben in "OpenID Connect-Core-1.0, 3. Authentifizierung" und "OAuth 2.0-Mehrfach-Antwort-Typ-Codierung Praktiken".Als ersten Schritt zur Unterstützung von OpenID Connect, Spring Security, OAuth hat, um sich flexibel für
response_type
. Sie können eine Anforderung für die es bei "Frage 619: Handhabung weitere response_types". Allerdings ist es schwer zu ändern bestehender code, der erwartet, dass nur entwedercode
odertoken
zu einer neuen, die akzeptieren können mehrere Werte gleichzeitig. Als dieser Artikel geschrieben, der neueste Kommentar von Thema 619 gemacht im Dez. 12, 2015 endet mit einem Satz, als Auszug weiter unten.Wenn Spring Security, OAuth ist ein rein ehrenamtliches Projekt ohne Unterstützung von kommerziellen Einrichtungen, so eine große Veränderung wäre unwahrscheinlich.
Meine Erfahrung: vor Etwa zwei Jahren, schrieb ich einen OAuth-2.0-Servers von Grund auf. Es war, nachdem ich wusste von der Existenz von OpenID Connect. Nach der Lektüre Spezifikationen im Zusammenhang mit OpenID Connect, erreichte ich endlich einen Abschluss sichern Sie die vorhandene Implementierung und re-schreiben Sie den server von Grund auf wieder.
Als Sie Ahnen, OpenID Connect ist einfach überhaupt nicht.
Siehe auch "5. Antwort Geben" in
"Full-Scratch-Implementierung von OAuth und OpenID Connect Gespräche Über Erkenntnisse,".
Update (2017-Nov-23)
Authorization Server und OpenID-Provider auf das Spring-Framework
https://github.com/authlete/spring-oauth-server
Resource Server auf Spring Framework
https://github.com/authlete/spring-resource-server
Frühling-oauth-server unterstützt OAuth 2.0 und OpenID Connect. spring-resource-server eine Implementierung der UserInfo Endpunkt definiert ist "OpenID Connect 1.0, 5.3. UserInfo Endpunkt". Beide Implementierungen verwenden Sie nicht Spring Security, OAuth aber verwenden Spring Boot und Authlete.
Blog: Frühling + OAuth 2.0 + OpenID Connect