Längere Sitzungsdauer für die Mitarbeiteridentitätsföderation konfigurieren

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_project werden 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.
  • 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:

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 in scopedAccessSettings mit dem Client-Umfang restricted_project konfiguriert 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 auf true festgelegt werden.
    • session_length: Erforderliche Dauer zwischen 1 Stunde (3600s) und 90 Tagen (7776000s).
    • session_reauth_method: Muss nicht festgelegt oder auf LOGIN festgelegt sein.
    • use_oidc_max_age: Muss nicht festgelegt oder auf false festgelegt sein.
    • max_inactivity: Muss deaktiviert sein (oder Standardwert 0s). Zeitüberschreitungen für inaktive Sitzungen werden für restricted_project-Bindungen nicht unterstützt.
  • Unterstützte Identitätsanbieter:
    • OIDC: Erfordert einen OIDC-Anbieter, der mit dem Autorisierungscode-Ablauf und dem Bereich offline_access zum Ausstellen von Aktualisierungstokens oder mit SCIM-Bereitstellung konfiguriert ist.
    • SAML 2.0: Erfordert die Aktivierung von SCIM-Bereitstellung für den Workforce-Pool-Anbieter.
  • 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 der scopedAccessSettings-Liste der einzelnen Bindung mehrere restricted_project-Bereichsblöcke hinzu.
    • Zugriffsebenen (access_levels, dry_run_access_levels) werden bei Workforce-Pool-Bindungen nicht unterstützt.
    • sessionSettings auf oberster Ebene direkt im GcpUserAccessBinding werden für Bindungen von Personalpools nicht unterstützt. Einstellungen müssen in scopedAccessSettings.activeSettings.sessionSettings definiert werden.

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:

  1. Konfigurieren Sie in Ihrem externen IdP eine OIDC-Anwendung mit dem Autorisierungscode-Vorgang und aktivieren Sie Offlinezugriff, damit ein Aktualisierungstoken zurückgegeben wird.
  2. Fügen Sie in Google Cloudoffline_access den 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:

  1. Richten Sie einen SCIM-Mandanten für Ihren Workforce-Pool-Anbieter ein.
  2. 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 von s. Mit 7776000s wird beispielsweise eine Sitzung von 90 Tagen angegeben.
  • sessionLengthEnabled: Legen Sie true fest.
  • sessionReauthMethod: Legen Sie LOGIN fest 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 von s. Mit 7776000s wird beispielsweise eine Sitzung von 90 Tagen angegeben.
  • sessionLengthEnabled: Legen Sie true fest.
  • sessionReauthMethod: Legen Sie LOGIN fest 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

  1. 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: LOGIN
    
  2. Wenden Sie die aktualisierte Richtlinie an:

    • Einstellungen für eingeschränkten Zugriff ersetzen: So überschreiben Sie die vorhandenen Projektbereiche mit der in updated-esl-binding.yaml definierten 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.yaml definierten 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
    

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=true fest:
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.