Standardmäßig haben Workforce Identity-Föderationssitzungen eine maximale Dauer von 12 Stunden. Mit der verlängerten Sitzungsdauer können Organisationen für Looker (Google Cloud Core)-Kunden langlebige Sitzungen von bis zu 90 Tagen konfigurieren.
Mit einer verlängerten Sitzungsdauer haben Ihre Mitarbeiter eine ununterbrochene Verbindung zu Looker (Google Cloud Core), ohne dass eine tägliche erneute Authentifizierung bei Ihrem externen Identitätsanbieter (IdP) erforderlich ist. Die Nutzerinteraktion in Looker (Google Cloud Core) unterliegt weiterhin der Konfiguration der Sitzungslänge für Looker (Google Cloud Core). Um die Sicherheit während längerer Sitzungen aufrechtzuerhalten,synchronisiert Google Cloud regelmäßig Nutzerattribute und Gruppenmitgliedschaften direkt von Ihrem externen Identitätsanbieter (IdP) im Hintergrund.
In diesem Dokument wird beschrieben, wie Sie erweiterte Sitzungsrichtlinien mit der Access Context Manager API mit projektbezogenen Steuerelementen definieren, Ihren Workforce-Pool-Anbieter konfigurieren und aktive Bindungen verwalten.
Übersicht
Bei der Workforce Identity-Föderation werden Access Context Manager- Google Cloud Zugriffsberechtigungen verwendet, um die verlängerte Sitzungslänge zu konfigurieren:
- Google Cloud -Zugriffsbindung: Administratoren definieren mit Access Context Manager eine Richtlinie für die Sitzungslänge, die organisationsweit für alle Personalpools in Ihrer Organisation gilt. Mit dem Bereich
restricted_projectwerden in der Richtlinie erweiterte Sitzungen von bis zu 90 Tagen gewährt. Dies betrifft nur Looker (Google Cloud Core)-Instanzen, die zu diesem Projekt gehören. - Synchronisierung von Hintergrundattributen:
- OIDC: Wird entweder über einen OIDC-Autorisierungscode-Vorgang mit dem Bereich
offline_access(mit Aktualisierungstokens zum regelmäßigen Aktualisieren von Nutzerattributen und Gruppenmitgliedschaften von Ihrem externen IdP im Hintergrund) oder über die SCIM-Bereitstellung unterstützt. - SAML: Bei SAML-Anbietern werden Nutzerattribute und Gruppenmitgliedschaften mithilfe der SCIM-Bereitstellung auf dem neuesten Stand gehalten.
- OIDC: Wird entweder über einen OIDC-Autorisierungscode-Vorgang mit dem Bereich
- Schutz vor veralteten Daten: Wenn Nutzerattribute nicht innerhalb von 24 Stunden vom externen IdP aktualisiert werden können (z. B. wenn die Bereitstellung des Nutzers aufgehoben oder Anmeldedaten beim IdP widerrufen werden), wird die Sitzung von Google Cloud beendet.
Hinweis
Prüfen Sie vor dem Konfigurieren der erweiterten Sitzungslänge, ob Sie die erforderlichen IAM-Berechtigungen (Identity and Access Management) haben und die erforderlichen APIs aktiviert sind:
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren einer verlängerten Sitzungslänge benötigen:
- Workforce Identity-Pool-Anbieter konfigurieren: Workforce Pool Admin (
roles/iam.workforcePoolAdmin) für den Mitarbeiterpool oder die Organisation. - Cloud-Zugriffsbindungen für Access Context Manager verwalten: Administrator für Cloud-Zugriffsbindungen (
roles/accesscontextmanager.gcpAccessAdmin) auf Organisationsebene. Diese Rolle bietet die Berechtigungen, die zum Erstellen, Aufrufen, Aktualisieren und Löschen von Access Context Manager-Zugriffsbindungen erforderlich sind.
APIs aktivieren
Aktivieren Sie die Access Context Manager API und die IAM API in Ihrem Projekt:
gcloud services enable \
accesscontextmanager.googleapis.com \
iam.googleapis.com
Beschränkungen und Anforderungen
Bevor Sie die erweiterte Sitzungslänge konfigurieren, sollten Sie sich die folgenden Anforderungen und Einschränkungen ansehen:
- Unterstützte Anwendung: Die verlängerte Sitzungsdauer gilt ausschließlich für Looker (Google Cloud Core).
- Erforderlicher Projektumfang (
restricted_project): Die Sitzungseinstellungen müssen inscopedAccessSettingsmit dem Client-Umfangrestricted_projectkonfiguriert werden, der das Google Cloud -Projekt angibt, zu dem die Looker (Google Cloud Core)-Instanz gehört (projects/{PROJECT_NUMBER}).- Nur Looker (Google Cloud Core)-Anwendungen, die dem angegebenen Projekt gehören, sind von der ESL-Richtlinie betroffen.
- Alle anderen Anwendungen (und Looker (Google Cloud Core)-Anwendungen, die anderen Projekten gehören) sind von der Richtlinie nicht betroffen.
- Zeitraum für die Sitzungsdauer: Die Sitzungsdauer muss zwischen mindestens 1 Stunde (
3600s) und maximal 90 Tagen (7776000s) liegen. - Anforderungen an Parameter für Sitzungseinstellungen:
session_length_enabled: Muss auftruefestgelegt werden.session_length: Erforderliche Dauer zwischen 1 Stunde (3600s) und 90 Tagen (7776000s).session_reauth_method: Muss nicht festgelegt oder aufLOGINfestgelegt sein.use_oidc_max_age: Muss nicht festgelegt oder auffalsefestgelegt sein.max_inactivity: Muss deaktiviert sein (oder Standardwert0s). Zeitüberschreitungen für inaktive Sitzungen werden fürrestricted_project-Bindungen nicht unterstützt.
- Unterstützte Identitätsanbieter:
- OIDC: Erfordert einen OIDC-Anbieter, der mit dem Autorisierungscode-Ablauf und dem Bereich
offline_accesszum Ausstellen von Aktualisierungstokens oder mit SCIM-Bereitstellung konfiguriert ist. - SAML 2.0: Erfordert die Aktivierung von SCIM-Bereitstellung für den Workforce-Pool-Anbieter.
- OIDC: Erfordert einen OIDC-Anbieter, der mit dem Autorisierungscode-Ablauf und dem Bereich
- Grenzwert für die Veralterung von Attributen: Es wird ein fester Grenzwert für die Veralterung von 24 Stunden erzwungen. Wenn Google Cloud Nutzerattribute nicht innerhalb von 24 Stunden von Ihrem Identitätsanbieter aktualisieren kann, wird die Sitzung ungültig und der Nutzer muss sich noch einmal authentifizieren.
- Access Context Manager-Einschränkungen:
- Einzelne Organisationsbindung: Bindungen mit verlängerter Sitzungslänge für Mitarbeiterpools müssen auf das Hauptkonto „Alle Mitarbeiterpools“ der Organisation (
principalSet://cloudresourcemanager.googleapis.com/organizations/{ORG_ID}/type/WorkforcePool) ausgerichtet sein. Da diese föderierte Hauptkonto-ID organisationsweit für alle Mitarbeiterpools in Ihrer Organisation gilt, kann es nur eine solche Bindung pro Organisation geben. Wenn Sie erweiterte Sitzungen für mehrere Looker (Google Cloud Core)-Projekte in Personalpools konfigurieren möchten, fügen Sie derscopedAccessSettings-Liste der einzelnen Bindung mehrererestricted_project-Bereichsblöcke hinzu. - Zugriffsebenen (
access_levels,dry_run_access_levels) werden bei Workforce-Pool-Bindungen nicht unterstützt. sessionSettingsauf oberster Ebene direkt imGcpUserAccessBindingwerden für Bindungen von Personalpools nicht unterstützt. Einstellungen müssen inscopedAccessSettings.activeSettings.sessionSettingsdefiniert werden.
- Einzelne Organisationsbindung: Bindungen mit verlängerter Sitzungslänge für Mitarbeiterpools müssen auf das Hauptkonto „Alle Mitarbeiterpools“ der Organisation (
Personalpoolanbieter konfigurieren
Damit die Sitzungslänge verlängert werden kann, muss Ihr Workforce-Poolanbieter so konfiguriert sein, dass die Aktualisierung von Hintergrundattributen unterstützt wird. Sie können den Anbieter so konfigurieren, dass er entweder das OIDC- oder das SAML-Protokoll verwendet.
OIDC-Anbieter konfigurieren
Die Aktualisierung von Attributen im Hintergrund für OIDC-Anbieter kann entweder mit Aktualisierungstokens (offline_access-Bereich) oder mit der SCIM-Bereitstellung erfolgen. Wenn Sie die tokenbasierte Attributaktualisierung verwenden:
- Konfigurieren Sie in Ihrem externen IdP eine OIDC-Anwendung mit dem Autorisierungscode-Vorgang und aktivieren Sie Offlinezugriff, damit ein Aktualisierungstoken zurückgegeben wird.
- Fügen Sie in Google Cloud
offline_accessden zusätzlichen Bereichen Ihres OIDC-Workforce-Pool-Anbieters hinzu.
Der Offlinezugriff muss für alle Workforce-Identitätspools in Ihrer Google Cloud Organisation konfiguriert sein, damit die Richtlinie zur verlängerten Sitzungslänge die beabsichtigte Wirkung hat.
gcloud
Wenn Ihr Anbieter bereits zusätzliche Bereiche hat, fügen Sie diese neben offline_access ein, damit sie nicht überschrieben werden:
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_NAME \
--location=global \
--web-sso-additional-scopes="offline_access[,EXISTING_ADDITIONAL_SCOPES]"
Ersetzen Sie Folgendes:
PROVIDER_ID: Der Name Ihres Anbieters des Mitarbeiteridentitätspools.WORKFORCE_POOL_NAME: Der Name Ihres Workforce Identity-Pools.EXISTING_ADDITIONAL_SCOPES: Alle durch Kommas getrennten zusätzlichen Bereiche, die zuvor für den Anbieter konfiguriert wurden. Wenn Sie keine zusätzlichen Bereiche haben, lassen Sie diesen Parameter weg.
REST API
Senden Sie eine PATCH-Anfrage, um den Anbieter zu aktualisieren. Fügen Sie neben offline_access alle vorhandenen zusätzlichen Bereiche ein:
PATCH https://iam.googleapis.com/v1/locations/global/workforcePools/WORKFORCE_POOL_NAME/providers/PROVIDER_ID?updateMask=oidc.webSsoConfig.additionalScopes
Anfragetext:
{
"oidc": {
"webSsoConfig": {
"additionalScopes": [
"offline_access"
]
}
}
}
Ersetzen Sie Folgendes:
WORKFORCE_POOL_NAME: Der Name Ihres Workforce Identity-Pools.PROVIDER_ID: Die ID Ihres Anbieters des Mitarbeiteridentitätspools.
SAML-Anbieter konfigurieren
Bei SAML-Anbietern ist für die Aktualisierung von Attributen im Hintergrund die SCIM-Bereitstellung erforderlich:
- Richten Sie einen SCIM-Mandanten für Ihren Workforce-Pool-Anbieter ein.
- Konfigurieren Sie die Nutzer- und Gruppenbereitstellung von Ihrem SAML-Identitätsanbieter zum SCIM-Endpunkt.
Eine detaillierte Anleitung finden Sie unter SCIM-Bereitstellung für die Mitarbeiteridentitätsföderation.
Beispielkonfiguration für Looker (Google Cloud Core)
Erstellen Sie eine GcpUserAccessBinding-Ressource, die die Richtlinie für die verlängerte Sitzungslänge dem Personalpool Ihrer Organisation zuweist und die Richtlinie auf das Projekt beschränkt, in dem Ihre Looker (Google Cloud Core)-Instanz gehostet wird.
gcloud
Definieren Sie die Richtlinie in einer YAML-Datei mit dem Namen esl-binding.yaml:
scopedAccessSettings:
- scope:
clientScope:
restrictedProject:
name: projects/PROJECT_NUMBER
activeSettings:
sessionSettings:
sessionLength: 7776000s
sessionLengthEnabled: true
sessionReauthMethod: LOGIN
Erstellen Sie die Zugriffsbindung:
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--federated-principal="principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool" \
--binding-file="esl-binding.yaml"
Ersetzen Sie Folgendes:
ORG_ID: Ihre Google Cloud Organisations-ID (z. B.123456789012).PROJECT_NUMBER: Die Projektnummer der Looker (Google Cloud Core)-Zielinstanz (z. B.987654321098). Nur Looker (Google Cloud Core)-Anwendungen, die zu diesem Projekt gehören, erhalten die verlängerte Sitzungslänge.sessionLength: Die Sitzungsdauer in Sekunden, gefolgt vons. Mit7776000swird beispielsweise eine Sitzung von 90 Tagen angegeben.sessionLengthEnabled: Legen Sietruefest.sessionReauthMethod: Legen SieLOGINfest oder lassen Sie die Einstellung unverändert.
REST API
Senden Sie eine POST-Anfrage an die Access Context Manager API:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
JSON-Anfragetext:
{
"principal": {
"federatedPrincipal": "principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool"
},
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedProject": {
"name": "projects/PROJECT_NUMBER"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "7776000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
}
]
}
Ersetzen Sie Folgendes:
ORG_ID: Ihre Google Cloud Organisations-ID (z. B.123456789012).PROJECT_NUMBER: Die Projektnummer der Looker (Google Cloud Core)-Zielinstanz (z. B.987654321098). Nur Looker (Google Cloud Core)-Anwendungen, die zu diesem Projekt gehören, erhalten die verlängerte Sitzungslänge.sessionLength: Die Sitzungsdauer in Sekunden, gefolgt vons. Mit7776000swird beispielsweise eine Sitzung von 90 Tagen angegeben.sessionLengthEnabled: Legen Sietruefest.sessionReauthMethod: Legen SieLOGINfest oder lassen Sie die Einstellung unverändert.
Bindungen ansehen und auflisten
Da die Bindung für alle Personalpools in der Organisation gilt, gibt es maximal eine Zugriffsbindung pro Organisation.
Aktive Bindungen auflisten
Verwenden Sie den Filter principal:federatedPrincipal, um die Zugriffsbindung für Workforce-Pools in Ihrer Organisation aufzulisten:
gcloud
gcloud access-context-manager cloud-bindings list \
--organization=ORG_ID \
--filter="principal:federatedPrincipal"
REST API
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings?filter=principal:federated_principal
Bindungsdetails abrufen
So rufen Sie die Details einer bestimmten Zugriffsbindung für einen Workforce-Pool auf:
gcloud
gcloud access-context-manager cloud-bindings describe \
--binding=BINDING_NAME
Ersetzen Sie BINDING_NAME durch den vollständigen Ressourcennamen der Bindung (z. B. organizations/123456789012/gcpUserAccessBindings/b1234567890).
REST API
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID
Ersetzen Sie Folgendes:
ORG_ID: Ihre Google Cloud Organisations-ID (z. B.123456789012).BINDING_ID: Die ID Ihrer Zugriffsbindung, z. B.b1234567890.
Zugriffsbinding aktualisieren
Sie können eine vorhandene Zugriffsbindung für einen Personalpool aktualisieren, um die Sitzungslängen zu ändern, neue Projektbereiche hinzuzufügen oder vorhandene Projektbereiche zu entfernen.
gcloud
Definieren Sie die aktualisierte Richtlinie in einer YAML-Datei mit dem Namen
updated-esl-binding.yaml:scopedAccessSettings: - scope: clientScope: restrictedProject: name: projects/PROJECT_NUMBER activeSettings: sessionSettings: sessionLength: 2592000s sessionLengthEnabled: true sessionReauthMethod: LOGINWenden Sie die aktualisierte Richtlinie an:
- Einstellungen für eingeschränkten Zugriff ersetzen: So überschreiben Sie die vorhandenen Projektbereiche mit der in
updated-esl-binding.yamldefinierten Konfiguration:
gcloud access-context-manager cloud-bindings update \ --binding=BINDING_NAME \ --binding-file="updated-esl-binding.yaml"- An vorhandene Einstellungen anhängen: Wenn Sie die in
updated-esl-binding.yamldefinierten Projektbereiche an die vorhandenen Projektbereiche der Bindung anhängen möchten, ohne sie zu überschreiben, übergeben Sie das Flag--append:
gcloud access-context-manager cloud-bindings update \ --binding=BINDING_NAME \ --binding-file="updated-esl-binding.yaml" \ --append- Einstellungen für eingeschränkten Zugriff ersetzen: So überschreiben Sie die vorhandenen Projektbereiche mit der in
Ersetzen Sie Folgendes:
* BINDING_NAME: Der vollständige Ressourcenname der Bindung (z. B. organizations/123456789012/gcpUserAccessBindings/b1234567890).
* PROJECT_NUMBER: Die Projektnummer des Projekts, zu dem die Looker-Instanz (Google Cloud Core) gehört.
* sessionLength: Die aktualisierte Sitzungsdauer (z. B. 2592000s für 30 Tage).
REST API
Senden Sie eine PATCH-Anfrage, um die Bindung zu aktualisieren.
- Einstellungen für den Zugriff mit eingeschränktem Umfang ersetzen: So überschreiben Sie vorhandene Projektbereiche:
PATCH https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID?updateMask=scopedAccessSettings
- An vorhandene Einstellungen anhängen: Wenn Sie neue Projektbereiche anhängen möchten, ohne vorhandene zu überschreiben, legen Sie den Abfrageparameter
append=truefest:
PATCH https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID?updateMask=scopedAccessSettings&append=true
JSON-Anfragetext:
{
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedProject": {
"name": "projects/PROJECT_NUMBER"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "2592000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
}
]
}
Ersetzen Sie Folgendes:
* ORG_ID: Die Google Cloud Organisations-ID (z. B. 123456789012).
* BINDING_ID: Die ID der Zugriffsbindung (z. B. b1234567890).
* PROJECT_NUMBER: Die Projektnummer der Looker (Google Cloud Core)-Zielinstanz.
* sessionLength: Die aktualisierte Sitzungsdauer (z. B. 2592000s für 30 Tage).
Zugriffsbindung löschen
Wenn Sie die Zugriffsbindung für den Personalpool löschen, wird die verlängerte Sitzungsdauer für alle Personalpools in Ihrer Organisation deaktiviert.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding=BINDING_NAME
Ersetzen Sie BINDING_NAME durch den vollständigen Ressourcennamen der Bindung.
REST API
Senden Sie eine DELETE-Anfrage, um die Bindung zu entfernen:
DELETE https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID
Ersetzen Sie Folgendes:
ORG_ID: Ihre Google Cloud Organisations-ID.BINDING_ID: Die ID der zu löschenden Zugriffsbindung.