Die meisten Entwickler haben in ihrem Entwickler-Leben schon einmal Login-Funktionalität erstellt. Meistens startet dies mit einer einfachen Login Seite. Aber wie so häufig bei Softwareentwicklung erscheinen plötzlich weitere Anforderungen:
Und jetzt haben wir alle diese Anforderungen, welche häufig nicht unsere Core-Domäne wiederspiegeln. Sprich wir wollen diese Anforderungen nicht in unserer Applikation umsetzen.
Anstelle diese Anforderungen selber umzusetzen, können wir ein Tool benutzen, welches uns diese Arbeit abnimmt. In diesem Blog stelle ich ein solches Tool kurz vor.
Aber was sind die Anforderungen an ein solches Tool?
Keycloak ist ein Open Source Identity and Access Management Tool welches die Protokolle OpenID Connect, OAuth 2.0 und SAML 2.0 umsetzt. Die oben erwähnten Anforderungen werden erfüllt.
In Keycloak werden sogenannte Clients konfiguriert. Diese Clients dienen als Adapter für Anwendungen, welche von Keycloak Tokens lösen oder verifizieren wollen.
Auf Applikationsseite muss konfiguriert werden, wie auf diese Clients zugegriffen worden soll. Dabei existieren diverse Implementationen für verschiedenste Anwendungen:
Der Benutzer muss bei OAuth 2.0 seine Credentials bei Keycloak direkt angeben. Dabei wird ihm folgender Login-Screen präsentiert:
Je nach Client-Type müssen verschiedene Angaben gemacht werden, aber die Konfiguration hat mindestens folgende Inhalte:
Im Rahmen dieses Blog-Posts wurden zwei Beispiel-Projekte erstellt um die Applikationsseite zu implementieren.
In Jetty kann definiert werden, was für Rollen vorhanden sein müssen um eine Operation auszuführen.
@Path("/mitarbeiter") @RolesAllowed("noser-ma") public class MitarbeiterResource { @GET public List<Person> get() { return Lists.newArrayList(new Person(1, "Manager CEO"), new Person(2, "Lehrling")); }
Dazu wird die Annotation RolesAllowed verwendet. Damit diese Annotation auch innerhalb von Dropwizard funktioniert, wurde ein OpenSource Adapter verwendet.
Schreiben Sie einen Kommentar