Keycloak-Einmalanmeldung (SSO)

Last reviewed 2024-04-29 UTC

In dieser Anleitung wird beschrieben, wie Sie die Einmalanmeldung (SSO) zwischen Keycloak und Ihrem Cloud Identity- oder Google Workspace-Konto mithilfe der SAML-Föderation einrichten. In diesem Dokument wird davon ausgegangen, dass Sie Keycloak bereits installiert haben und verwenden.

Ziele

  • Konfigurieren Sie Ihren Keycloak-Server so, dass er von Cloud Identity oder Google Workspace als Identitätsanbieter verwendet werden kann.
  • Konfigurieren Sie Ihr Cloud Identity- oder Google Workspace-Konto so, dass es Keycloak für SSO verwendet.

Vorbereitung

  1. Wenn Sie noch kein Cloud Identity-Konto haben, registrieren Sie sich für ein Konto.
  2. Sorgen Sie dafür, dass Ihr Cloud Identity-Konto Super Admin-Berechtigungen hat.
  3. Wenn Ihr Keycloak-Server zum Verwalten von mehr als einem Bereich verwendet wird, entscheiden Sie, welcher Bereich für die Föderation verwendet werden soll.
  4. Sie müssen Administratorzugriff auf den ausgewählten Bereich haben.

SAML-Profil erstellen

Zum Konfigurieren der Einmalanmeldung (SSO) mit Keycloak erstellen Sie zuerst ein SAML-Profil in Ihrem Cloud Identity- oder Google Workspace-Konto. Das SAML-Profil enthält die Einstellungen für Ihren Keycloak-Server, einschließlich der URL und des Signaturzertifikats.

Später weisen Sie das SAML-Profil dann bestimmten Gruppen oder Organisationseinheiten zu.

So erstellen Sie ein neues SAML-Profil in Ihrem Cloud Identity- oder Google Workspace-Konto:

  1. Gehen Sie in der Admin-Konsole zu Sicherheit > Authentifizierung > SSO mit Drittanbieter-IdP.

    Zu „SSO mit Drittanbieter-IdP“

  2. Klicken Sie auf Externe SSO-Profile > SAML-Profil hinzufügen.

  3. Geben Sie auf der Seite SAML SSO Profile (SAML-SSO-Profil) die folgenden Einstellungen ein:

    • Name: Keycloak
    • IdP-Entitäts-ID

      Keycloak 17 oder höher

      https://KEYCLOAK/realms/REALM
      

      Keycloak 16 oder früher

      https://KEYCLOAK/auth/realms/REALM
      
    • URL für Anmeldeseite

      Keycloak 17 oder höher

      https://KEYCLOAK/realms/REALM/protocol/saml
      

      Keycloak 16 oder früher

      https://KEYCLOAK/auth/realms/REALM/protocol/saml
      
    • URL für Abmeldeseite

      Keycloak 17 oder höher

      https://KEYCLOAK/realms/REALM/protocol/openid-connect/logout
      

      Keycloak 16 oder früher

      https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/logout?redirect_uri=https://KEYCLOAK/auth/realms/REALM/account/
      
    • Passwort-URL ändern

      Keycloak 17 oder höher

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 oder früher

      https://KEYCLOAK/auth/realms/REALM/account
      

    Ersetzen Sie in allen URLs Folgendes:

    • KEYCLOAK: der vollständig qualifizierte Domainname Ihres Keycloak-Servers
    • REALM: Name des ausgewählten Bereichs

    Laden Sie noch kein Bestätigungszertifikat hoch.

  4. Klicken Sie auf Speichern.

    Die angezeigte Seite SAML-SSO-Profil enthält zwei URLs:

    • Entitäts-ID
    • ACS-URL

    Sie benötigen diese URLs im nächsten Abschnitt, wenn Sie Keycloak konfigurieren.

Keycloak konfigurieren

Zum Konfigurieren des Keycloak-Servers erstellen Sie einen Client.

Client erstellen

Erstellen Sie einen neuen SAML-Client in Keycloak:

  1. Melden Sie sich in Keycloak an und öffnen Sie die Verwaltungskonsole.
  2. Wähle den Bereich aus, den Sie für die Föderation verwenden möchten.
  3. Wählen Sie im Menü Clients aus.
  4. Klicken Sie auf Create client.
  5. Konfigurieren Sie die folgenden Einstellungen für den Client:

    Keycloak 19 oder höher

    • Client type: SAML
    • Client ID (Client-ID): Entity-URL (Entitäts-URL) Ihres SSO-Profils.
    • Name: Google Cloud

    Keycloak 18 oder früher

    • Client ID (Client-ID): Entity-URL (Entitäts-URL) Ihres SSO-Profils.
    • Client Protocol: saml
    • Client SAML Endpoint: bleibt leer
  6. Klicken Sie auf Speichern.

  7. Geben Sie die Details für den Client an, indem Sie die folgenden Einstellungen konfigurieren:

    Keycloak 19 oder höher

    Auf dem Tab Settings:

    • Gültige Weiterleitungs-URIs: ACS-URL aus Ihrem SSO-Profil
    • Name ID Format: email
    • Force Name ID Format: on
    • Sign documents: off
    • Sign Assertions: on

    Auf dem Tab Keys:

    • Client Signature Required: off

    Keycloak 18 oder früher

    • Name: Ein Name wie Google Cloud
    • Sign Assertions: on
    • Client Signature Required: off
    • Force Name ID Format: on
    • Name ID Format: email
    • Gültige Weiterleitungs-URIs: ACS-URL aus Ihrem SSO-Profil

    Behalten Sie bei allen anderen Einstellungen die Standardwerte bei.

  8. Klicken Sie auf Speichern.

Signaturzertifikat exportieren

Nachdem durch Keycloak ein Nutzer authentifiziert wurde, wird eine SAML-Assertion an Cloud Identity oder Google Workspace übergeben. Damit Cloud Identity und Google Workspace die Integrität und Authentifizierung der Assertion prüfen können, signiert Keycloak die Assertion mit einem speziellen Tokensignaturschlüssel und stellt ein Zertifikat bereit, mit dem Cloud Identity oder Google Workspace die Signatur prüfen können.

Exportieren Sie jetzt das Signaturzertifikat aus Keycloak:

  1. Wählen Sie im Menü Realm settings aus.
  2. Wählen Sie den Tab Keys aus.
  3. Suchen Sie die Zeile für Algorithmus: RS256. Bei mehreren Zeilen verwenden Sie die Zeile mit Use: SIG. Wählen Sie dann Zertifikat aus.

    Ein Dialogfeld mit einem base64-codierten Zertifikat wird angezeigt.

  4. Kopieren Sie den base64-codierten Zertifikatwert in die Zwischenablage.

Bevor Sie das Signaturzertifikat verwenden können, müssen Sie es in das PEM-Format konvertieren. Fügen Sie dazu eine Kopfzeile und eine Fußzeile hinzu.

  1. Öffnen Sie einen Texteditor, z. B. Notepad oder Vim.
  2. Fügen Sie folgenden Header gefolgt von einem Zeilenumbruch ein:

    -----BEGIN CERTIFICATE-----
    
  3. Fügen Sie das base64-codierte Zertifikat aus der Zwischenablage ein.

  4. Fügen Sie einen Zeilenumbruch und die folgende Fußzeile ein:

    -----END CERTIFICATE-----
    

    Nach der Änderung sieht die Datei in etwa so aus:

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Speichern Sie die Datei an einem temporären Speicherort auf Ihrem Computer.

SAML-Profil ausfüllen

Verwenden Sie das Signaturzertifikat, um die Konfiguration Ihres SAML-Profils abzuschließen:

  1. Kehren Sie zur Admin-Konsole zurück und gehen Sie zu Sicherheit > Authentifizierung > SSO mit Drittanbieter-IdP.

    Zu „SSO mit Drittanbieter-IdP“

  2. Öffnen Sie das SAML-Profil Keycloak, das Sie zuvor erstellt haben.

  3. Klicken Sie auf den Abschnitt IdP-Details, um die Einstellungen zu bearbeiten.

  4. Klicken Sie auf Zertifikat hochladen und wählen Sie das Tokensignaturzertifikat aus, das Sie zuvor heruntergeladen haben.

  5. Klicken Sie auf Speichern.

Das SAML-Profil ist vollständig, Sie müssen es aber noch zuweisen.

SAML-Profil zuweisen

Wählen Sie die Nutzer aus, auf die das neue SAML-Profil angewendet werden soll:

  1. Klicken Sie in der Admin-Konsole auf der Seite SSO mit Drittanbieter-IdPs auf SSO-Profilzuweisungen verwalten > Verwalten.

    Zur Seite „SSO-Profilzuweisungen verwalten“

  2. Wählen Sie im linken Bereich die Gruppe oder Organisationseinheit aus, auf die Sie das SSO-Profil anwenden möchten. Wählen Sie die Stammorganisationseinheit aus, wenn das Profil auf alle Nutzer angewendet werden soll.

  3. Wählen Sie im rechten Bereich Anderes SSO-Profil aus.

  4. Wählen Sie im Menü das SSO-Profil Keycloak - SAML aus, das Sie zuvor erstellt haben.

  5. Klicken Sie auf Speichern.

Wiederholen Sie die Schritte, um das SAML-Profil einer anderen Gruppe oder Organisationseinheit zuzuweisen.

Einmalanmeldung (SSO) testen

Sie haben die Konfiguration der Einmalanmeldung (SSO) abgeschlossen. Sie können jetzt prüfen, ob SSO funktioniert.

  1. Wählen Sie einen Keycloak-Nutzer aus, der folgende Kriterien erfüllt:

    • Der Nutzer hat eine E-Mail-Adresse.
    • Die E-Mail-Adresse entspricht der primären E-Mail-Adresse eines vorhandenen Nutzers in Ihrem Cloud Identity- oder Google Workspace-Konto.
    • Der Cloud Identity-Nutzer hat keine Super Admin-Berechtigungen.

      Nutzerkonten mit Super Admin-Berechtigungen müssen zur Anmeldung immer Google-Anmeldedaten verwenden. Deshalb eignen sie sich nicht für das Testen der Einmalanmeldung (SSO).

  2. Öffnen Sie ein neues Browserfenster und rufen Sie die Google Cloud Console auf.

  3. Geben Sie auf der Google-Anmeldeseite die E-Mail-Adresse des Nutzerkontos ein und klicken Sie auf Weiter.

    Google-Anmeldeseite

    Sie werden zu Keycloak umgeleitet.

  4. Geben Sie die Keycloak-Anmeldedaten ein und klicken Sie dann auf Anmelden.

    Nach erfolgreicher Authentifizierung werden Sie von Keycloak zurück zur Google Cloud Console weitergeleitet. Da dies die erste Anmeldung dieses Nutzers ist, werden Sie aufgefordert, die Nutzungsbedingungen und Datenschutzerklärung von Google zu akzeptieren.

  5. Wenn Sie mit den Nutzungsbedingungen einverstanden sind, klicken Sie auf Akzeptieren.

  6. Sie werden zur Google Cloud Console weitergeleitet. Dort werden Sie aufgefordert, die Einstellungen zu bestätigen und die Nutzungsbedingungen von Google Cloud zu akzeptieren. Wenn Sie den Bedingungen zustimmen möchten, klicken Sie auf Ja und dann auf Ich stimme zu – weiter.

  7. Klicken Sie auf das Avatarsymbol und dann auf Abmelden.

    Sie werden zu Keycloak umgeleitet.

Wenn Sie Probleme bei der Anmeldung haben, beachten Sie, dass Nutzerkonten mit Super Admin-Berechtigungen die Einmalanmeldung (SSO) umgehen können. Sie können also weiterhin die Admin-Konsole verwenden, um Einstellungen zu überprüfen oder zu ändern.

Optional: Weiterleitungen für domainspezifische Dienst-URLs konfigurieren

Wenn Sie von internen Portalen oder Dokumenten aus eine Verknüpfung zur Google Cloud Console herstellen, können Sie die Nutzererfahrung mithilfe von domainspezifischen Dienst-URLs verbessern.

Im Gegensatz zu regulären Dienst-URLs wie https://console.cloud.google.com/ enthalten domainspezifische Dienst-URLs den Namen Ihrer primären Domain. Nicht authentifizierte Nutzer, die auf einen Link zu einer URL für einen domainspezifischen Dienst klicken, werden sofort zu Keycloak weitergeleitet und nicht zuerst eine Google-Anmeldeseite angezeigt.

Beispiele für domainspezifische Dienst-URLs:

Google-Dienst URL Logo
Google Cloud Console https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com Logo: Google Cloud
Google Docs https://docs.google.com/a/DOMAIN Logo: Google Docs
Google Tabellen https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com Google Tabellen-Logo
Google Sites https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com Google Sites-Logo
Google Drive https://drive.google.com/a/DOMAIN Google Drive-Logo
Gmail https://mail.google.com/a/DOMAIN Gmail-Logo
Google Groups https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com Logo: Google Groups
Notizen https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com Logo: Google Notizen
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com Logo: Looker Studio

So konfigurieren Sie domainspezifische Dienst-URLs, damit sie zu Keycloak weiterleiten:

  1. Klicken Sie in der Admin-Konsole auf der Seite SSO mit Drittanbieter-IDPs auf Domainspezifische Dienst-URLs > Bearbeiten.

    Zu den domainspezifischen Dienst-URLs

  2. Setzen Sie Nutzer automatisch an den externen IdP im folgenden SSO-Profil weiterleiten auf Aktiviert.

  3. Legen Sie SSO-Profil auf Keycloak fest.

  4. Klicken Sie auf Speichern.

Optional: Identitätsbestätigungen konfigurieren

Google Log-in fordert Nutzer möglicherweise zur zusätzlichen Überprüfung auf, wenn sie sich von unbekannten Geräten aus anmelden oder wenn ihr Anmeldeversuch aus anderen Gründen verdächtig aussieht. Diese Identitätsbestätigungen verbessern die Sicherheit. Wir empfehlen, die Identitätsbestätigung aktiviert zu lassen.

Wenn Sie feststellen, dass Identitätsbestätigungen zu viel Aufwand verursachen, können Sie die Identitätsbestätigung so deaktivieren:

  1. Wechseln Sie in der Admin-Konsole zu Sicherheit > Authentifizierung > Identitätsbestätigungen.
  2. Wählen Sie im linken Bereich eine Organisationseinheit aus, für die Sie die Identitätsbestätigung deaktivieren möchten. Wenn Sie die Identitätsbestätigung für alle Nutzer deaktivieren möchten, wählen Sie die Stammorganisationseinheit aus.
  3. Wählen Sie unter Einstellungen für Nutzer, die sich mit anderen SSO-Profilen anmelden die Option Keine zusätzliche Google-Identitätsbestätigung von Nutzern anfordern aus.
  4. Klicken Sie auf Speichern.

Nächste Schritte