Einleitung
Die Integration eines externen Identity Providers ist ein essenzieller Schritt zur Verbesserung der Sicherheit und Effizienz moderner IT-Umgebungen. In diesem Beitrag erkläre ich dir, wie du Keycloak, ein leistungsstarkes Open-Source-Identity-Management-Tool, als Identity Provider in der Google Cloud Platform (GCP) einrichtest. Diese Integration nutzt die Workforce Identity Federation von Google, um Mitarbeitern sicheren Zugriff auf Cloud-Ressourcen zu gewähren.
Erfahre in dieser Anleitung Schritt für Schritt, wie du diese Konfiguration umsetzt und welche Best Practices du beachten solltest.
Hinweis: Abgrenzung zu Google Workspace SSO
Diese Anleitung behandelt nicht die Integration eines externen Identity Providers für Single Sign-On (SSO) in Google Workspace, wie sie für Anwendungen wie Gmail oder Google Drive genutzt werden kann. Stattdessen fokussieren wir uns auf die Workforce Identity Federation, die speziell auf den Zugriff auf Google Cloud Platform (GCP)-Ressourcen abzielt.
Voraussetzungen
Bevor du beginnst, stelle sicher, dass folgende Punkte erfüllt sind:
- Verifizierte Domain: Eine Domain, die in der Google Admin-Konsole (admin.google.com) verifiziert wurde, wie folgender Screenshot zeigt:

- Zugang zur GCP: Administrativer Zugang zur Google Cloud Console (https://console.cloud.google.com/).
- Keycloak-Instanz: Eine konfigurierte Keycloak-Umgebung mit administrativen Zugriff
2. Schritte zur Integration von Keycloak in GCP
2.1 GCP: Organisation anlegen
Um eine Organisation in der GCP zu erstellen, muss eine verifizierte Domain vorhanden sein. Die Einrichtung erfolgt über die Cloud Console.

2.2 GCP: Workforce Identity Pool einrichten
Ein Workforce Identity Pool dient als Container für externe Identity Provider. Gehe wie folgt vor:
- Öffne die IAM-Konsole in GCP
- Navigiere zu „Workforce Identity Pools“ und klicke auf „Erstellen“.
- Wähle einen eindeutigen Poolnamen, da dieser später in verschiedenen URIs verwendet wird.

2.3 Keycloak als OIDC Pool Provider hinzufügen
Um Keycloak als Identity Provider zu registrieren:
- Wähle den zuvor erstellten Identity Pool aus.
- Füge einen neuen OIDC-Provider hinzu.
- Gib die Issuer URL aus dem OIDC Metadata File deines Keycloak-Realms ein.
- Lege die ClientID fest, die für die spätere Keycloak-Konfiguration benötigt wird

2.4 Attribute Mapping konfigurieren
Das Mapping von Attributen oder Rollen aus dem OIDC ID Token auf Attribute und Gruppen in GCP ist ein zentraler Schritt. Hierzu gehst du wie folgt vor:
- Nutzeridentifikation: Nutze die E-Mail-Adresse aus dem ID Token als „subject“, um den Nutzer eindeutig in GCP zu identifizieren
- Gruppenzuordnung: Konfiguriere das Multi-Value-Feld „roles“ aus dem ID Token, um Nutzergruppen in GCP zuzuordnen. Dadurch kannst du sicherstellen, dass die Rollen aus Keycloak in GCP korrekt interpretiert werden

2.5 GCP-Gruppen erstellen und Rollen zuweisen
Erstelle Gruppen in GCP und ordne ihnen Rollen zu:
- Nutze den folgenden Befehl, um einer Gruppe die Rolle „Editor“ für ein Projekt zuzuweisen. Beachte, dass diese Einstellung nicht über die grafische Oberfläche der GCP-Konsole vorgenommen werden darf (z. B. über „Grant Access“ im Menüpunkt IAM), sondern explizit über die Befehlszeile erfolgen muss:
gcloud projects add-iam-policy-binding <PROJECT_ID>
--role="roles/editor"
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/<POOL_ID>/group/<GROUP_NAME>"
2. Prüfe die aktuellen Bindings mit:
gcloud projects get-iam-policy <PROJECT_ID>
bindings:
- members:
- principalSet://iam.googleapis.com/locations/global/workforcePools/keycloak02/group/<GROUP_NAME>
role: roles/editor
2.6 Keycloak: GCP als Client hinzufügen
Füge GCP als neuen Client in Keycloak hinzu:
- Navigiere in Keycloak zu „Clients“ und klicke auf „Erstellen“
- Fülle die Client-Einstellungen aus, wie in den Screenshots unten gezeigt. Als ClientID trägst du den Wert ein, den du in Schritt 2.3 als OIDC Pool Provider angegeben hast


- Setze folgende Redirect URI:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID

- Generiere ein neues Client Secret und hinterlege dieses in der GCP OIDC Pool Provider Konfiguration, die du in Schritt 2.3 erstellt hast

2.7 Client Scope und Rollen konfigurieren
Es gibt verschiedene Möglichkeiten das ID Token mit den Nutzerrollen anzureichern. In unserem Fall entscheiden wir uns ein dedizierten Scope für den GCP Client zu erstellen, der standardgemäß aktiviert ist (der Client muss den Scope nicht anfragen) und der die Rollenzugehörigkeit im ID Token im Attribut roles kodiert.
- Zunächst navigieren wir zu den Client Scopes und öffnen dort den“dedicated“-Scope:

- Dort fügen wir einen Mapper vom Typ „User Client Role“ hinzu:


- Konfiguriere Rollen unter dem Tab „Roles“ im GCP-Client und achte darauf, dass diese den GCP-Gruppen entsprechen

3. Demo: Testbenutzer und Anmeldung
3.1 Testbenutzer anlegen
- Erstelle in Keycloak einen Testbenutzer mit E-Mail-Adresse
- Weise ihm die entsprechende Client-Rolle zu (z. B. „grpdevops01“)

3.2 Anmeldung an der GCP
- Der Benutzer meldet sich über eine der folgenden URLs an:
Option 1:
https://auth.cloud.google/signin?continueUrl=https://console.cloud.google/
Bei dieser Option muss der Nutzer anschließend den Provider in die Eingabemaske von Google eintragen:
WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
locations/global/workforcePools/<POOL_ID>/providers/<PROVIDER_ID>
Option 2:
Der Provider kann aber auch der URL mitgegeben werden – somit entfällt die manuelle Eingabe über eine Maske:
https://auth.cloud.google/signin/locations/global/workforcePools/<POOL_ID>/providers/<PROVIDER_ID>?continueUrl=https://console.cloud.google/
- Nach der Weiterleitung zu Keycloak und erfolgreicher Authentifizierung wird der Nutzer zur GCP Console geleitet
- Prüfe, ob der Nutzer Zugriff auf die zugewiesenen Projekte hat

Abbildung: Anmeldung an der GCP mit Keycloak-Integration
Fazit
Die Integration von Keycloak als Identity Provider in GCP verbessert die Sicherheit und vereinfacht das Identitätsmanagement. Mit der Workforce Identity Federation von Google lassen sich Zugriffsrechte granular steuern und externe Nutzer nahtlos einbinden. Nutze diese Anleitung, um deine Cloud-Umgebung optimal zu konfigurieren
Für weitere Informationen besuche die offizielle GCP-Dokumentation.
