In diesem Dokument wird beschrieben, wie Sie einen SCIM-Mandanten in einem Workforce Identity-Pool konfigurieren. Weitere Informationen zu SCIM finden Sie unter SCIM-Bereitstellung für die Mitarbeiteridentitätsföderation.
Jeder Mitarbeiteridentitätspool unterstützt nur einen SCIM-Mandanten. Wenn Sie einen neuen SCIM-Mandanten in einem Pool konfigurieren möchten, in dem bereits einer vorhanden ist, müssen Sie zuerst den vorhandenen Mandanten endgültig löschen.
Das --claim-mapping-Flag für einen SCIM-Mandanten kann nur bestimmte CEL-Ausdrücke (Common Expression Language) enthalten. Informationen zu den unterstützten Ausdrücken finden Sie unter Anspruchszuordnung.
Achten Sie darauf, dass Ihr IdP eindeutige, nicht leere Werte für Attribute bereitstellt, die google.subject und google.group zugeordnet sind. Die Synchronisierung von doppelten Werten schlägt mit einem HTTP-Fehler 409 Conflict fehl und die Synchronisierung von NULL- oder leeren Werten schlägt mit einem HTTP-Fehler 400 Bad Request fehl. Weitere Informationen finden Sie unter SCIM-Unterstützung.
So konfigurieren Sie System for Cross-domain Identity Management (SCIM):
- SCIM-Mandanten und ‑Token in Google Cloud konfigurieren
- SCIM in OIDC- oder SAML-IdP konfigurieren
- Anbieter aktualisieren, um SCIM zu aktivieren
- SCIM-Synchronisierung überprüfen
SCIM-Mandant und ‑Token in Google Cloudkonfigurieren
So konfigurieren Sie einen SCIM-Mandanten in Google Cloud:
-
Erstellen Sie einen SCIM-Mandanten.
gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --provider="PROVIDER_ID" \ --display-name="SCIM_TENANT_DISPLAY_NAME" \ --description="SCIM_TENANT_DESCRIPTION" \ --claim-mapping="CLAIM_MAPPING" \ --location="global"Ersetzen Sie Folgendes:
SCIM_TENANT_ID: Eine ID für Ihren SCIM-Mandanten.WORKFORCE_POOL_ID: die ID des Workforce-Pools, den Sie zuvor in diesem Dokument erstellt haben.PROVIDER_ID: die ID des Anbieters des Workforce Identity-Pools, den Sie zuvor in diesem Dokument erstellt haben.SCIM_TENANT_DISPLAY_NAME: Ein Anzeigename für Ihren SCIM-Mandanten.SCIM_TENANT_DESCRIPTION: eine Beschreibung für Ihren SCIM-Mandanten.CLAIM_MAPPING: eine durch Kommas getrennte Liste von Attributzuordnungen. Eine erweiterte Liste der Zuordnungsattribute finden Sie unter Anforderungszuordnung. Die folgende Zuordnung wird für Gemini Enterprise empfohlen:google.subject=user.emails[0].value.lowerAscii(),google.group=group.externalIdDas Attribut
google.subject, das Sie im SCIM-Mandanten zuordnen, muss mithilfe des Flags--attribute-mappingeindeutig auf dieselben Identitäten verweisen, die im Attributgoogle.subjectim Workforce Identity-Poolanbieter zugeordnet sind. Nachdem der SCIM-Mandant erstellt wurde, können Sie die Anspruchszuordnung nicht mehr aktualisieren. Wenn Sie ihn ersetzen möchten, können Sie den SCIM-Mandanten endgültig löschen und sofort einen neuen erstellen. Weitere Informationen zu den Überlegungen zur Verwendung von SCIM finden Sie unter SCIM-Unterstützung.
-
Wenn der Befehl abgeschlossen ist, gehen Sie so vor:
-
Speichern Sie in der Ausgabe das Feld
baseUrimit dem gesamten URI, der alshttps://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UIDformatiert ist. Sie müssen diesen URI Ihrem IdP zur Verfügung stellen. -
Speichern Sie außerdem nur die
SCIM_TENANT_UIDaus dem URI. Sie benötigen diese UID, um später in diesem Dokument eine IAM-Zulassungsrichtlinie für den SCIM-Mandanten festzulegen.
-
Speichern Sie in der Ausgabe das Feld
-
SCIM-Token erstellen:
gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \ --display-name DISPLAY_NAME \ --scim-tenant SCIM_TENANT_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location globalErsetzen Sie Folgendes:
SCIM_TOKEN_ID: eine ID für das SCIM-TokenDISPLAY_NAME: Der Anzeigename des SCIM-Tokens.WORKFORCE_POOL_ID: die ID des Workforce-PoolsSCIM_TENANT_ID: die ID des SCIM-MandantenPROVIDER_ID: die ID des Anbieters des Mitarbeiteridentitätspools
-
Wenn der Befehl
gcloud iam workforce-pools providers scim-tenants tokens createabgeschlossen ist, gehen Sie so vor:-
Speichern Sie in der Ausgabe den Wert von
SCIM_TOKENim FeldsecurityToken. Sie müssen dieses Sicherheitstoken Ihrem IdP zur Verfügung stellen. Das Sicherheitstoken wird nur in dieser Ausgabe angezeigt. Wenn es verloren geht, müssen Sie ein neues SCIM-Token erstellen. -
Wenn Sie prüfen möchten, ob
SCIM_TOKENvon der Organisationsrichtlinie abgelehnt wird, führen Sie den folgenden Befehl aus:curl -v -H "Authorization: Bearer SCIM_TOKEN" https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
Wenn der Befehl mit einem Berechtigungsfehler fehlschlägt, führen Sie
gcloud organizations add-iam-policy-bindingaus, wie in einem späteren Schritt beschrieben. Wenn der Befehl erfolgreich ausgeführt wird, können Sie diesen Schritt überspringen.
-
-
IAM-Zulassungsrichtlinie für den SCIM-Mandanten und das Token festlegen. Wenn der
curl-Befehl in einem vorherigen Schritt mit einem Berechtigungsfehler fehlgeschlagen ist, müssen Sie den folgenden Befehl ausführen:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncerErsetzen Sie Folgendes:
- ORGANIZATION_ID: die ID der Organisation.
- SERVICE_AGENT_EMAIL: die E-Mail-Adresse des Dienst-Agents. Die E-Mail-Adresse hat das folgende Format:
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID wird zurückgegeben, wenn Sie den SCIM-Mandanten erstellen.
Wenn Sie Gruppen in Ihrem IdP bereitstellen, achten Sie darauf, dass der Anzeigename jeder Gruppe, wie im Feld displayName angegeben, innerhalb eines SCIM-Mandanten eindeutig ist. Weitere Informationen zu Gruppen und SCIM in Microsoft Entra ID finden Sie unter Gruppen.
Anbieter aktualisieren, um SCIM zu aktivieren
Wenn Sie SCIM für einen Anbieter aktivieren möchten, legen Sie das Flag --scim-usage entsprechend Ihrem Produktziel fest:
-
Für Gruppen aktiviert (
enabled-for-groups): Wird für Gemini Enterprise verwendet. Verwendet SCIM-synchronisierte Gruppen für die IAM-Autorisierung und Richtlinienauswertung. Nutzerattribute werden weiterhin aus IdP-Anmeldetokens bezogen. -
Für Nutzer und Gruppen aktiviert (
enabled-for-users-groups): Wird für Looker (Vorschau) verwendet. Verwendet SCIM-synchronisierte Nutzer- und Gruppendaten als primäre Quelle für Ansprüche für die IAM-Autorisierung und OAuth-Anmeldeworkflows.
SCIM für Gruppen aktivieren (Gemini Enterprise)
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Ersetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Ersetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
SCIM für Nutzer und Gruppen aktivieren (Looker) (Vorschau)
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-users-groups
Ersetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-users-groups
Ersetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
Informationen zum Prüfen der SCIM-Synchronisierung finden Sie unter SCIM-Synchronisierung prüfen.
Claim-Mapping
Wenn Sie SCIM konfigurieren, definieren Sie im SCIM-Mandanten Anspruchszuordnungen (--claim-mapping), um SCIM-Nutzer- und ‑Gruppenattribute Google-Attributen zuzuordnen.
Unterstützte Google Cloud Attribute für die Anforderungszuordnung
In der folgenden Tabelle sind die Google Cloud Attribute aufgeführt, die Sie in Ihrem SCIM-Mandanten (--claim-mapping) mit der Common Expression Language (CEL) zuordnen können:
| Google Cloud -Attribut | Anforderung | Beschreibung | Unterstützte Ausdrücke und Grenzwerte |
|---|---|---|---|
google.subject |
Erforderlich |
Eindeutige Kennung für den authentifizierenden Nutzer. Das zugrunde liegende IdP-Attribut, das zum Ausfüllen von |
Beschränkt auf die folgenden Basis-Ausdrücke (oder mit .lowerAscii()):
Maximale Länge: 127 Bytes. Hinweis:Diese Zuordnung ist unveränderlich, sobald der SCIM-Mandant erstellt wurde. Wenn Sie sie aktualisieren möchten, müssen Sie den SCIM-Mandanten endgültig löschen und neu erstellen. |
google.group |
Für SCIM-Gruppen obligatorisch | Eindeutige Kennung für die Gruppenmitgliedschaft, die mit SCIM synchronisiert wird. | Beschränkt auf die folgenden Basis-Ausdrücke (oder mit .lowerAscii()):
Hinweis:Diese Zuordnung ist unveränderlich, sobald der SCIM-Mandant erstellt wurde. Wenn Sie sie aktualisieren möchten, müssen Sie den SCIM-Mandanten endgültig löschen und neu erstellen. |
google.display_name |
Optional | Ein Attribut, mit dem der Name des angemeldeten Nutzers in der Google Cloud Console festgelegt wird. Es kann nicht in IAM-Zulassungsrichtlinien verwendet werden. | Wird einem String-Attribut zugeordnet, z. B. user.displayName oder user.name.formatted. Maximale Länge: 100 Bytes. |
google.profile_photo |
Optional | Eine URL des Miniaturbilds des Nutzers, das in der Google Cloud -Konsole als Profilbild angezeigt wird. Es kann nicht in IAM-Zulassungsrichtlinien verwendet werden. | Muss als gültiger URL-String ausgewertet werden (z. B. user.photos.filter(p, p.type == 'thumbnail')[0].value oder user.photos[0].value). |
google.email |
Optional | Ein Attribut, das verwendet wird, um E‑Mail-Adressen vom Identitätsanbieter zu Produkten zuzuordnen, die über die OAuth-Clientintegration der Mitarbeiteridentitätsföderation integriert werden. Es kann nicht in IAM-Zulassungsrichtlinien verwendet werden. | Wird einem E-Mail-Attribut zugeordnet, z. B. user.emails.filter(e, e.type == 'work')[0].value oder user.emails[0].value. |
google.posix_username |
Optional | Ein eindeutiger POSIX-konformer Nutzernamensstring, der für SSH im Browser und OS Login mit der Mitarbeiteridentitätsföderation verwendet wird. Dieses Attribut kann nicht in IAM-Zulassungsrichtlinien verwendet werden. | Die maximale Länge beträgt 32 Zeichen. |
attribute.KEY |
Optional |
Benutzerdefinierte Attribute aus Ihrem IdP, mit denen Sie Ihre Autorisierungsstrategie in einer IAM-Zulassungsrichtlinie definieren können. Ersetzen Sie KEY durch den Attributnamen, den Sie verwenden möchten. Sie können beispielsweise ein benutzerdefiniertes Attribut wie |
Bis zu 50 benutzerdefinierte Attributzuordnungsregeln. Maximale Größe pro Regel: 256 Zeichen. |
Beispielzuordnungen für die Konsistenz von Themen
Wie unter Unterstützte Attribute für die Anspruchszuordnung beschrieben, muss das zugrunde liegende IdP-Attribut, das zum Ausfüllen von google.subject verwendet wird, sowohl für die Anbieterzuordnung (--attribute-mapping) als auch für den SCIM-Mandanten (--claim-mapping) identisch sein. In der folgenden Tabelle finden Sie Referenzbeispiele für OIDC- oder SAML-IdPs:
| Google-Attribut | Zuordnung von Anbietern von Workforce Identity-Pools | SCIM-Mandantenzuordnung |
|---|
SCIM-Synchronisierung prüfen
Nachdem Sie SCIM konfiguriert haben, können Sie mit curl den IAM SCIM-Dienstendpunkt (iamscim.googleapis.com) abfragen und prüfen, ob Nutzer und Gruppen mit Google Cloudsynchronisiert werden. Für diese Befehle sind ein gültiges SCIM-Token und die UID Ihres SCIM-Mandanten erforderlich. Der Dienst iamscim.googleapis.com implementiert das SCIM 2.0-Protokoll (RFC 7644). Details zu unterstützten Endpunkten, Abfragefiltern und Einschränkungen finden Sie unter Unterstützte und nicht unterstützte Endpunkte und Einschränkungen der Protokollfunktionen.
Nutzersynchronisierung prüfen
So prüfen Sie, ob ein Nutzer richtig synchronisiert wurde: Suchen Sie nach der userName des Nutzers mit dem folgenden Filter:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users?filter=userName%20eq%20%22USER_NAME%22"
Beispielantwort:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "USER_ID",
"userName": "USER_NAME",
...
}
]
}
Gruppensynchronisierung prüfen
So prüfen Sie, ob eine Gruppe richtig synchronisiert wurde: Suchen Sie mit dem folgenden Filter nach der displayName der Gruppe:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=displayName%20eq%20%22GROUP_NAME%22"
Beispielantwort:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Gruppenmitgliedschaft bestätigen
Wenn Sie prüfen möchten, ob ein bestimmter Nutzer Mitglied einer Gruppe ist, verwenden Sie einen Filter, der sowohl die Gruppen- als auch die Nutzer-ID angibt.
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=id%20eq%20%22GROUP_ID%22%20and%20members%20eq%20%22USER_ID%22"
Beispielantwort, wenn der Nutzer Mitglied ist:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Beispielantwort, wenn der Nutzer kein Mitglied ist:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": []
}
Hinweis:Um die GROUP_ID und USER_ID zu erhalten, müssen Sie zuerst die Gruppe und den Nutzer mit den Filtern displayName und userName suchen. Die IDs werden im Feld id der Antwort zurückgegeben. Ersetzen Sie SCIM_TOKEN, SCIM_TENANT_UID, USER_NAME, GROUP_NAME, GROUP_ID und USER_ID durch Ihre tatsächlichen Werte.
Löschen eines SCIM-Mandanten erzwingen
So erzwingen Sie das Löschen eines SCIM-Mandanten:
-
Wenn
--scim-usage=enabled-for-groupsoder--scim-usage=enabled-for-users-groupsfür Ihren Anbieter festgelegt ist, deaktivieren Sie die Option in der Anbieterkonfiguration:OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location=LOCATION \ --scim-usage=SCIM_USAGE_UNSPECIFIEDErsetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location=LOCATION \ --scim-usage=SCIM_USAGE_UNSPECIFIEDErsetzen Sie Folgendes:
PROVIDER_ID: die ID des Anbieters des MitarbeiteridentitätspoolsWORKFORCE_POOL_ID: die ID des Workforce-PoolsLOCATION: der Standort des Workforce-Pools
- Löschen Sie den SCIM-Mandanten:
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=globalErsetzen Sie Folgendes:
SCIM_TENANT_ID: die ID des zu löschenden SCIM-MandantenWORKFORCE_POOL_ID: die ID des Workforce-PoolsPROVIDER_ID: die ID des Anbieters des Mitarbeiteridentitätspools
Nächste Schritte
- Fehlerbehebung bei der SCIM-Bereitstellung
- Nutzer von Workforce Identity-Föderation und deren Daten löschen
- Sitzungen von Nutzern der Mitarbeiteridentitätsföderation widerrufen
- Erfahren Sie, welche Google Cloud Produkte Workforce Identity Federation unterstützen
- Nutzerzugriff auf die Console (föderiert) einrichten