Auf dieser Seite erfahren Sie, wie Sie Identity-Aware Proxy (IAP) für die Verwendung konfigurieren Mitarbeiteridentitätsföderation
Wenn Sie die Mitarbeiteridentitätsföderation mit IAP konfigurieren, einen externen Identitätsanbieter (Identity Provider, IdP) zur Authentifizierung und Autorisierung einer Gruppe von Nutzenden, wie Mitarbeitenden, Partnern und Auftragnehmern, Identitäts- und Zugriffsverwaltung (Identity and Access Management – IAM), damit Nutzer sicher auf Dienste zugreifen können, Google Cloud oder lokal.
Wenn Sie IAP mit der Mitarbeiteridentitätsföderation konfigurieren, können Sie Folgendes in Bezug auf Ihre IAP-gesicherten Anwendungen beachten:
- Sie können einen Endnutzer an einen externen IdP wie Okta weiterleiten, um sich anzumelden.
- Konfigurieren Sie eine Anmeldesitzung zwischen 15 Minuten und 12 Stunden.
- Erlauben Sie nur bestimmten Endnutzern oder Endnutzergruppen eines IdP den Zugriff auf Ihr .
- Geben Sie den Kontext an, in dem ein Endnutzer auf eine Anwendung zugreifen kann. Für z. B. den Zugriff nur zu einer bestimmten Tageszeit zulassen.
Sie können IAP mit der Mitarbeiteridentitätsföderation auf allen vorhandene Ressourcen und Load-Balancer, die von IAP unterstützt werden.
IAP mit Mitarbeiteridentitätsföderation für eine Anwendung konfigurieren
Das Konfigurieren von IAP mit Mitarbeiteridentitätsföderation umfasst die folgenden Hauptaufgaben:
- Personalpool und Anbieter einrichten
- OAuth-Client-ID und -Secret erstellen
- Aktivieren Sie IAP und konfigurieren Sie es für die Verwendung der Mitarbeiteridentitätsföderation.
Personalpool und Anbieter einrichten
Folgen Sie der Anleitung unter Workforce Identity-Föderation, um einen Workforce Identity-Pool und ‑Anbieter einzurichten. Informationen zum Festlegen der Sitzungsdauer finden Sie unter IAP mit Sitzungen der Workforce Identity-Föderation verwalten.
Wenn Sie Google Cloud eine E-Mail-Adresse eines externen Identitätsanbieters zuordnen möchten,
Sie müssen Ihrem Personalpoolanbieter eine Attributzuordnung für google.email
hinzufügen.
Beispiel: google.email=assertion.email
.
OAuth-Client-ID und -Secret erstellen
Folgen Sie der Anleitung zum Erstellen einer OAuth-Client-ID und eines OAuth-Secret. die sich im selben Unternehmen wie der Personalpool befinden, die Sie für diese Konfiguration verwenden. Das Projekt muss nicht dasselbe sein, Projekt, in dem sich die mit IAP gesicherte Ressource befindet. Beim Erstellen OAuth-Client-ID und -Secret:
Verwenden Sie beim Erstellen der Client-ID einen Platzhalter für den Weiterleitungs-URI. Nachdem du die Client-ID erstellt hast, musst du
describe
einen OAuth-Client ausführen, um die generierteclientID
abzurufen.Wenn Sie die
clientID
haben, führen Sieupdate
Einen OAuth-Client umallowed-redirect-uris
auf Folgendes zu aktualisieren:https://iap.googleapis.com/v1/oauth/clientIds/$CLIENT_ID:handleRedirect
Dabei ist
CLIENT_ID
die im vorherigen Schritt abgerufeneclientID
.Nachdem du den Clientschlüssel erstellt hast, führe
describe
einen OAuth-Client aus Anmeldedaten um den generiertenclientSecret
abzurufen.
Speichere die
clientId
und dieclientSecret
, da du sie später benötigst. Schritte.
Aktivieren Sie IAP, um die Mitarbeiteridentitätsföderation zu verwenden
Console
- Öffnen Sie in der Google Cloud Console die Seite „IAP“.
Zu IAP-Käufe“ - Wählen Sie ein Projekt aus. Das Projekt muss sich in derselben Organisation wie der zuvor erstellte Arbeitspool befinden. Das Projekt muss nicht dasselbe sein, in dem Sie die OAuth-Client-ID und das Secret erstellt haben.
- Klicken Sie auf den Tab Anwendungen und suchen Sie die Anwendung, für die Sie den Zugriff mithilfe von In-App-Abos einschränken möchten.
- Stellen Sie den Schieberegler in der Spalte "IAP" auf Ein.
gcloud
Wenn Sie IAP über die gcloud CLI aktivieren möchten, folgen Sie der Verfahren für den betreffenden Dienst:
API
Erstellen Sie eine
settings.json
-Datei.cat << EOF > settings.json { "iap": { "enabled":true, } } EOF
Aktivieren Sie IAP in der App Engine.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap.enabled"
Verwenden Sie die folgende URL, um IAP in der Compute Engine zu aktivieren:
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME?updateMask=iap.enabled
.
IAP-Einstellungen aktualisieren
Um IAP für die Verwendung der Mitarbeiteridentitätsföderation zu konfigurieren, müssen Sie konfigurieren Sie die folgenden Einstellungen:
WorkforceIdentitySettings
: OAuth-Client-ID und -Secret, die zuvor erstellt wurden.IdentitySources
: Die Identitätsquelle.
Weitere Informationen finden Sie unter IAP APIs.
gcloud
Erstellen Sie anhand des folgenden Beispiels eine
iap_settings.yaml
-Datei.CLIENT_ID=clientId CLIENT_SECRET=clientSecret WORKFORCE_POOL_NAME=locations/global/workforcePools/test-pool cat <<EOF > iap_settings.yaml access_settings: identity_sources: ["WORKFORCE_IDENTITY_FEDERATION"] workforce_identity_settings: workforce_pools: ["$WORKFORCE_POOL_NAME"] oauth2: client_id: "$CLIENT_ID" client_secret: "$CLIENT_SECRET" EOF
Führen Sie den folgenden Befehl aus, um die IAP-Einstellungen für Ihrer Ressource.
gcloud iap settings set iap_settings.yaml --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE
Ersetzen Sie Folgendes:
- PROJECT: die Projekt-ID
- RESOURCE_TYPE: Der IAP-Ressourcentyp. Die
Ressourcentyp muss
app-engine
,iap_web
,compute
sein.organization
oderfolder
. - SERVICE: Der Dienstname. Optional für
app-engine
undcompute
.
Weitere Informationen zum Befehl finden Sie unter gcloud iap settings set.
API
Erstellen Sie ein
iap_settings.json
-Objekt mit dem folgenden Beispiel als Referenz. Einstellungsdatei.CLIENT_ID=clientId CLIENT_SECRET=clientSecret WORKFORCE_POOL_NAME=locations/global/workforcePools/test-pool cat <<EOF > iap_settings.json { "access_settings": { "identity_sources": ["WORKFORCE_IDENTITY_FEDERATION"], "workforce_identity_settings": { "workforce_pools": ["$WORKFORCE_POOL_NAME"], "oauth2": { "client_id": "$CLIENT_ID", "client_secret": "$CLIENT_SECRET", } } } } EOF
Rufen Sie den Namen der Ressource über die gcloud CLI ab. kopieren Sie die
RESOURCE_NAME
aus der Ausgabe, da Sie sie im nächsten Schritt.gcloud iap settings get \ --project=PROJECT \ --resource-type=RESOURCE_TYPE \ --service=SERVICE
Ersetzen Sie Folgendes:
- PROJECT: die Projekt-ID
- RESOURCE_TYPE: Der IAP-Ressourcentyp. Die
Ressourcentyp muss
app-engine
,iap_web
,compute
sein.organization
oderfolder
. - SERVICE: Der Dienstname. Dies ist für beide
app-engine
undcompute
.
Ersetzen Sie
RESOURCE_NAME
im folgenden Befehl durchRESOURCE_NAME
aus dem vorherigen Schritt.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @iap_settings.json \ "https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.identitySources,iapSettings.accessSettings.workforceIdentitySettings.workforcePools,iapSettings.accessSettings.workforceIdentitySettings.oauth2.clientId,iapSettings.accessSettings.workforceIdentitySettings.oauth2.clientSecret"
Zugriff auf mit IAP gesicherte Ressourcen gewähren
Für den Zugriff auf eine mit IAP gesicherte Ressource benötigen Endnutzer die Berechtigung Nutzer von IAP-gesicherten Web-Apps Rolle für die Ressource. Sie können einem einzelnen Nutzer die Rolle „Nutzer von IAP-gesicherten Web-Apps“ zuweisen (Hauptkonto) oder eine Gruppe von Nutzern (Hauptgruppe, das einer Gruppe, einem bestimmten Attribut oder einem ganzen Nutzerpool zugeordnet ist.
Uneingeschränkter Zugriff auf mit IAP gesicherte Ressourcen wird nicht unterstützt.
Console
- Öffnen Sie in der Google Cloud Console die IAP-Seite.
Zu IAP-Käufe“ - Wählen Sie die Ressource aus, die Sie mit IAP sichern möchten.
- Klicken Sie auf Hauptkonto hinzufügen und fügen Sie dann die Hauptkonto-IDs der Gruppen oder Einzelpersonen hinzu, denen Sie für die Ressource eine IAM-Rolle zuweisen möchten.
- Wählen Sie unter Rollen zuweisen die Option Nutzer von IAP-gesicherten Web-Apps aus.
- Klicken Sie auf Hinzufügen.
gcloud
Führen Sie den folgenden Befehl aus:
gcloud iap web add-iam-policy-binding \
--member=PRINCIPAL_IDENTIFIER \
--role='roles/iap.httpsResourceAccessor' \
--project=PROJECT_ID \
--resource-type=RESOURCE_TYPE \
--service=SERVICE \
--condition=CONDITION
Ersetzen Sie Folgendes :
- PRINCIPAL_IDENTIFIER: Die Hauptkennungen.
- PROJECT_ID: die Projekt-ID
- RESOURCE_TYPE: Der IAP-Ressourcentyp, der auf
app-engine
oderbackend-services
sein. - SERVICE (optional): Der Dienstname.
- CONDITION: (optional) IAM-Bedingungen. Hier sehen Sie ein Beispiel für eine Bedingung, die mit Zugriffsebenen konfiguriert wurde:
expression="accessPolicies/12345678/accessLevels/iap_test_access_level" in request.auth.access_levels,title=iap-test-access-level,description=only access in weekdays
API
Diese Methode wird nicht empfohlen, da sie den gesamten IAM-Richtlinie einer Ressource. Aufgrund eines Fehlers könnte die Richtlinie entfernt werden aus einer Ressource abgerufen werden.
Rufen Sie die vorhandenen IAM-Richtlinienbindungen ab.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d {} \ "https://iap.googleapis.com/v1/RESOURCE_NAME:getIamPolicy" -o iam_policy_bindings.json
Ersetzen Sie RESOURCE_NAME durch den RESOURCE_NAME, die Sie in einem vorherigen Schritt.
In die Datei
iam_policy_bindings.json
, die Sie aus dem vorherigen entfernen Sie die Versions- und ETag-Zeilen und fügen Sie die die als Hauptkonto-ID hinzugefügt werden soll. Weitere Informationen finden Sie unter Informationen zu Zulassungsrichtlinien{ "bindings": [ { // existing bindings }, { "role": "roles/iap.httpsResourceAccessor", "members": [ "principal://iam.googleapis.com/locations/global/workforcePools/iap-test-pool/subject/iap-test-subject" ], "condition": { "expression": "\"accessPolicies/12345678/accessLevels/iap_test_access_level\" in request.auth.access_levels", "title": "iap-test-access-level", "description": "only access in week days" } } ] }
Aktualisieren Sie die IAM-Richtlinienbindungen.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "{"policy":$(cat iam_policy_bindings.json)}" \ "https://iap.googleapis.com/v1/RESOURCE_NAME:setIamPolicy"
Ersetzen Sie RESOURCE_NAME durch den RESOURCE_NAME, die Sie in einem vorherigen Schritt.
Siehe GetIamPolicy und SetIamPolicy.
Optional: Kontextsensitiven Zugriff einrichten
Optional können Sie Regeln für den kontextsensitiven Zugriff für die erweiterte Autorisierung einrichten.
Informationen zum Einrichten von Zugriffsebenen finden Sie unter Zugriffsebenen erstellen und anwenden. Zugriffsebenen, die auf Geräteinformationen basieren, sind bei der Verwendung der Workforce Identity-Föderation nicht verfügbar. Sie können weiterhin anfragekontextbasierten Zugriff verwenden mit Bedingungen für IP-Adresse sowie Uhrzeit und Datum.
Einschränkungen bei der Arbeit mit Personalpools
- Für jede IAP-fähige Anwendung kann nur ein Personalpool konfiguriert werden und der Personalpool kann nur einen Anbieter enthalten.
- Personalpool, OAuth-Client-ID und -Secret sowie IAP-fähige Anwendungen müssen sich alle in derselben Organisation befinden.
- Zugriffsebenen für gerätebezogene Informationen werden nicht unterstützt.
- Es werden nur die folgenden IAP-Einstellungskonfigurationen unterstützt:
- Programmatischer Zugriff mit der Mitarbeiteridentitätsföderation wird nicht unterstützt.