Zum Inhalt

Spring-Security und Oauth

Wer sich initial mit Spring und Oauth beschäftigt ist zunächst ein mal verwirrt (ok, ich war verwirrt). Es existieren zwei Implementierung:

  1. die “native” Spring-Security Implementierung für die Konfiguration der Clients und seit neuestem (Version 5.1.X) auch für Ressource Server
  2. ein Unterprojekt, der die vollständige Bandbreite von Oauth abdeckt. Hier ist ein Link für Entwickler: http://projects.spring.io/spring-security-oauth/docs/oauth2.html . Dieses Unterprojekt ermöglicht alles was die “native” Implementierung ermöglicht und zusätzlich die Umsetzung eines Oauth-AuthorizationServers

Für alle, die eigene Application absichern möchten ohne sich um die Benutzerverwaltung kümmern zu wollen, können (und sollen auch) die native Spring-Security Implementierung verwenden.

Diejenigen, die einen eigenen Authorizierungsserver betreiben möchten oder gar müssen, wird die Entscheidung … ich nenne das mal “kompliziert”. Das Spring-Security-Oauth Unterprojekt wird, wie man nach einiger Beschäftigung damit feststellt, nur noch “maintained”. Es werden Bugfixes nachgeschoben, aber die Weiterentwicklung ist eingestellt. Wenn ich die Kommentare bei Github richtig interpretiert habe, dann wird wohl über kurz oder lang die Spring-Security den Oauth vollständig implementieren (inkl. Authorization Server). Es wird aber kein Zeitpunkt genannt, nur die Versionsnummer (5.1.X). Diese Version ist allerdings bereits als GA gekennzeichnet und enthält noch immer keine Authorization Server Implementierung.

Nach dem ich jetzt länger mit dem Spring-Security-Oauth gearbeitet habe, muss ich für mich festhalten, dass die Integration des Oauth Protokolls in das Spring-Security-Biotop die Handhabung des Protokolls extrem verkompliziert. Daher habe ich mich auf die Suche nach einer “einfachen” Implementierung des Protokolls gemacht. Und ich habe bisher noch nichts passendes gefunden.

Was mir unter “einfacheren” Implementierung vorschwebt mir eine Software vor, die mir ohne viel Aufwand ermöglicht, die Urls der Endpunkte zu definieren, Clients anzulegen und die Quelle für die User, z.B. Ldap zu konfigurieren, den Flow für die einzelnen Clients festzulegen und … irgendwas hab ich vergessen.

Ein möglicher Kandidat für meine Anforderung ist : https://github.com/ory/hydra . Aber das muss ich noch prüfen.

Published inUncategorized

Schreibe den ersten Kommentar

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.