Zum Hauptinhalt springen

Keycloak

Das JBoss Keycloak-System ist ein weit verbreitetes und Open-Source-Identitätsmanagement-System, das die Integration mit Anwendungen über SAML und OpenID Connect unterstützt. Es kann auch als Identitätsbroker zwischen anderen Anbietern wie LDAP oder anderen SAML-Anbietern und Anwendungen, die SAML oder OpenID Connect unterstützen, fungieren.

Hier ist ein Beispiel, wie man einen neuen Client-Eintrag in Keycloak konfiguriert und Casdoor so einrichtet, dass es verwendet wird, um UI-Login durch Keycloak-Benutzer zu ermöglichen, die über die Keycloak-Konfiguration Zugriff erhalten.

Keycloak konfigurieren

Für dieses Beispiel machen wir die folgenden Konfigurationsentscheidungen und Annahmen:

  • Nehmen wir an, dass du Casdoor lokal im Entwicklungsmodus betreibst. Die Casdoor-UI ist verfügbar unter http://localhost:7001 und der Server ist verfügbar unter http://localhost:8000. Ersetze die URL nach Bedarf durch die entsprechende.
  • Nehmen wir an, dass du Keycloak lokal betreibst. Die Keycloak-UI ist verfügbar unter http://localhost:8080/auth.
  • Basierend darauf wird die SP ACS URL für dieses Deployment sein: http://localhost:8000/api/acs.
  • Unsere SP Entity ID wird dieselbe URL verwenden: http://localhost:8000/api/acs.

Du kannst das Standard-Realm verwenden oder ein neues Realm erstellen.

Keycloak Realm hinzufügen

Keycloak Realm

Einen Client-Eintrag in Keycloak hinzufügen

Info

Weitere Details zu Keycloak-Clients findest du in der Keycloak-Dokumentation.

Klicke im Menü auf Clients und dann auf Erstellen, um zur Seite Client hinzufügen zu gelangen. Fülle die Felder wie folgt aus:

  • Client ID: http://localhost:8000/api/acs - Dies wird die SP Entity ID sein, die später in der Casdoor-Konfiguration verwendet wird.
  • Client-Protokoll: saml.
  • Client SAML Endpoint: http://localhost:8000/api/acs - Diese URL ist der Ort, an den der Keycloak-Server SAML-Anfragen und -Antworten senden soll. In der Regel haben Anwendungen eine URL zur Verarbeitung von SAML-Anfragen. Mehrere URLs können im Einstellungstab des Clients festgelegt werden.

Keycloak-Client hinzufügen

Klicke auf Speichern. Diese Aktion erstellt den Client und bringt dich zum Tab Einstellungen.

Die folgenden sind Teil der Einstellungen:

  1. Name - Casdoor. Dies wird nur verwendet, um einen freundlichen Namen für Keycloak-Benutzer in der Keycloak-UI anzuzeigen. Du kannst jeden beliebigen Namen verwenden.
  2. Aktiviert - Wähle on.
  3. Authn Statement einbeziehen - Wähle on.
  4. Dokumente signieren - Wähle on.
  5. Behauptungen signieren - Wähle off.
  6. Behauptungen verschlüsseln - Wähle off.
  7. Client-Signatur erforderlich - Wähle off.
  8. Name ID Format erzwingen - Wähle on.
  9. Name ID Format - Wähle username.
  10. Gültige Redirect URIs - Füge http://localhost:8000/api/acs hinzu.
  11. Master SAML Processing URL - http://localhost:8000/api/acs.
  12. Feinkörnige SAML-Endpunkt-Konfiguration
    1. Assertion Consumer Service POST Binding URL - http://localhost:8000/api/acs.
    2. Assertion Consumer Service Redirect Binding URL - http://localhost:8000/api/acs.

Die Konfiguration speichern.

Keycloak-Client konfigurieren

Tipp

Wenn du die Authn-Anfrage signieren möchtest, musst du die Option Client Signature Required aktivieren und das von dir generierte Zertifikat hochladen. Der private Schlüssel und das Zertifikat, die in Casdoor verwendet werden, token_jwt_key.key und token_jwt_key.pem, befinden sich im Verzeichnis object. In Keycloak musst du auf den Tab Keys klicken, auf die Schaltfläche Import klicken, Archivformat als Certificate PEM auswählen und das Zertifikat hochladen.

Klicke auf den Tab Installation.

Für Keycloak <= 5.0.0, wähle Formatoption - SAML Metadata IDPSSODescriptor und kopiere die Metadaten.

Für Keycloak 6.0.0+, wähle Formatoption - Mod Auth Mellon Dateien und klicke auf Herunterladen. Entpacke die heruntergeladene .zip, finde idp-metadata.xml und kopiere die Metadaten.

Metadaten herunterladen

Metadaten kopieren

In Casdoor konfigurieren

Einen neuen Anbieter in Casdoor erstellen.

Wähle die Kategorie als SAML, Typ als Keycloak. Kopiere den Inhalt der Metadaten und füge ihn in das Feld Metadaten ein. Die Werte von Endpunkt, IdP und Aussteller-URL werden automatisch generiert, nachdem du auf die Schaltfläche Parse klickst. Klicke abschließend auf die Schaltfläche Speichern.

Tipp

Wenn du die Option Client Signature Required in Keycloak aktivierst und das Zertifikat hochlädst, aktiviere bitte die Option Sign request in Casdoor.

Casdoor-Anbieter

Bearbeite die Anwendung, die du in Casdoor konfigurieren möchtest. Wähle den Anbieter, den du gerade hinzugefügt hast, und klicke auf die Schaltfläche Speichern.

Anbieter für App hinzufügen

Die Wirkung validieren

Gehe zur Anwendung, die du gerade konfiguriert hast, und du wirst ein Keycloak-Symbol auf der Login-Seite finden.

Klicke auf das Symbol und du wirst zur Keycloak-Login-Seite weitergeleitet. Nach erfolgreicher Authentifizierung wirst du in Casdoor eingeloggt sein.

Casdoor-Login