en / de
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

Keycloak für Identity and Access Management

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.

Tool einsetzen

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

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:

Keycloak login

Login Screen für Keycloak

Konfiguration der Applikation

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.

 

Kommentare

Schreiben Sie einen Kommentar

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

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden
NACH OBEN
Zur Webcast Übersicht