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:
- Azure AD-basierte Workforce Identity-Föderation konfigurieren
- Okta-basierte Workforce Identity-Föderation konfigurieren
Vorbereitung
Sie müssen eine Google Cloud-Organisation eingerichtet haben.
Enable the Identity and Access Management (IAM) and Resource Manager APIs.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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.
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:
Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:
Klicken Sie auf Pool erstellen und gehen Sie so vor:
Geben Sie unter Name den Namen des Pools ein. Die Pool-ID wird während der Eingabe automatisch aus dem Namen abgeleitet.
Optional: Klicken Sie auf Bearbeiten, um die ID zu aktualisieren.
Optional: Geben Sie unter Beschreibung eine Beschreibung des Pools ein.
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.
Damit der Pool im aktivierten Status erstellt werden kann, muss Aktivierter Pool aktiviert sein.
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:
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.
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.
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:
Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:
Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.
Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.
Wählen Sie unter Protokoll auswählen die Option Open ID Connect (OIDC) aus.
Gehen Sie unter Pool-Anbieter erstellen so vor:
- Geben Sie unter Name einen Namen für den Anbieter ein.
- 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
- 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. - Wenn Sie einen aktivierten Anbieter erstellen möchten, muss die Option Aktivierter Anbieter aktiviert sein.
- Klicken Sie auf Weiter.
Gehen Sie unter Antworttyp so vor: Der Antworttyp wird nur für eine webbasierte Einmalanmeldung verwendet.
- Wählen Sie unter Antworttyp die Option Code aus.
- Geben Sie unter Clientschlüssel den Clientschlüssel von Ihrem IdP ein.
Wählen Sie unter Verhalten bei Assertion-Anforderungen eine der folgenden Optionen aus:
- Nutzerinformationen und ID-Token
- Nur ID-Token
Klicken Sie auf Weiter.
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.
- Erforderlich: Geben Sie in OIDC 1 den Betreff des IdP ein. Beispiel:
assertion.sub
Optional: So fügen Sie zusätzliche Attributzuordnungen hinzu:
- Klicken Sie auf Zuordnung hinzufügen.
- Geben Sie in Google n, wobei n eine Zahl ist, einen der von Google Cloud unterstützten Schlüssel ein.
- Geben Sie im entsprechenden Feld OIDC n den Namen des IdP-spezifischen Felds im CEL-Format ein.
So erstellen Sie eine Attributbedingung:
- Klicken Sie auf Bedingung hinzufügen.
- 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 Rollegcp-users
über diesen Anbieter anmelden können.
- Erforderlich: Geben Sie in OIDC 1 den Betreff des IdP ein. Beispiel:
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:
Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:
Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.
Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.
Wählen Sie unter Protokoll auswählen die Option Open ID Connect (OIDC) aus.
Gehen Sie unter Pool-Anbieter erstellen so vor:
- Geben Sie unter Name einen Namen für den Anbieter ein.
- 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
- 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. - Wenn Sie einen aktivierten Anbieter erstellen möchten, muss die Option Aktivierter Anbieter aktiviert sein.
- Klicken Sie auf Weiter.
Gehen Sie unter Antworttyp so vor: Der Antworttyp wird nur für eine webbasierte Einmalanmeldung verwendet.
- Wählen Sie unter Antworttyp die Option ID-Token aus.
- Klicken Sie auf Weiter.
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.
Erforderlich: Geben Sie in OIDC 1 den Betreff des IdP ein. Beispiel:
assertion.sub
Optional: So fügen Sie zusätzliche Attributzuordnungen hinzu:
- Klicken Sie auf Zuordnung hinzufügen.
- Geben Sie in Google n, wobei n eine Zahl ist, einen der von Google Cloud unterstützten Schlüssel ein.
- Geben Sie im entsprechenden Feld OIDC n den Namen des IdP-spezifischen Felds im CEL-Format ein.
So erstellen Sie eine Attributbedingung:
- Klicken Sie auf Bedingung hinzufügen.
- 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 Rollegcp-users
über diesen Anbieter anmelden können.
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=globalErsetzen Sie Folgendes:
PROVIDER_ID
: eine eindeutige Anbieter-ID Das Präfixgcp-
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 sollDISPLAY_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 mithttps
beginnt. Beispiel:https://example.com/oidc
. Hinweis: Aus Sicherheitsgründen mussISSUER_URI
das HTTPS-Schema verwenden.OIDC_CLIENT_ID
: die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit deraud
-Anforderung des JWT übereinstimmen, die von Ihrem IdP ausgestellt wird.OIDC_CLIENT_SECRET
: der OIDC-ClientschlüsselWEB_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 werdenATTRIBUTE_MAPPING
: eine Attributzuordnung; Beispiel: In diesem Beispiel werden die IdP-Attributegoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
undcostcenter
in der OIDC-Assertion den Attributengoogle.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 Rollegcp-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.
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äfixgcp-
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 sollDISPLAY_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 mithttps
beginnt. Beispiel:https://example.com/oidc
. Hinweis: Aus Sicherheitsgründen mussISSUER_URI
das HTTPS-Schema verwenden.OIDC_CLIENT_ID
: die OIDC-Client-ID, die bei Ihrem OIDC-IdP registriert ist. Die ID muss mit deraud
-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 werdenATTRIBUTE_MAPPING
: eine Attributzuordnung; Beispiel: In diesem Beispiel werden die IdP-Attributegoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
undcostcenter
in der OIDC-Assertion den Attributengoogle.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 Rollegcp-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.
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
Registrieren Sie bei Ihrem SAML-IdP eine neue Anwendung für die Google Cloud-Workforce Identity-Föderation.
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
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.
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:
Rufen Sie in der Google Cloud Console die Seite Workforce Identity-Pools auf:
Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.
Klicken Sie in der Tabelle Anbieter auf Anbieter hinzufügen.
Wählen Sie unter Protokoll auswählen die Option SAML aus.
Gehen Sie unter Pool-Anbieter erstellen so vor:
Geben Sie unter Name einen Namen für den Anbieter ein.
Optional: Geben Sie unter Beschreibung eine Beschreibung für den Anbieter ein.
Wählen Sie in der IdP-Metadatendatei (XML) die XML-Metadatendatei aus, die Sie zuvor in dieser Anleitung generiert haben.
Prüfen Sie, ob Aktivierter Anbieter aktiviert ist.
Klicken Sie auf Weiter.
Führen Sie unter Anbieter konfigurieren die folgenden Schritte aus:
Geben Sie unter Attributzuordnung einen CEL-Ausdruck für
google.subject
ein.Optional: Wenn Sie andere Zuordnungen eingeben möchten, klicken Sie auf Zuordnung hinzufügen und geben Sie andere Zuordnungen ein. Beispiel:
In diesem Beispiel werden die IdP-Attributegoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
undassertion.attributes.costcenter[0]
den Google Cloud-Attributengoogle.subject
,google.groups
bzw.google.costcenter
zugeordnet.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 Bedingungassertion.attributes.ipaddr.startsWith('98.11.12.')
festlegen. Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit einer IP-Adresse, die mit98.11.12.
beginnt, über diesen Workforce-anbieter anmelden können.Klicken Sie auf Weiter.
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-IDWORKFORCE_POOL_ID
: die Pool-IDDISPLAY_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-MetadatenATTRIBUTE_MAPPING
: die Attributzuordnung. Beispiel: In diesem Beispiel werden die IdP-Attributegoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
undassertion.attributes.costcenter[0]
den Google Cloud-Attributengoogle.subject
,google.groups
bzw.google.costcenter
zugeordnet.ATTRIBUTE_CONDITION
: Eine Attributbedingung. Wenn Sie beispielsweise das Attributipaddr
auf einen bestimmten IP-Bereich beschränken möchten, können Sie die Bedingungassertion.attributes.ipaddr.startsWith('98.11.12.')
festlegen. Durch diese Beispielbedingung wird gewährleistet, dass sich nur Nutzer mit einer IP-Adresse, die mit98.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 AttributNameID
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.
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 WahlWORKFORCE_POOL_ID
: die Pool-IDPROVIDER_ID
: die Anbieter-ID-
KEY_SPECIFICATION
: die Schlüsselspezifikation, entwederrsa-2048
,rsa-3072
oderrsa-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üsselnameWORKFORCE_POOL_ID
: die Pool-IDPROVIDER_ID
: die Anbieter-IDCERTIFICATE_PATH
: der Pfad, in den das Zertifikat geschrieben werden soll, z. B.saml-certificate.cer
odersaml-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üsselnameWORKFORCE_POOL_ID
: die Pool-IDPROVIDER_ID
: die Anbieter-ID
Unterstützte SAML-Verschlüsselungsalgorithmen
Die Workforce Identity-Föderation unterstützt die folgenden Schlüsseltransportalgorithmen:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
Die Workforce Identity-Föderation unterstützt die folgenden Blockverschlüsselungsalgorithmen:
- http://www.w3.org/2001/04/xmlenc#aes128-cbc
- http://www.w3.org/2001/04/xmlenc#aes192-cbc
- http://www.w3.org/2001/04/xmlenc#aes256-cbc
- http://www.w3.org/2009/xmlenc11#aes128-gcm
- http://www.w3.org/2009/xmlenc11#aes256-gcm
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 liegtnotAfter
: ein Zeitstempel, der nicht mehr als 15 Jahre in der Zukunft liegt
Empfohlene Algorithmen:
- RSAwithSHA256 (unterstützte Schlüsselgrößen (Bit): 2.048, 3.072, 4.096)
- ECDSAwithSHA256
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:
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.
Laden Sie ein SAML-Metadaten-XML-Dokument von Ihrem IdP herunter.
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-IDWORKFORCE_POOL_ID
: die ID des Workforce Identity-PoolsSAML_METADATA_FILE_PATH
: der Pfad zur SAML-Metadatendatei
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:
- Löschen Sie den alten, jetzt inaktiven Signierschlüssel bei Ihrem IdP.
- Laden Sie das SAML-Metadaten-XML-Dokument von Ihrem IdP herunter.
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-IDWORKFORCE_POOL_ID
: die ID des Workforce Identity-PoolsSAML_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:
PROJECT_ID
: die Projekt-IDROLE
: die festzulegende RollePRINCIPAL
: Hauptkonto; Siehe Workforce Identity-Pool-Nutzer in IAM-Richtlinien darstellen.
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
- Kurzlebige Anmeldedaten für die Workforce Identity-Föderation abrufen
- Workforce Identity-Pool-Anbieter verwalten
- Nutzer von Workforce Identity-Föderation und deren Daten löschen
- Weitere Informationen dazu, welche Google Cloud-Produkte die Workforce Identity-Föderation unterstützen
- Nutzerzugriff auf die Console (föderiert) einrichten