SCIM in OIDC- oder SAML-IdP konfigurieren

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. Welche Ausdrücke unterstützt werden, erfahren Sie hier.

So konfigurieren Sie System for Cross-domain Identity Management (SCIM):
  1. SCIM-Mandanten und ‑Token in Google Cloudkonfigurieren
  2. SCIM in OIDC- oder SAML-IdP konfigurieren
  3. Anbieter aktualisieren, um SCIM zu aktivieren
  4. SCIM-Synchronisierung überprüfen

SCIM-Mandant und ‑Token in Google Cloudkonfigurieren

So konfigurieren Sie einen SCIM-Mandanten in Google Cloud:

  1. SCIM-Mandant erstellen

        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 Token- und SCIM-Attribute zuordnen. Für Gemini Enterprise wird die folgende Zuordnung empfohlen:
      google.subject=user.emails[0].value.lowerAscii(),google.group=group.externalId

      Das Attribut google.subject, das Sie im SCIM-Mandanten zuordnen, muss eindeutig auf dieselben Identitäten verweisen, die im Attribut google.subject im Mitarbeiteridentitäts-Poolanbieter mit dem Flag --attribute-mapping zugeordnet sind. Nachdem der SCIM-Mandant erstellt wurde, können Sie die Anspruchszuordnung nicht mehr aktualisieren. Um ihn zu ersetzen, 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.

  2. Wenn der Befehl abgeschlossen ist, gehen Sie so vor:

    1. Speichern Sie in der Ausgabe im Feld baseUri den gesamten URI, der als https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID formatiert ist. Sie müssen diesen URI Ihrem IdP zur Verfügung stellen.
    2. Speichern Sie außerdem nur die SCIM_TENANT_UID aus dem URI. Sie benötigen diese UID, um später in diesem Dokument eine IAM-Zulassungsrichtlinie für den SCIM-Mandanten festzulegen.
  3. 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 global
        

    Ersetzen Sie Folgendes:

    • SCIM_TOKEN_ID: eine ID für das SCIM-Token
    • DISPLAY_NAME: Der Anzeigename des SCIM-Tokens.
    • WORKFORCE_POOL_ID: die ID des Workforce-Pools
    • SCIM_TENANT_ID: die ID des SCIM-Mandanten
    • PROVIDER_ID: die ID des Bereitstellers des Mitarbeiteridentitätspools
  4. Wenn der Befehl gcloud iam workforce-pools providers scim-tenants tokens create abgeschlossen ist, gehen Sie so vor:

    1. Speichern Sie in der Ausgabe den Wert von SCIM_TOKEN im Feld securityToken. 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.

    2. Führen Sie den folgenden Befehl aus, um zu prüfen, ob SCIM_TOKEN von der Organisationsrichtlinie abgelehnt wird:

      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-binding aus, wie in einem späteren Schritt beschrieben. Wenn der Befehl erfolgreich ausgeführt wird, können Sie diesen Schritt überspringen.

  5. 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.scimSyncer
        

    Ersetzen 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.

Achten Sie beim Bereitstellen von Gruppen in Ihrem IdP 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.

SCIM in Ihrem OIDC- oder SAML-IdP konfigurieren

Konfigurieren Sie SCIM in Ihrem IdP gemäß der Dokumentation des IdP. Verwenden Sie die SCIM-URL und das SCIM-Token aus dem vorherigen Schritt.

Anbieter aktualisieren, um SCIM zu aktivieren

So aktivieren Sie SCIM für einen Anbieter:

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 Bereitstellers des Mitarbeiteridentitätspools
  • WORKFORCE_POOL_ID: die ID des Workforce-Pools
  • LOCATION: der Speicherort 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 Bereitstellers des Mitarbeiteridentitätspools
  • WORKFORCE_POOL_ID: die ID des Workforce-Pools
  • LOCATION: der Speicherort des Workforce-Pools

Informationen zum Prüfen der SCIM-Synchronisierung finden Sie unter SCIM-Synchronisierung prüfen.

Token- und SCIM-Attribute zuordnen

Sie müssen Attribute sowohl im Mitarbeiteridentitätspoolanbieter als auch im SCIM-Mandanten, der für den Anbieter konfiguriert ist, einheitlich zuordnen. Für den Anbieter des Workforce Identity-Pools verwenden Sie das Flag --attribute-mapping und für den SCIM-Mandanten das Flag --claim-mapping. Das IdP-Attribut, das für Nutzer google.subject zugeordnet ist, muss sich eindeutig auf dieselbe Identität beziehen, unabhängig davon, ob es in einer Token- oder SCIM-Zuordnung definiert ist. Weitere Informationen zum Zuordnen von Attributen bei Verwendung von SCIM finden Sie im Abschnitt SCIM-Unterstützung. In der folgenden Tabelle sehen Sie, wie Sie Attribute in Tokenansprüchen und SCIM-Attributen zuordnen:

Google-Attribut Zuordnung von Anbietern von Workforce Identity-Pools SCIM-Mandantenzuordnung
google.subject assertion.sub user.externalId
google.group Aktualisieren Sie Ihren Anbieter mit --scim-usage=enabled-for-groups. N/A group.externalId

SCIM-Synchronisierung überprüfen

Nachdem Sie SCIM konfiguriert haben, können Sie mit curl prüfen, ob Nutzer und Gruppen richtig mit Google Cloudsynchronisiert werden. Für diese Befehle sind ein gültiges SCIM-Token und Ihre SCIM-Mandanten-ID erforderlich.

Nutzersynchronisierung überprüfen

So prüfen Sie, ob ein Nutzer richtig synchronisiert wurde: Suchen Sie mit dem folgenden Filter nach der userName des Nutzers:

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 finden. 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-Tenants:

  1. Wenn --scim-usage=enabled-for-groups für Ihren Anbieter festgelegt ist, deaktivieren Sie die Option in der Anbieterkonfiguration:
              gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
                  --workforce-pool=WORKFORCE_POOL_ID \
                  --location=LOCATION \
                  --scim-usage=SCIM_USAGE_UNSPECIFIED
            

    Ersetzen Sie Folgendes:

    • PROVIDER_ID: die ID des Bereitstellers des Mitarbeiteridentitätspools
    • WORKFORCE_POOL_ID: die ID des Workforce-Pools
    • LOCATION: der Speicherort des Workforce-Pools

  2. 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=global
    

    Ersetzen Sie Folgendes:

    • SCIM_TENANT_ID: die ID des zu löschenden SCIM-Mandanten
    • WORKFORCE_POOL_ID: die ID des Workforce-Pools
    • PROVIDER_ID: die ID des Bereitstellers des Mitarbeiteridentitätspools
    Weitere Informationen zu SCIM, einschließlich des Löschens von SCIM-Mandanten, finden Sie unter SCIM-Unterstützung.

Nächste Schritte