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
Wenn Sie einen Personalpool und Anbieter einrichten möchten, folgen Sie der Anleitung unter Mitarbeiteridentitätsföderation und wann Informationen zum Festlegen der Sitzungsdauer finden Sie unter IAP mit Sitzungen der Mitarbeiteridentität 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. Nachher erstellen Sie die Client-ID, führen
describe
einen OAuth-Client um den generiertenclientID
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 credentials 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 IAP-Seite.
Zu IAP-Käufe“ - Wählen Sie ein Projekt aus. Das Projekt muss sich in derselben Organisation befinden wie das Personalpool aus, den Sie zuvor erstellt haben. Das Projekt muss nicht Projekt, in dem Sie die OAuth-Client-ID und das OAuth-Secret erstellt haben.
- Klicken Sie auf den Tab Programme und suchen Sie die Anwendung, die Sie den Zugriff auf IAP beschrä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 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"
Um IAP für Compute Engine verwenden Sie die folgende URL:
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 ein
iap_settings.yaml
-Objekt mit dem folgenden Beispiel als Referenz. -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. Dies ist für beide
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.
Der uneingeschränkte 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 Hauptkennungen der Gruppen oder Einzelpersonen, denen Sie eine IAM-Rolle für die Ressource.
- 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: Der Dienstname. Dies ist optional, wenn
resource-type
istapp-engine
. - 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 Auf Geräteinformationen basierende Zugriffsebenen sind bei der Verwendung von Mitarbeiteridentitätsföderation. Sie können weiterhin anfragekontextbasierten Zugriff verwenden mit Bedingungen für IP-Adresse sowie Uhrzeit und Datum.
Einschränkungen bei der Arbeit mit Personalpools
- IAP unterstützt nur einen Personalpool und den 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: <ph type="x-smartling-placeholder">
- Programmatischer Zugriff mit der Mitarbeiteridentitätsföderation wird nicht unterstützt.