In diesem Dokument wird beschrieben, wie Sie die Mitarbeiteridentitätsföderation mit dem Identitätsanbieter (IdP) PingFederate konfigurieren und den Zugriff aufGoogle Cloudverwalten. Nachdem Sie den PingFederate-IdP konfiguriert haben, können föderierte Nutzer mit dem SAML 2.0-Protokoll auf Google Cloud -Dienste zugreifen, die die Mitarbeiteridentitätsföderation unterstützen.
Hinweis
- Sie müssen eine Google Cloud Organisation einrichten.
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
So richten Sie eine PingFederate-Anwendung ein, die das SAML 2.0-Protokoll verwendet:
- Legen Sie die SAML 2.0-Entitäts-ID Ihres PingFederate-IdP fest. Weitere Informationen finden Sie unter Föderationsinformationen angeben.
Erstellen Sie eine SAML 2.0-SP-Verbindung (siehe SP-Verbindungstyp auswählen) und gehen Sie so vor:
- Wählen Sie unter Verbindungstyp die Optionen Browser-SSO-Profile und SAML 2.0-Protokoll aus.
- Wählen Sie unter Metadaten importieren die Option Keine aus.
Legen Sie unter Allgemeine Informationen die Entitäts-ID des Partners (Verbindungs-ID) auf Folgendes fest:
https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDAktivieren Sie unter SAML-Profile die Option Vom Dienstanbieter initiierte SSO. Wenn Sie auch die vom Identitätsanbieter (IdP) initiierte Einmalanmeldung (SSO) verwenden möchten, können Sie sie ebenfalls aktivieren.
Definieren Sie in Attribute Contract (Attributvertrag) benutzerdefinierte Attribute (z. B. E-Mail und Gruppen), die in der Assertion übergeben werden sollen. Diese Attribute können in Google Cloud verwendet werden, um später Richtlinien zur Zugriffsverwaltung zu erstellen.
Prüfen Sie unter Attribute Contract Fulfillment (Vertragserfüllung für Attribute), ob
SAML_SUBJECTeinem Feld zugeordnet ist, das für jeden Nutzer einen eindeutigen Wert hat. Eine E‑Mail-Adresse ist beispielsweise in der Regel für jeden Nutzer eindeutig, ändert sich nicht und wird häufig verwendet, um in Google Cloud Richtlinien zur Zugriffsverwaltung auf einen bestimmten Nutzer zu verweisen.Wenn Sie die Anmeldung in der Console (föderiert) einrichten möchten, fügen Sie in Assertion Consumer Service URL die folgende Endpunkt-URL hinzu:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDErsetzen Sie Folgendes:
WORKFORCE_POOL_ID: die ID des Personalpools, den Sie zuvor erstellt haben.WORKFORCE_PROVIDER_ID: Die ID des Workforce-Anbieters, den Sie später erstellen.
Legen Sie für diesen Endpunkt Binding auf POST fest.
Wenn Sie die Anmeldung in der Console (föderiert) aktivieren möchten, wählen Sie unter Allowable SAML Bindings (Zulässige SAML-Bindungen) die Option Redirect (Umleitung) aus.
Wählen Sie unter Signaturrichtlinie die Option Antwort bei Bedarf signieren aus.
Speichern und aktivieren Sie die Verbindung.
So konfigurieren Sie die SAML-Anwendung:
gcloud
Führen Sie den folgenden Befehl aus, um den Anbieter des SAML-Mitarbeiteridentitätspools zu erstellen:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --idp-metadata-path="XML_METADATA_PATH" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --location=globalErsetzen Sie Folgendes:
WORKFORCE_PROVIDER_ID: eine Anbieter-ID.WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools.DISPLAY_NAME: Ein Anzeigename.DESCRIPTION: eine Beschreibung.XML_METADATA_PATH: der Pfad zur XML-formatierten Metadatendatei von PingFederate.ATTRIBUTE_MAPPING: die Attributzuordnung; Beispiel:google.subject=assertion.subject,google.groups=assertion.attributes.groups,attribute.department=assertion.attributes.department[0].ATTRIBUTE_CONDITION: eine optionale Attributbedingung. Wenn Sie beispielsweise das Attributipaddrauf einen bestimmten IP-Bereich beschränken möchten, können Sie die Bedingungassertion.ipaddr.startsWith('98.11.12.')festlegen.
Mit diesem Befehl werden
subject,groupsunddepartmentin der SAML-Assertion den Attributengoogle.subject,google.groupsbzw.attribute.departmentzugewiesen. Durch die Attributbedingung wird außerdem sichergestellt, dass sich nur Nutzer innerhalb eines bestimmten IP-Bereichs über diesen Workforce-Anbieter anmelden können.Console
So konfigurieren Sie den SAML-Anbieter mit der Google Cloud Console:
- Rufen Sie in der Google Cloud Console die Seite Mitarbeiteridentitätspools auf: Zu Mitarbeiteridentitätspools
- Wählen Sie in der Tabelle Workforce Identity-Pools den Pool aus, für den Sie den Anbieter erstellen möchten.
- Klicken Sie im Bereich Anbieter auf Anbieter hinzufügen.
- Wählen Sie in der Liste Select a Provider vendor (Anbieter auswählen) die Option Generic Identity Provider (Allgemeiner Identitätsanbieter) aus.
- Wählen Sie unter Authentifizierungsprotokoll auswählen die Option SAML aus.
- Führen Sie im Abschnitt Anbieter erstellen die folgenden Schritte aus:
- Geben Sie unter Name einen Namen für den Anbieter ein.
- Wählen Sie in der IdP-Metadatendatei (XML) die XML-Metadatendatei aus PingFederate aus.
- Klicken Sie auf Weiter.
- Klicken Sie im Bereich Informationen zum Dienstanbieter freigeben auf Weiter.
Führen Sie im Abschnitt Anbieter konfigurieren die folgenden Schritte aus:
- Geben Sie unter Attributzuordnung einen CEL-Ausdruck für
google.subjectein, z. B.assertion.subject. 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]
- Geben Sie unter Attributzuordnung einen CEL-Ausdruck für
Wenn Sie das detaillierte Audit-Logging aktivieren möchten, klicken Sie unter Detaillierte Protokollierung auf den Schieberegler Audit-Logging für Attributwerte aktivieren.
Klicken Sie auf Senden, um den Anbieter zu erstellen.
TEST_PROJECT_ID: Projekt-ID.WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools.DEPARTMENT_VALUE: der zugeordnete Wertattribute.department.TEST_PROJECT_ID: Projekt-ID.WORKFORCE_POOL_ID: die ID des Mitarbeiteridentitätspools.GROUP_ID: eine Gruppe im zugeordnetengoogle.groups-Anspruch.-
Rufen Sie die (föderierte) Anmeldeseite der Konsole auf.
-
Geben Sie den Namen des Anbieters ein. Er muss so formatiert sein:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Geben Sie Ihre PingFederate-Anmeldedaten ein, wenn Sie dazu aufgefordert werden. WORKFORCE_POOL_ID: Die ID des Workforce Identity Federation-Pools.WORKFORCE_PROVIDER_ID: Die ID des Anbieters der Mitarbeiteridentitätsföderation.-
LOGIN_CONFIG_PATH: Der Pfad, in den die Anmeldekonfigurationsdatei geschrieben werden soll. Beispiel:login-config.json. -
Legen Sie die Umgebungsvariable
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEauf den Pfad der Anmeldekonfigurationsdatei fest. -
Führen Sie dazu diesen Befehl aus:
gcloud auth login
- Die gcloud CLI verweist auf die Umgebungsvariable, um die Anmeldekonfigurationsdatei zu finden, und startet dann den Authentifizierungsprozess. Folgen Sie dem browserbasierten Ablauf, um die gcloud CLI zu authentifizieren und zu autorisieren, damit sie in Ihrem Namen auf Ressourcen für zukünftige Befehle zugreifen kann.
-
Legen Sie das Attribut
auth/login_config_fileder aktiven gcloud CLI-Konfiguration mit dem folgenden Befehl auf den Pfad der Anmeldekonfigurationsdatei fest:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
Führen Sie dazu diesen Befehl aus:
gcloud auth login
- Die gcloud CLI verweist auf das Konfigurationsattribut, um die Anmeldekonfigurationsdatei zu finden, und startet dann den Authentifizierungsprozess. Folgen Sie dem browserbasierten Ablauf, um die gcloud CLI zu authentifizieren und zu autorisieren, damit sie in Ihrem Namen auf Ressourcen für zukünftige Befehle zugreifen kann.
-
Wenn Sie das Flag
--activatebeim Erstellen der Konfigurationsdatei für die Anmeldung verwendet haben, führen Sie den folgenden Befehl aus:gcloud auth login
-
Wenn Sie das Flag
--activatebeim Erstellen der Konfigurationsdatei für die Anmeldung nicht verwendet haben, führen Sie den folgenden Befehl aus:Linux und macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
Ersetzen Sie LOGIN_CONFIG_PATH durch den Pfad Ihrer Anmeldekonfigurationsdatei.
- Melden Sie einen Nutzer bei Ihrer PingFederate-Anwendung an und rufen Sie die SAML-Antwort ab.
- Speichern Sie die von PingFederate zurückgegebene SAML-Antwort an einem sicheren Ort auf Ihrem lokalen Computer. Speichern Sie den Pfad in einer Umgebungsvariablen, z. B.
SAML_ASSERTION_PATH=/path/to/assertion.xml. Konfigurationsdatei generieren:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \ --credential-source-file=SAML_ASSERTION_PATH \ --workforce-pool-user-project=PROJECT_ID \ --output-file=config.jsonErsetzen Sie Folgendes:
SAML_ASSERTION_PATH: der Pfad der SAML-Assertion-Datei.PROJECT_ID: Projekt-ID.
Die generierte Konfigurationsdatei sieht in etwa so aus:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:saml2", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }Führen Sie den folgenden Befehl aus, um sich mit Token-Austausch in der gcloud CLI anzumelden:
gcloud auth login --cred-file=config.jsongcloudtauscht dann Ihre PingFederate-Anmeldedaten transparent gegen temporäre Google Cloud Zugriffstokens aus, sodass Sie anderegcloud-Aufrufe an Google Cloudsenden können. Die Ausgabe sieht etwa so aus:Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].Führen Sie den folgenden Befehl aus, um die Konten mit Anmeldedaten und das aktive Konto aufzulisten:
gcloud auth list- Gehen Sie zur Seite Cloud Storage
- Prüfen Sie, ob Sie die Liste der vorhandenen Buckets für das Projekt
TEST_PROJECT_IDsehen. - Nutzer von Workforce Identity-Föderation und deren Daten löschen
- Erfahren Sie, welche Google Cloud Produkte die Workforce Identity Federation unterstützen.
- Nutzerzugriff auf die Console (föderiert) einrichten
Attribute verwenden
In diesem Abschnitt wird beschrieben, wie Sie Attribute aus der SAML-Assertion verwenden.
Verwenden Sie Attributverträge, um die benutzerdefinierten Attribute in den generierten SAML-Assertions anzugeben. Nachdem Sie Attribute konfiguriert haben, können Sie sie in Google Cloud verwenden, um Richtlinien zur Zugriffsverwaltung zu erstellen. Weitere Informationen zu Attributverträgen finden Sie in der PingFederate-Serverdokumentation unter Attribute contracts.
In dieser Anleitung verwenden wir beispielsweise PingOne als Datenspeicher für PingFederate und ordnen die Attributverträge email, firstName und groups den Nutzerattributen aus dem PingOne-Datenspeicher zu:
| Attributvertrag | Wert |
|---|---|
email |
email |
firstName |
name.given |
groups |
memberOfGroupIDs |
PingFederate Workforce Identity-Poolanbieter erstellen
In diesem Abschnitt wird beschrieben, wie Sie einen Anbieter von Workforce-Identitätspools erstellen, um Ihren IdP-Nutzern den Zugriff auf Google Cloudzu ermöglichen. Sie können den Anbieter so konfigurieren, dass er das SAML-Protokoll verwendet.
SAML 2.0-Workforce Identity-Pool-Anbieter erstellen
Zugriff auf Google Cloud Ressourcen verwalten
In diesem Abschnitt wird beschrieben, wie Sie den Zugriff auf Google Cloud -Ressourcen für PingFederate-Nutzer verwalten.
Das in dieser Anleitung verwendete Beispielprojekt kann sich von dem Projekt unterscheiden, das Sie zum Einrichten der Workforce Identity-Föderation verwendet haben.
Sie können Rollen für einzelne Identitäten, Identitätsgruppen oder gesamte Pools verwalten. Weitere Informationen finden Sie unter Hauptkonto-IDs für Mitarbeiter für Zulassungsrichtlinien.
Zugeordnete Abteilungsattribute verwenden
Führen Sie den folgenden Befehl aus, um allen Identitäten innerhalb einer bestimmten Abteilung für das Projekt TEST_PROJECT_ID die Rolle „Storage-Administrator“ (roles/storage.admin) zuzuweisen:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"
Ersetzen Sie Folgendes:
Zugeordnete Gruppen verwenden
Führen Sie den folgenden Befehl aus, um allen Identitäten in der Gruppe GROUP_ID für das Projekt TEST_PROJECT_ID die Rolle „Storage-Administrator“ (roles/storage.admin) zuzuweisen:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ersetzen Sie Folgendes:
Anmelden und Zugriff testen
In diesem Abschnitt melden Sie sich als Workforce Identity-Pool-Nutzer an und testen Ihren Zugriff.
Anmelden
(Föderierte) Anmeldung bei der Console
So melden Sie sich in der Google Cloud Console für die Mitarbeiteridentitätsföderation an, die auch als Console (föderiert) bezeichnet wird:
Browserbasierte Anmeldung bei der gcloud CLI
So melden Sie sich mit einem browserbasierten Anmeldevorgang in der gcloud CLI an:
Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei für die Anmeldung zu erstellen:
Linux und macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
Ersetzen Sie Folgendes:
Die Konfigurationsdatei für die Anmeldung enthält die Endpunkte, die von der gcloud CLI verwendet werden, um den browserbasierten Authentifizierungsvorgang zu aktivieren und die Zielgruppe auf den IdP festzulegen, der im Workforce Identity-Poolanbieter konfiguriert wurde. Die Datei enthält keine vertraulichen Informationen.
Der Inhalt der Anmeldekonfigurationsdatei sieht in etwa so aus:
{ "universe_domain": "googleapis.com", "universe_cloud_web_domain": "cloud.google", "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
Verweisen Sie mit einer Umgebungsvariable oder einem Attribut in der aktiven gcloud CLI-Konfiguration auf die Konfigurationsdatei für die Anmeldung oder verwenden Sie sie direkt mit dem Befehl gcloud auth login:
Umgebungsvariable
So verwenden Sie die Konfigurationsdatei für die Anmeldung mit einer Umgebungsvariable:
Wenn Sie die Konfigurationsdatei für die Anmeldung für gcloud auth login-Befehle nicht mehr verwenden möchten, löschen Sie die Umgebungsvariable CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.
gcloud CLI-Konfiguration
So verwenden Sie die Konfigurationsdatei für die Anmeldung mit einer Konfigurationseigenschaft der gcloud CLI:
Wenn Sie die Konfigurationsdatei für die Anmeldung nicht mehr für gcloud auth login-Befehle verwenden möchten, heben Sie die Einstellung der Property mit dem folgenden Befehl auf:
gcloud config unset auth/login_config_file
gcloud auth login
Wenn Sie die Konfigurationsdatei für die Anmeldung direkt mit dem Befehl gcloud auth login verwenden möchten, folgen Sie dieser Anleitung:
Mit dem Befehl gcloud auth login werden Anmeldedaten für den Zugriff in Ihrem Basisverzeichnis gespeichert. Der authentifizierte Prinzipal wird zum aktiven Prinzipal in Ihrer aktiven gcloud CLI-Konfiguration. Sofern nicht anders angegeben, verwendet die gcloud CLI diese gespeicherten Anmeldedaten für den Zugriff auf Google Cloud.
Monitorlose Anmeldung bei der gcloud CLI
So melden Sie sich mit der gcloud CLI über das SAML-Protokoll in PingFederate an:
Zugriff testen
Sie haben Zugriff auf Google Cloud -Dienste, die die Workforce Identity-Föderation unterstützen und auf die Sie Zugriff erhalten haben. Sie haben zuvor in diesem Leitfaden allen Identitäten innerhalb einer bestimmten Abteilung oder Gruppe für das Projekt TEST_PROJECT_ID die Rolle „Storage-Admin“ zugewiesen. Sie können testen, ob Sie Zugriff haben. Dazu listen Sie Cloud Storage-Buckets auf.
(Föderierte) Anmeldung bei der Console
So überprüfen Sie Ihren Zugriff in der Console (föderiert):
gcloud-CLI
Führen Sie folgenden Befehl aus, um Cloud Storage-Buckets und -Objekte für das Projekt aufzulisten, auf das Sie Zugriff haben:
gcloud alpha storage ls --project="TEST_PROJECT_ID"
Das Hauptkonto muss die Berechtigung serviceusage.services.use für das Projekt haben, das in der gcloud CLI-Sitzung festgelegt ist: PROJECT_ID.