Workforce Identity-Föderation konfigurieren

In diesem Leitfaden wird beschrieben, wie Sie eine Workforce Identity-Föderation mit einem Identitätsanbieter (Identity Provider, IdP) konfigurieren, der OIDC oder SAML 2.0 unterstützt.

Eine IdP-spezifische Anleitung finden Sie hier:

Vorbereitung

  1. Sie müssen eine Google Cloud-Organisation eingerichtet haben.

  2. Identity and Access Management (IAM) and Resource Manager APIs aktivieren.

    Aktivieren Sie die APIs

  3. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init

  4. Für die Anmeldung muss Ihr IdP signierte Authentifizierungsinformationen bereitstellen: OIDC-IdPs müssen ein JWT bereitstellen und SAML-IdP-Antworten müssen signiert sein.

  5. Wenn Sie wichtige Informationen zu Änderungen an Ihrer Organisation oder Ihren Google Cloud-Produkten erhalten möchten, müssen Sie Wichtige Kontakte angeben. Weitere Informationen finden Sie unter Workforce Identity Federation – Übersicht.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Mitarbeiteridentitätspool-Administrator (roles/iam.workforcePoolAdmin) für die Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Mitarbeiteridentitätsföderation benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Alternativ enthält die einfache Rolle "Inhaber" (roles/owner) auch Berechtigungen zum Konfigurieren der Workforce Identity-Föderation. In einer Produktionsumgebung sollten Sie keine einfachen Rollen zuweisen, Sie können sie aber in einer Entwicklungs- oder Testumgebung gewähren.

Workforce Identity-Föderation konfigurieren

Zum Konfigurieren der Identitätsföderation von Arbeitslasten erstellen Sie einen Workforce Identity-Pool und einen Workforce Identity-Pool-Anbieter.

Workforce Identity-Pool erstellen

Führen Sie folgenden Befehl aus, um den Pool zu erstellen:

Console

So erstellen Sie den Workforce Identity-Pool:

  1. Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:

    Zu Workforce Identity-Pools

  2. Klicken Sie auf Pool erstellen und gehen Sie so vor:

    1. Geben Sie unter Name den Namen des Pools ein. Die Pool-ID wird während der Eingabe automatisch aus dem Namen abgeleitet.

    2. Optional: Klicken Sie auf Bearbeiten, um die ID zu aktualisieren.

    3. Optional: Geben Sie unter Beschreibung eine Beschreibung des Pools ein.

    4. Die Sitzungsdauer ist standardmäßig festgelegt. Klicken Sie auf Bearbeiten, um eine benutzerdefinierte Sitzungsdauer einzugeben. Die Sitzungsdauer bestimmt, wie lange die Google Cloud-Zugriffstokens, die Console-Anmeldesitzungen (föderiert) und die gcloud CLI-Anmeldungssitzungen aus diesem Workforce-Pool gültig sind. Die Dauer muss mehr als 15 Minuten (900s) und weniger als 12 Stunden (43.200s) betragen. Wenn keine Sitzungsdauer festgelegt ist, wird standardmäßig eine Dauer von einer Stunde (3.600 s) verwendet.

    5. Damit der Pool im aktivierten Status erstellt werden kann, muss Aktivierter Pool aktiviert sein.

    6. Klicken Sie zum Erstellen des Workforce Identity-Pools auf Weiter.

gcloud

Führen Sie folgenden Befehl aus, um den Workforce Identity-Pool zu erstellen:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Ersetzen Sie Folgendes:

  • WORKFORCE_POOL_ID: Eine ID, die Sie wählen, um den Google Cloud-Workforce-pool darzustellen. Informationen zum Formatieren der ID finden Sie in der API-Dokumentation im Abschnitt Abfrageparameter.
  • ORGANIZATION_ID: die numerische Organisations-ID Ihrer Google Cloud-Organisation.
  • DESCRIPTION: Beschreibung des Workforce Identity-Pools.
  • SESSION_DURATION: die Sitzungsdauer, die bestimmt, wie lange die Google Cloud-Zugriffstokens, die Console (föderiert)-Anmeldesitzungen und die gcloud CLI-Anmeldungssitzungen aus diesem Workforce-Pool gültig sind. Die Dauer muss mehr als 15 Minuten (900s) und weniger als 12 Stunden (43.200s) betragen. Wenn keine Sitzungsdauer festgelegt ist, wird standardmäßig eine Dauer von einer Stunde (3.600 s) verwendet.

Workforce Identity-Anbieter erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen Anbieter von Workforce-Identitätspools erstellen, um Ihren IdP-Nutzern den Zugriff auf Google Cloud zu ermöglichen. Sie können den Anbieter so konfigurieren, dass er entweder das OIDC- oder das SAML-Protokoll verwendet.

OIDC-Workforce-Pool-Anbieter erstellen

So erstellen Sie einen Workforce Identity-Anbieter mit dem OIDC-Protokoll:

  1. Registrieren Sie bei Ihrem OIDC-IdP eine neue Anwendung für die Google Cloud-Mitarbeiteridentitätsföderation. Notieren Sie sich die vom IdP bereitgestellte Client-ID und den Aussteller-URI. Sie werden in diesem Dokument verwendet.

  2. Wenn Sie den Nutzerzugriff auf die Console einrichten möchten, fügen Sie Ihrem OIDC-IdP die folgende Weiterleitungs-URL hinzu:

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

    Informationen zum Konfigurieren der Anmeldung in der Console (föderiert) finden Sie unter Nutzerzugriff auf die Console (föderiert) einrichten.

  3. So erstellen Sie den Anbieter in Google Cloud:

    Console

    Codeablauf

    So erstellen Sie in der Google Cloud Console einen OIDC-Anbieter, der den Autorisierungscode-Ablauf verwendet:

    1. Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:

      Zu Workforce Identity-Pools

    2. Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.

    3. Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.

    4. Wählen Sie unter Protokoll auswählen die Option Open ID Connect (OIDC) aus.

    5. Gehen Sie unter Pool-Anbieter erstellen so vor:

      1. Geben Sie unter Name einen Namen für den Anbieter ein.
      2. Geben Sie unter Aussteller (URL) den URI des Ausstellers ein. Der OIDC-Aussteller-URI muss ein gültiges URI-Format haben und mit https beginnen. Beispiel: https://example.com/oidc
      3. Geben Sie die Client-ID ein. Dies ist die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit der aud-Anforderung des JWT übereinstimmen, die von Ihrem IdP ausgestellt wird.
      4. Wenn Sie einen aktivierten Anbieter erstellen möchten, muss die Option Aktivierter Anbieter aktiviert sein.
      5. Klicken Sie auf Weiter.
    6. Gehen Sie unter Antworttyp so vor: Der Antworttyp wird nur für eine webbasierte Einmalanmeldung verwendet.

      1. Wählen Sie unter Antworttyp die Option Code aus.
      2. Geben Sie unter Clientschlüssel den Clientschlüssel von Ihrem IdP ein.
      3. Wählen Sie unter Verhalten bei Assertion-Anforderungen eine der folgenden Optionen aus:

        • Nutzerinformationen und ID-Token
        • Nur ID-Token
      4. Klicken Sie auf Weiter.

    7. Unter Anbieter konfigurieren können Sie eine Attributzuordnung und eine Attributbedingung konfigurieren. So erstellen Sie eine Attributzuordnung: Sie können entweder den Namen des IdP-Felds oder einen CEL-formatierten Ausdruck angeben, der einen String zurückgibt.

      1. Erforderlich: Geben Sie in OIDC 1 den Betreff des IdP ein. Beispiel: assertion.sub
      2. Optional: So fügen Sie zusätzliche Attributzuordnungen hinzu:

        1. Klicken Sie auf Zuordnung hinzufügen.
        2. Geben Sie in Google n, wobei n eine Zahl ist, einen der von Google Cloud unterstützten Schlüssel ein.
        3. Geben Sie im entsprechenden Feld OIDC n den Namen des IdP-spezifischen Felds im CEL-Format ein.
      3. So erstellen Sie eine Attributbedingung:

        1. Klicken Sie auf Bedingung hinzufügen.
        2. Geben Sie unter Attributbedingungen eine Bedingung im CEL-Format ein, z. B. assertion.role == 'gcp-users'. Mit dieser Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit der Rolle gcp-users über diesen Anbieter anmelden können.
    8. Klicken Sie auf Senden, um den Anbieter zu erstellen.

    Impliziter Ablauf

    So erstellen Sie in der Google Cloud Console einen OIDC-Anbieter, der impliziten Ablauf verwendet:

    1. Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:

      Zu Workforce Identity-Pools

    2. Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.

    3. Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.

    4. Wählen Sie unter Protokoll auswählen die Option Open ID Connect (OIDC) aus.

    5. Gehen Sie unter Pool-Anbieter erstellen so vor:

      1. Geben Sie unter Name einen Namen für den Anbieter ein.
      2. Geben Sie unter Aussteller (URL) den URI des Ausstellers ein. Der OIDC-Aussteller-URI muss ein gültiges URI-Format haben und mit https beginnen. Beispiel: https://example.com/oidc
      3. Geben Sie die Client-ID ein. Dies ist die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit der aud-Anforderung des JWT übereinstimmen, die von Ihrem IdP ausgestellt wird.
      4. Wenn Sie einen aktivierten Anbieter erstellen möchten, muss die Option Aktivierter Anbieter aktiviert sein.
      5. Klicken Sie auf Weiter.
    6. Gehen Sie unter Antworttyp so vor: Der Antworttyp wird nur für eine webbasierte Einmalanmeldung verwendet.

      1. Wählen Sie unter Antworttyp die Option ID-Token aus.
      2. Klicken Sie auf Weiter.
    7. Unter Anbieter konfigurieren können Sie eine Attributzuordnung und eine Attributbedingung konfigurieren. So erstellen Sie eine Attributzuordnung: Sie können entweder den Namen des IdP-Felds oder einen CEL-formatierten Ausdruck angeben, der einen String zurückgibt.

      1. Erforderlich: Geben Sie in OIDC 1 den Betreff des IdP ein. Beispiel: assertion.sub

      2. Optional: So fügen Sie zusätzliche Attributzuordnungen hinzu:

        1. Klicken Sie auf Zuordnung hinzufügen.
        2. Geben Sie in Google n, wobei n eine Zahl ist, einen der von Google Cloud unterstützten Schlüssel ein.
        3. Geben Sie im entsprechenden Feld OIDC n den Namen des IdP-spezifischen Felds im CEL-Format ein.
      3. So erstellen Sie eine Attributbedingung:

        1. Klicken Sie auf Bedingung hinzufügen.
        2. Geben Sie unter Attributbedingungen eine Bedingung im CEL-Format ein, z. B. assertion.role == 'gcp-users'. Mit dieser Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit der Rolle gcp-users über diesen Anbieter anmelden können.
    8. Klicken Sie auf Senden, um den Anbieter zu erstellen.

    gcloud

    Codeablauf

    Führen Sie den folgenden Befehl aus, um einen OIDC-Anbieter zu erstellen, der den Autorisierungscode-Ablauf für die Webanmeldung verwendet:

    gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
    --client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global

    Ersetzen Sie Folgendes:

    • PROVIDER_ID: eine eindeutige Anbieter-ID Das Präfix gcp- ist reserviert und kann nicht in einem Pool oder einer Anbieter-ID verwendet werden.
    • WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools, mit dem Ihr IdP verbunden werden soll
    • DISPLAY_NAME: ein optionaler nutzerfreundlicher Anzeigename für den Anbieter; Beispiel: idp-eu-employees
    • DESCRIPTION: eine optionale Beschreibung des Mitarbeiter-Anbieters. Beispiel: IdP for Partner Example Organization employees
    • ISSUER_URI: der OIDC-Aussteller-URI in einem gültigen URI-Format, das mit https beginnt. Beispiel: https://example.com/oidc. Hinweis: Aus Sicherheitsgründen muss ISSUER_URI das HTTPS-Schema verwenden.
    • OIDC_CLIENT_ID: die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit der aud-Anforderung des JWT übereinstimmen, die von Ihrem IdP ausgestellt wird.
    • OIDC_CLIENT_SECRET: der OIDC-Clientschlüssel
    • WEB_SSO_ADDITIONAL_SCOPES: optionale zusätzliche Bereiche, die an den OIDC-IdP für die Console (föderiert) oder die browserbasierte Anmeldung mit der gcloud CLI gesendet werden
    • ATTRIBUTE_MAPPING: eine Attributzuordnung; Beispiel:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      In diesem Beispiel werden die IdP-Attribute subject, assertion.group1 und costcenter in der OIDC-Assertion den Attributen google.subject, google.groups bzw. attribute.costcenter zugeordnet.
    • ATTRIBUTE_CONDITION: eine Attributbedingung; Beispiel: assertion.role == 'gcp-users' Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit der Rolle gcp-users über diesen Anbieter anmelden können.
    • JWK_JSON_PATH: Ein optionaler Pfad zu einem lokal hochgeladenen OIDC-JWKs. Wenn dieser Parameter nicht angegeben ist, verwendet Google Cloud stattdessen den Pfad „/.well-known/openid-configuration“ Ihres IdP, um die JWKs mit den öffentlichen Schlüsseln zu beziehen. Weitere Informationen zu lokal hochgeladenen OIDC JWKs finden Sie unter OIDC-JWKs verwalten.
    In der Befehlsantwort ist POOL_RESOURCE_NAME der Name des Pools, z. B. locations/global/workforcePools/enterprise-example-organization-employees.

    Impliziter Ablauf

    Führen Sie den folgenden Befehl aus, um einen OIDC-Anbieter zu erstellen, der den impliziten Ablauf für die Webanmeldung verwendet:

    gcloud iam workforce-pools providers create-oidc PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
        --web-sso-response-type="id-token" \
        --web-sso-assertion-claims-behavior="only-id-token-claims" \
        --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
        --attribute-mapping="ATTRIBUTE_MAPPING" \
        --attribute-condition="ATTRIBUTE_CONDITION" \
        --jwk-json-path="JWK_JSON_PATH" \
        --location=global
    

    Ersetzen Sie Folgendes:

    • PROVIDER_ID: eine eindeutige Anbieter-ID Das Präfix gcp- ist reserviert und kann nicht in einem Pool oder einer Anbieter-ID verwendet werden.
    • WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools, mit dem Ihr IdP verbunden werden soll
    • DISPLAY_NAME: ein optionaler nutzerfreundlicher Anzeigename für den Anbieter; Beispiel: idp-eu-employees
    • DESCRIPTION: eine optionale Beschreibung des Mitarbeiter-Anbieters. Beispiel: IdP for Partner Example Organization employees
    • ISSUER_URI: der OIDC-Aussteller-URI in einem gültigen URI-Format, das mit https beginnt. Beispiel: https://example.com/oidc. Hinweis: Aus Sicherheitsgründen muss ISSUER_URI das HTTPS-Schema verwenden.
    • OIDC_CLIENT_ID: die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit der aud-Anforderung des JWT übereinstimmen, die von Ihrem IdP ausgestellt wird.
    • WEB_SSO_ADDITIONAL_SCOPES: optionale zusätzliche Bereiche, die an den OIDC-IdP für die Console (föderiert) oder die browserbasierte Anmeldung mit der gcloud CLI gesendet werden
    • ATTRIBUTE_MAPPING: eine Attributzuordnung; Beispiel:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      In diesem Beispiel werden die IdP-Attribute subject, assertion.group1 und costcenter in der OIDC-Assertion den Attributen google.subject, google.groups bzw. attribute.costcenter zugeordnet.
    • ATTRIBUTE_CONDITION: eine Attributbedingung; Beispiel: assertion.role == 'gcp-users' Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit der Rolle gcp-users über diesen Anbieter anmelden können.
    • JWK_JSON_PATH: Ein optionaler Pfad zu einem lokal hochgeladenen OIDC-JWKs. Wenn dieser Parameter nicht angegeben ist, verwendet Google Cloud stattdessen den Pfad „/.well-known/openid-configuration“ Ihres IdP, um die JWKs mit den öffentlichen Schlüsseln zu beziehen. Weitere Informationen zu lokal hochgeladenen OIDC JWKs finden Sie unter OIDC-JWKs verwalten.
    In der Befehlsantwort ist POOL_RESOURCE_NAME der Name des Pools, z. B. locations/global/workforcePools/enterprise-example-organization-employees.

    Das Präfix gcp- ist reserviert und kann nicht in einem Pool oder einer Anbieter-ID verwendet werden.

    Für die OIDC-Föderation können Sie assertion.NAME verwenden: ein String, der dem Wert der gleichnamigen Anforderung in der ID-Token-Nutzlast entspricht.

SAML-Workforce-Pool-Anbieter erstellen

  1. Registrieren Sie bei Ihrem SAML-IdP eine neue Anwendung für die Google Cloud-Workforce Identity-Föderation.

  2. Legen Sie die Zielgruppe für SAML-Assertions fest. Dies ist normalerweise das Feld SP Entity ID in Ihrer IdP-Konfiguration. Legen Sie sie auf die folgende URL fest:

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
    
  3. Wenn Sie den Nutzerzugriff auf die Console einrichten möchten, setzen Sie in Ihrem SAML-IdP das Feld für die Weiterleitungs-URL oder ACS-URL (Assertion Consumer Service) auf die folgende URL:

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

    Weitere Informationen zum Konfigurieren der Anmeldung in der Console finden Sie unter Nutzerzugriff auf die Console einrichten.

  4. Erstellen Sie in Google Cloud einen SAML-Mitarbeiteridentitätspoolanbieter mit dem SAML-Metadatendokument Ihres IdP. Sie können das SAML-Metadaten-XML-Dokument von Ihrem IdP herunterladen. Das Dokument muss mindestens Folgendes enthalten:

    • Eine SAML-Entitäts-ID für Ihren IdP
    • Die URL zur Einmalanmeldung (SSO) für Ihren IdP
    • Mindestens einen öffentlichen Signierschlüssel. Weitere Informationen zu Signierschlüsseln finden Sie weiter unten in dieser Anleitung unter Schlüsselanforderungen.

Console

So konfigurieren Sie den SAML-Anbieter mit der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:

    Zu Workforce Identity-Pools

  2. Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.

  3. Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.

  4. Wählen Sie unter Protokoll auswählen die Option SAML aus.

  5. Gehen Sie unter Pool-Anbieter erstellen so vor:

    1. Geben Sie unter Name einen Namen für den Anbieter ein.

    2. Optional: Geben Sie unter Beschreibung eine Beschreibung für den Anbieter ein.

    3. Wählen Sie in der IdP-Metadatendatei (XML) die XML-Metadatendatei aus, die Sie zuvor in dieser Anleitung generiert haben.

    4. Prüfen Sie, ob Aktivierter Anbieter aktiviert ist.

    5. Klicken Sie auf Weiter.

  6. Führen Sie unter Anbieter konfigurieren die folgenden Schritte aus:

    1. Geben Sie unter Attributzuordnung einen CEL-Ausdruck für google.subject ein.

    2. Optional: Wenn Sie andere Zuordnungen eingeben möchten, klicken Sie auf Zuordnung hinzufügen und geben Sie andere Zuordnungen ein. Beispiel:

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      In diesem Beispiel werden die IdP-Attribute assertion.subject, assertion.attributes['https://example.com/aliases'] und assertion.attributes.costcenter[0] den Google Cloud-Attributen google.subject,google.groups bzw. google.costcenter zugeordnet.

    3. Optional: Klicken Sie auf Bedingung hinzufügen und geben Sie einen CEL-Ausdruck ein, der eine Attributbedingung darstellt, um eine Attributbedingung hinzuzufügen. Wenn Sie beispielsweise das Attribut ipaddr auf einen bestimmten IP-Bereich beschränken möchten, können Sie die Bedingung assertion.attributes.ipaddr.startsWith('98.11.12.') festlegen. Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit einer IP-Adresse, die mit 98.11.12. beginnt, über diesen Workforce-anbieter anmelden können.

    4. Klicken Sie auf Weiter.

  7. Klicken Sie auf Senden, um den Anbieter zu erstellen.

gcloud

So konfigurieren Sie den SAML-Anbieter mit der gcloud CLI:

  gcloud iam workforce-pools providers create-saml PROVIDER_ID \
      --workforce-pool=WORKFORCE_POOL_ID \
      --display-name="DISPLAY_NAME" \
      --description="DESCRIPTION" \
      --idp-metadata-path=METADATA_FILE_PATH \
      --attribute-mapping="ATTRIBUTE_MAPPING" \
      --attribute-condition="ATTRIBUTE_CONDITION" \
      --location=global

Ersetzen Sie Folgendes:

  • PROVIDER_ID: die Anbieter-ID
  • WORKFORCE_POOL_ID: die Pool-ID
  • DISPLAY_NAME: der Anzeigename für den Anbiete; Beispiel: idp-eu-employees
  • DESCRIPTION: die Beschreibung des Workforce Identity-Anbieters Beispiel: IdP for Partner Example Organization EU employees.
  • METADATA_FILE_PATH: der Dateipfad der SAML-Metadaten
  • ATTRIBUTE_MAPPING: die Attributzuordnung. Beispiel:

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    In diesem Beispiel werden die IdP-Attribute assertion.subject, assertion.attributes['https://example.com/aliases'] und assertion.attributes.costcenter[0] den Google Cloud-Attributen google.subject,google.groups bzw. google.costcenter zugeordnet.

  • ATTRIBUTE_CONDITION: Eine Attributbedingung. Wenn Sie beispielsweise das Attribut ipaddr auf einen bestimmten IP-Bereich beschränken möchten, können Sie die Bedingung assertion.attributes.ipaddr.startsWith('98.11.12.') festlegen. Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit einer IP-Adresse, die mit 98.11.12. beginnt, über diesen Workforce-anbieter anmelden können.

Es kann einige Minuten dauern, bis der Anbieter Anfragen akzeptiert.

Für die SAML-Föderation können Sie die folgenden Schlüsselwörter in Attributzuordnungen und Bedingungen verwenden:

  • assertion.subject: ein String, der dem Attribut NameID in der SAML-Assertion entspricht.
  • assertion.attributes.NAME: eine Stringliste, die den Werten der gleichnamigen Attribute in der SAML-Assertion entspricht.

Optional: Verschlüsselte SAML-Assertions von Ihrem IdP akzeptieren

So ermöglichen Sie Ihrem SAML 2.0-IdP, verschlüsselte SAML-Assertions zu erstellen, die von der Workforce Identity-Föderation akzeptiert werden:

  • Führen Sie in der Mitarbeiteridentitätsföderation folgende Schritte aus:
    • Erstellen Sie ein asymmetrisches Schlüsselpaar für den Anbieter des Workforce Identity-Pools.
    • Laden Sie eine Zertifikatsdatei herunter, die den öffentlichen Schlüssel enthält.
    • Konfigurieren Sie Ihren SAML-IdP so, dass er den öffentlichen Schlüssel zum Verschlüsseln von SAML-Assertions verwendet.
  • Gehen Sie bei Ihrem IdP so vor:
    • Aktivieren Sie die Assertion-Verschlüsselung, auch als Tokenverschlüsselung bezeichnet.
    • Laden Sie den öffentlichen Schlüssel hoch, den Sie in der Workforce Identity-Föderation erstellt haben.
    • Prüfen Sie, ob Ihr IdP verschlüsselte SAML-Assertions erstellt.
Beachten Sie, dass die Workforce Identity-Föderation auch dann eine Klartext-Assertion verarbeiten kann, wenn SAML-Verschlüsselungsanbieterschlüssel konfiguriert sind.

SAML-Assertion-Verschlüsselungsschlüssel für die Workforce Identity-Föderation erstellen

In diesem Abschnitt wird beschrieben, wie Sie ein asymmetrisches Schlüsselpaar erstellen, mit dem die Workforce Identity-Föderation verschlüsselte SAML-Assertions akzeptieren kann.

Google Cloud verwendet den privaten Schlüssel zum Entschlüsseln der SAML-Assertions, die Ihr IdP ausgibt. Führen Sie den folgenden Befehl aus, um ein asymmetrisches Schlüsselpaar für die Verwendung mit der SAML-Verschlüsselung zu erstellen. Weitere Informationen finden Sie unter Unterstützte SAML-Verschlüsselungsalgorithmen.

gcloud iam workforce-pools providers keys create KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider PROVIDER_ID \
    --location global \
    --use encryption \
    --spec KEY_SPECIFICATION

Ersetzen Sie Folgendes:

  • KEY_ID: ein Schlüsselname Ihrer Wahl
  • WORKFORCE_POOL_ID: die Pool-ID
  • PROVIDER_ID: die Anbieter-ID
  • KEY_SPECIFICATION: die Schlüsselspezifikation, entweder rsa-2048, rsa-3072 oder rsa-4096

Führen Sie nach dem Erstellen des Schlüsselpaars den folgenden Befehl aus, um den öffentlichen Schlüssel in eine Zertifikatsdatei herunterzuladen. Nur die Workload Identity-Föderation hat Zugriff auf den privaten Schlüssel.

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider PROVIDER_ID \
    --location global \
    --format "value(keyData.key)" \
    > CERTIFICATE_PATH

Ersetzen Sie Folgendes:

  • KEY_ID: der Schlüsselname
  • WORKFORCE_POOL_ID: die Pool-ID
  • PROVIDER_ID: die Anbieter-ID
  • CERTIFICATE_PATH: der Pfad, in den das Zertifikat geschrieben werden soll, z. B. saml-certificate.cer oder saml-certificate.pem

SAML 2.0-konformen IdP für die Ausgabe verschlüsselter SAML-Assertions konfigurieren

Konfigurieren Sie Ihren SAML-IdP so, dass er das im letzten Schritt heruntergeladene öffentliche Zertifikat verwendet, um die ausgegebenen SAML-Assertions zu verschlüsseln. Wenden Sie sich an Ihr IdP-Team, um eine spezifische Anleitung zu erhalten.

Nachdem Sie Ihren IdP so konfiguriert haben, dass SAML-Assertions verschlüsselt werden, sollten Sie prüfen, ob die generierten Assertions tatsächlich verschlüsselt sind. Die Workforce Identity-Föderation kann weiterhin Klartext-Assertions verarbeiten, auch wenn die SAML-Assertion-Verschlüsselung konfiguriert ist.

Verschlüsselungsschlüssel der Mitarbeiteridentitätsföderation löschen

Führen Sie den folgenden Befehl aus, um SAML-Verschlüsselungsschlüssel zu löschen:
  gcloud iam workforce-pools providers keys delete KEY_ID \
      --workforce-pool WORKFORCE_POOL_ID \
      --provider PROVIDER_ID \
      --location global

Ersetzen Sie Folgendes:

  • KEY_ID: der Schlüsselname
  • WORKFORCE_POOL_ID: die Pool-ID
  • PROVIDER_ID: die Anbieter-ID

Unterstützte SAML-Verschlüsselungsalgorithmen

Die Workforce Identity-Föderation unterstützt die folgenden Schlüsseltransportalgorithmen:

Die Workforce Identity-Föderation unterstützt die folgenden Blockverschlüsselungsalgorithmen:

Anforderungen an SAML X.509-Signaturschlüssel

Die folgenden Schlüsselspezifikationen gelten für SAML-X.509-Signaturschlüssel:

  • Ein öffentlicher RSA-Schlüssel, der in ein X.509 v3-Zertifikat eingebunden ist.

  • Anforderungen an die Gültigkeit von Zertifikaten:

    • notBefore: ein Zeitstempel, der nicht mehr als sieben Tage in der Zukunft liegt
    • notAfter: ein Zeitstempel, der nicht mehr als 15 Jahre in der Zukunft liegt
  • Empfohlene Algorithmen:

Ein Workforce Identity-Poolanbieter kann zu einem bestimmten Zeitpunkt mit maximal drei Signaturschlüssel konfiguriert werden. Wenn mehrere Schlüssel vorhanden sind, iteriert Google Cloud sie durch und versucht, jeden nicht abgelaufenen Schlüssel zum Ausführen einer Anfrage zum Tokenaustausch zu verwenden.

Als Best Practice für die Sicherheit empfehlen wir dringend, nicht dasselbe Schlüsselpaar mit anderen Diensten wiederzuverwenden.

Schlüsselverwaltung

So aktualisieren Sie die Signierschlüssel Ihres IdP:

  1. Erstellen Sie ein neues asymmetrisches Schlüsselpaar und konfigurieren Sie den SAML-Identitätsanbieter mit dem Schlüsselpaar. Sie markieren ihn zuerst als inaktiv, bevor Sie ihn in einem späteren Schritt aktivieren.

  2. Laden Sie ein SAML-Metadaten-XML-Dokument von Ihrem IdP herunter.

  3. Aktualisieren Sie die Ressource des Anbieters des Workload Identity-Pools mithilfe des SAML-Metadatendokuments. Wenn mehrere Schlüssel vorhanden sind, iteriert Google Cloud durch jeden nicht abgelaufenen Schlüssel und versucht, ihn zu verwenden, um eine Anfrage zum Tokenaustausch zu erfüllen.

    Führen Sie den folgenden Befehl aus, um den Anbieter des Workload Identity-Pools mit den SAML-Metadaten zu aktualisieren.

    gcloud iam workforce-pools providers update-saml PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Ersetzen Sie Folgendes:

    • PROVIDER_ID: die Anbieter-ID
    • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools
    • SAML_METADATA_FILE_PATH: der Pfad zur SAML-Metadatendatei
  4. Warten Sie, bis der im vorherigen Schritt zurückgegebene Vorgang abgeschlossen ist (der Vorgang ist als abgeschlossen markiert) und aktivieren Sie dann in Ihrem SAML-IdP den neuen Signierschlüssel. Der alte Signierschlüssel wird als inaktiv markiert. Von Ihrem IdP ausgestellte Assertions werden mit dem neuen Schlüssel signiert.

Die folgenden Schritte sind optional. Wir empfehlen sie jedoch als Best Practice:

  1. Löschen Sie den alten, jetzt inaktiven Signierschlüssel bei Ihrem IdP.
  2. Laden Sie das SAML-Metadaten-XML-Dokument von Ihrem IdP herunter.
  3. Aktualisieren Sie die Ressource des Anbieters des Workload Identity-Pools mithilfe des SAML-Metadatendokuments. Assertions, die mit dem abgelaufenen Signaturschlüssel signiert werden, werden von Google Cloud abgelehnt. Führen Sie den folgenden Befehl aus, um das Dokument zu aktualisieren:

    gcloud iam workforce-pools providers update-saml PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Ersetzen Sie Folgendes:

    • PROVIDER_ID: die Anbieter-ID
    • WORKFORCE_POOL_ID: die ID des Workforce Identity-Pools
    • SAML_METADATA_FILE_PATH: der Pfad der SAML-Metadatendatei

Einschränkung für das Löschen von Schlüsseln

Google Cloud lehnt Assertions ab, die mit einem gelöschten Schlüssel signiert sind.

Workforce-Pool-Nutzer in IAM-Richtlinien darstellen

Die folgende Tabelle zeigt die Hauptkonto-Kennungen, mit denen Sie einem einzelnen Nutzer, einer Gruppe von Nutzern, Nutzern mit einer bestimmten Anforderung oder allen Nutzern aus einem Workforce-Pool Rollen zuweisen.

Identitäten ID-Format
Einzelne Identität im Workforce Identity-Pool principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
Alle Workforce-Identitäten in einer Gruppe principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
Alle Workforce-Identitäten mit einem bestimmten Attributwert principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Alle Identitäten in einem Workforce Identity-Pool principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*

IAM-Rollen zu Hauptkonten zuweisen

Sie können Hauptkonten Rollen zuweisen, z. B. einzelne Identitäten, Gruppen von Identitäten oder einen gesamten Pool.

Führen Sie den folgenden Befehl aus, um einem Hauptkonto eine Rolle für ein Projekt zuzuweisen:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="ROLE" \
    --member="PRINCIPAL"

Ersetzen Sie Folgendes:

Im folgenden Beispiel weist der Befehl allen Identitäten innerhalb der Gruppe GROUP_ID die Rolle des Storage-Administrators (roles/storage.admin) zu:

gcloud projects add-iam-policy-binding my-project \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Weitere Informationen zum Hauptkontoformat finden Sie unter Workforce Identity-Pool-Nutzer in IAM-Richtlinien darstellen.

Nutzer löschen

Die Workforce Identity-Föderation erstellt Nutzermetadaten und -ressourcen für föderierte Nutzeridentitäten. Wenn Sie Nutzer löschen, z. B. bei Ihrem IdP, müssen Sie diese Ressourcen auch explizit in Google Cloud löschen. Weitere Informationen finden Sie unter Nutzer von Workforce Identity-Föderation und deren Daten löschen.

Möglicherweise sehen Sie, dass Ressourcen weiterhin mit einem gelöschten Nutzer verknüpft sind. Dies liegt daran, dass das Löschen von Nutzermetadaten und -ressourcen einen lang andauernden Vorgang erfordert. Nachdem Sie das Löschen der Identität eines Nutzers initiiert haben, können Prozesse, die der Nutzer vor dem Löschen initiiert hat, fortgesetzt werden, bis die Prozesse abgeschlossen oder abgebrochen werden.

Nächste Schritte