Configurare la federazione delle identità per la forza lavoro

Questa guida descrive come configurare la federazione delle identità della forza lavoro con un provider di identità (IdP) che supporta OIDC o SAML 2.0.

Per istruzioni specifiche per il provider di identità, consulta quanto segue:

Prima di iniziare

  1. Assicurati di aver configurato un'organizzazione Google Cloud .
  2. After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. Enable the Identity and Access Management (IAM) and Resource Manager APIs.

    Enable the APIs

  4. Per l'accesso, l'IdP deve fornire informazioni di autenticazione firmate: gli IdP OIDC devono fornire un JWT e le risposte degli IdP SAML devono essere firmate.
  5. Per ricevere informazioni importanti sulle modifiche apportate alla tua organizzazione o ai tuoi Google Cloud prodotti, devi fornire i contatti essenziali. Per ulteriori informazioni, consulta la panoramica della federazione delle identità della forza lavoro.

Costi

La federazione delle identità per la forza lavoro è disponibile come funzionalità senza costi. Tuttavia, l'audit logging dettagliato di Federazione delle identità della forza lavoro utilizza Cloud Logging. Per informazioni sui prezzi di Logging, consulta Prezzi di Google Cloud Observability.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità della forza lavoro, chiedi all'amministratore di concederti il ruolo IAM Amministratore pool di identità della forza lavoro (roles/iam.workforcePoolAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

In alternativa, il ruolo di base Proprietario (roles/owner) include anche le autorizzazioni per configurare la federazione delle identità per la forza lavoro. Non devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli in un ambiente di sviluppo o di test.

Configura la federazione delle identità per la forza lavoro

Per configurare la federazione delle identità per la forza lavoro, crea un pool di identità per la forza lavoro e un provider di pool di identità per la forza lavoro.

Crea un pool di identità della forza lavoro

Per creare il pool, esegui questo comando:

gcloud

Per creare il pool di identità della forza lavoro, esegui questo comando:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Sostituisci quanto segue:

  • WORKFORCE_POOL_ID: un ID che scegli per rappresentare il tuo pool di forza lavoro Google Cloud . Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di query nella documentazione dell'API.
  • ORGANIZATION_ID: l'ID numerico dell'organizzazione della tua Google Cloud organizzazione per il pool di identità forza lavoro. I pool di identità della forza lavoro sono disponibili in tutti i progetti e le cartelle dell'organizzazione.
  • DISPLAY_NAME: (Facoltativo). Un nome visualizzato per il tuo pool di identità della forza lavoro.
  • DESCRIPTION: (Facoltativo). Una descrizione del pool di identità della forza lavoro.
  • SESSION_DURATION: (Facoltativo). La durata della sessione determina per quanto tempo sono validi i token di accesso Google Cloud , le sessioni di accesso alla console (federata) e le sessioni di accesso a gcloud CLI da questo pool di forza lavoro. Per impostazione predefinita, la durata della sessione è di un'ora (3600 secondi). Il valore della durata della sessione deve essere compreso tra 15 minuti (900 secondi) e 12 ore (43.200 secondi).

Console

Per creare il pool di identità della forza lavoro:

  1. Nella console Google Cloud , vai alla pagina Pool di identità della forza lavoro:

    Vai a Pool di identità della forza lavoro

  2. Seleziona l'organizzazione per il tuo pool di identità della forza lavoro. I pool di identità del personale sono disponibili in tutti i progetti e le cartelle di un'organizzazione.

  3. Fai clic su Crea pool e segui questi passaggi:

    1. Nel campo Nome, inserisci il nome visualizzato del pool. L'ID pool viene derivato automaticamente dal nome durante la digitazione e viene visualizzato sotto il campo Nome. Puoi aggiornare l'ID pool facendo clic su Modifica accanto all'ID pool.

    2. (Facoltativo) In Descrizione, inserisci una descrizione del pool.

    3. Per creare il pool di identità della forza lavoro, fai clic su Avanti.

La durata della sessione del pool di identità della forza lavoro è impostata su un'ora (3600 secondi) per impostazione predefinita. La durata della sessione determina per quanto tempo sono validi i Google Cloud token di accesso, console (federata) e le sessioni di accesso gcloud CLI da questo pool di forza lavoro. Dopo aver creato il pool, puoi aggiornarlo per impostare una durata della sessione personalizzata. La durata della sessione deve essere compresa tra 15 minuti (900 secondi) e 12 ore (43.200 secondi).

Crea un provider di pool di identità per la forza lavoro

Questa sezione descrive come creare un provider del pool di identità della forza lavoro per consentire agli utenti dell'IdP di accedere a Google Cloud. Puoi configurare il provider in modo che utilizzi il protocollo OIDC o SAML.

Crea un provider di pool di forza lavoro OIDC

Per creare un fornitore del pool di identità della forza lavoro utilizzando il protocollo OIDC:

  1. Nel tuo IdP OIDC, registra una nuova applicazione per Google Cloud la federazione delle identità per la forza lavoro. Prendi nota dell'ID client e dell'URI emittente forniti dall'IdP. Li utilizzi in questo documento.

  2. Se prevedi di configurare l'accesso degli utenti alla console, aggiungi il seguente URL di reindirizzamento al tuo IdP OIDC:

    https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro

    • WORKFORCE_PROVIDER_ID: l'ID del fornitore del pool di identità della forza lavoro che crei più avanti in questo documento.

    Per scoprire come configurare l'accesso alla console (federato), consulta Configurare l'accesso degli utenti alla console (federato).

  3. In Google Cloud, per creare il provider:

    gcloud

    Flusso codice

    Per creare un provider OIDC che utilizza il flusso del codice di autorizzazione per l'accesso web, esegui questo comando:

    gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
    --client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=global

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: un ID univoco del provider del pool di identità della forza lavoro. Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool di identità per la forza lavoro o provider di pool di identità per la forza lavoro.
    • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui connettere il tuo IdP.
    • DISPLAY_NAME: un nome visualizzato facoltativo e intuitivo per il fornitore, ad esempio idp-eu-employees.
    • DESCRIPTION: una descrizione facoltativa del fornitore di personale, ad esempio IdP for Partner Example Organization employees.
    • ISSUER_URI: l'URI dell'emittente OIDC, in un formato URI valido, che inizia con https; ad esempio, https://example.com/oidc. Nota: per motivi di sicurezza, ISSUER_URI deve utilizzare lo schema HTTPS.
    • OIDC_CLIENT_ID: l'ID client OIDC registrato con il tuo IdP OIDC; l'ID deve corrispondere all'attestazione aud del JWT emesso dal tuo IdP.
    • OIDC_CLIENT_SECRET: il client secret OIDC.
    • WEB_SSO_ADDITIONAL_SCOPES: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per l'accesso basato sul browser alla console (federata) o all'interfaccia a riga di comando gcloud CLI.
    • ATTRIBUTE_MAPPING: una mappatura degli attributi. Di seguito è riportato un esempio di mapping degli attributi:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Questo esempio mappa gli attributi IdP subject, group1 e costcenter nell'asserzione OIDC agli attributi google.subject, google.groups e attribute.costcenter, rispettivamente.
    • ATTRIBUTE_CONDITION: una condizione dell'attributo; ad esempio, assertion.role == 'gcp-users'. Questa condizione di esempio garantisce che solo gli utenti con il ruolo gcp-users possano accedere utilizzando questo provider.
    • JWK_JSON_PATH: un percorso facoltativo a un JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud utilizza invece il percorso /.well-known/openid-configuration del tuo IdP per recuperare i JWK contenenti le chiavi pubbliche. Per ulteriori informazioni sui JWK OIDC caricati localmente, consulta Gestire i JWK OIDC.
    • La federazione delle identità per la forza lavoro audit logging dettagliato registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit log, consulta Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

      Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

    Nella risposta al comando, POOL_RESOURCE_NAME è il nome del pool; ad esempio, locations/global/workforcePools/enterprise-example-organization-employees.

    Flusso implicito

    Per creare un provider OIDC che utilizza il flusso implicito per l'accesso web, esegui questo comando:

    gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --display-name="DISPLAY_NAME" \
        --description="DESCRIPTION" \
        --issuer-uri="ISSUER_URI" \
        --client-id="OIDC_CLIENT_ID" \
        --web-sso-response-type="id-token" \
        --web-sso-assertion-claims-behavior="only-id-token-claims" \
        --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
        --attribute-mapping="ATTRIBUTE_MAPPING" \
        --attribute-condition="ATTRIBUTE_CONDITION" \
        --jwk-json-path="JWK_JSON_PATH" \
        --detailed-audit-logging \
        --location=global
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: un ID univoco del provider del pool di identità della forza lavoro. Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool di identità per la forza lavoro o provider di pool di identità per la forza lavoro.
    • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui connettere il tuo IdP.
    • DISPLAY_NAME: un nome visualizzato facoltativo e intuitivo per il fornitore, ad esempio idp-eu-employees.
    • DESCRIPTION: una descrizione facoltativa del fornitore di personale, ad esempio IdP for Partner Example Organization employees.
    • ISSUER_URI: l'URI dell'emittente OIDC, in un formato URI valido, che inizia con https; ad esempio, https://example.com/oidc. Nota: per motivi di sicurezza, ISSUER_URI deve utilizzare lo schema HTTPS.
    • OIDC_CLIENT_ID: l'ID client OIDC registrato con il tuo IdP OIDC; l'ID deve corrispondere all'attestazione aud del JWT emesso dal tuo IdP.
    • WEB_SSO_ADDITIONAL_SCOPES: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per l'accesso basato sul browser alla console (federata) o all'interfaccia a riga di comando gcloud CLI.
    • ATTRIBUTE_MAPPING: una mappatura degli attributi. Di seguito è riportato un esempio di mapping degli attributi:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Questo esempio mappa gli attributi IdP subject, group1 e costcenter nell'asserzione OIDC agli attributi google.subject, google.groups e attribute.costcenter, rispettivamente.
    • ATTRIBUTE_CONDITION: una condizione dell'attributo; ad esempio, assertion.role == 'gcp-users'. Questa condizione di esempio garantisce che solo gli utenti con il ruolo gcp-users possano accedere utilizzando questo provider.
    • JWK_JSON_PATH: un percorso facoltativo a un JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud utilizza invece il percorso /.well-known/openid-configuration del tuo IdP per recuperare i JWK contenenti le chiavi pubbliche. Per ulteriori informazioni sui JWK OIDC caricati localmente, consulta Gestire i JWK OIDC.
    • La federazione delle identità per la forza lavoro audit logging dettagliato registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit log, consulta Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

      Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

    Nella risposta al comando, POOL_RESOURCE_NAME è il nome del pool; ad esempio, locations/global/workforcePools/enterprise-example-organization-employees.

    Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool di identità per la forza lavoro o provider di pool di identità per la forza lavoro.

    Per il federazione OIDC, puoi utilizzare assertion.NAME: una stringa uguale al valore dell'attestazione con lo stesso nome nel payload del token ID.

    Console

    Flusso codice

    Nella console Google Cloud , per creare un provider OIDC che utilizza il flusso del codice di autorizzazione, segui questi passaggi:

    1. Nella console Google Cloud , vai alla pagina Pool di identità della forza lavoro:

      Vai a Pool di identità della forza lavoro

    2. Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.

    3. Nella tabella Provider, fai clic su Aggiungi provider.

    4. In Seleziona un protocollo, seleziona OpenID Connect (OIDC).

    5. In Crea un provider di pool:

      1. In Nome, inserisci il nome del provider.
      2. In Emittente (URL), inserisci l'URI dell'emittente. L'URI dell'emittente OIDC deve essere in un formato URI valido e iniziare con https; ad esempio, https://example.com/oidc.
      3. Inserisci l'ID client, l'ID client OIDC registrato con il tuo IdP OIDC; l'ID deve corrispondere all'attestazione aud del JWT emesso dal tuo IdP.
      4. Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
      5. Fai clic su Continua.
    6. In Tipo di flusso, procedi nel seguente modo. Il tipo di flusso viene utilizzato solo per un flusso Single Sign-On basato sul web.

      1. In Tipo di flusso, seleziona Codice.
      2. In Client secret, inserisci il client secret del tuo IdP.
      3. In Comportamento delle rivendicazioni di asserzione, seleziona una delle seguenti opzioni:

        • Informazioni utente e token ID
        • Solo token ID
      4. Fai clic su Continua.

    7. In Configura provider, puoi configurare una mappatura degli attributi e una condizione degli attributi. Per creare una mappatura degli attributi, segui questi passaggi. Puoi fornire il nome del campo IdP o un'espressione formattata in CEL che restituisce una stringa.

      1. Obbligatorio: in OIDC 1, inserisci l'oggetto dell'IdP, ad esempio assertion.sub.

      2. (Facoltativo) Per aggiungere altre mappature degli attributi:

        1. Fai clic su Aggiungi mappatura.
        2. In Google n, dove n è un numero, inserisci uno dei tasti supportati daGoogle Cloud.
        3. Nel campo OIDC n corrispondente, inserisci il nome del campo specifico dell'IdP da mappare, in formato CEL.
      3. Per creare una condizione dell'attributo:

        1. Fai clic su Aggiungi condizione.
        2. In Condizioni degli attributi, inserisci una condizione in formato CEL; ad esempio, assertion.role == 'gcp-users'. Questa condizione di esempio garantisce che solo gli utenti con il ruolo gcp-users possano accedere utilizzando questo provider.
      4. Per attivare il logging di audit dettagliato, in Logging dettagliato, fai clic sul pulsante di attivazione/disattivazione Abilita il logging dettagliato dei valori degli attributi.

        La federazione delle identità per la forza lavoro audit logging dettagliato registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit log, consulta Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

        Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

    8. Per creare il fornitore, fai clic su Invia.

    Flusso implicito

    Nella console Google Cloud , per creare un provider OIDC che utilizza il flusso implicito, segui questi passaggi:

    1. Nella console Google Cloud , vai alla pagina Pool di identità della forza lavoro:

      Vai a Pool di identità della forza lavoro

    2. Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.

    3. Nella tabella Provider, fai clic su Aggiungi provider.

    4. In Seleziona un protocollo, seleziona OpenID Connect (OIDC).

    5. In Crea un provider di pool:

      1. In Nome, inserisci un nome per il provider.
      2. In Emittente (URL), inserisci l'URI dell'emittente. L'URI dell'emittente OIDC deve essere in un formato URI valido e iniziare con https; ad esempio, https://example.com/oidc.
      3. Inserisci l'ID client, l'ID client OIDC registrato con il tuo IdP OIDC; l'ID deve corrispondere all'attestazione aud del JWT emesso dal tuo IdP.
      4. Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
      5. Fai clic su Continua.
    6. In Tipo di flusso, procedi nel seguente modo. Il tipo di flusso viene utilizzato solo per un flusso Single Sign-On basato sul web.

      1. In Tipo di flusso, seleziona Token ID.
      2. Fai clic su Continua.
    7. In Configura provider, puoi configurare una mappatura degli attributi e una condizione degli attributi. Per creare una mappatura degli attributi, segui questi passaggi. Puoi fornire il nome del campo IdP o un'espressione formattata in CEL che restituisce una stringa.

      1. Obbligatorio: in OIDC 1, inserisci l'oggetto dell'IdP, ad esempio assertion.sub.

      2. (Facoltativo) Per aggiungere altre mappature degli attributi:

        1. Fai clic su Aggiungi mappatura.
        2. In Google n, dove n è un numero, inserisci uno dei tasti supportati daGoogle Cloud.
        3. Nel campo OIDC n corrispondente, inserisci il nome del campo specifico dell'IdP da mappare, in formato CEL.
      3. Per creare una condizione dell'attributo:

        1. Fai clic su Aggiungi condizione.
        2. In Condizioni degli attributi, inserisci una condizione in formato CEL; ad esempio, assertion.role == 'gcp-users'. Questa condizione di esempio garantisce che solo gli utenti con il ruolo gcp-users possano accedere utilizzando questo provider.

      4. Per attivare il logging di audit dettagliato, in Logging dettagliato, fai clic sul pulsante di attivazione/disattivazione Abilita il logging dettagliato dei valori degli attributi.

        La federazione delle identità per la forza lavoro audit logging dettagliato registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit log, consulta Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

        Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

    8. Per creare il fornitore, fai clic su Invia.

Crea un provider di pool di forza lavoro SAML

  1. Nel tuo IdP SAML, registra una nuova applicazione per la federazione delle identità per la forza lavoro Google Cloud.

  2. Imposta il pubblico per le asserzioni SAML. Di solito è il campo SP Entity ID nella configurazione dell'IdP. Devi impostarlo sul seguente URL:

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    
  3. Imposta l'URL di reindirizzamento, noto anche come URL Assertion Consumer Service (ACS). Per impostare l'URL di reindirizzamento, individua il campo URL di reindirizzamento nel tuo IdP SAML ed esegui una delle seguenti operazioni:

    • Per configurare l'accesso basato sul browser tramite la console Google Cloud o un altro metodo di accesso basato sul browser, inserisci il seguente URL:

      https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Sostituisci quanto segue:

      • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro

      • WORKFORCE_PROVIDER_ID: l'ID del fornitore del pool di identità forza lavoro che crei più avanti in questo documento.

    • Per configurare l'accesso programmatico tramite il tuo IdP, inserisci il seguente URL:

      localhost
      

    Per maggiori dettagli sulla configurazione dell'accesso alla console, consulta Configurare l'accesso utente alla console.

  4. In Google Cloud, crea un provider di identità della forza lavoro SAML utilizzando il documento dei metadati SAML del tuo IdP. Puoi scaricare il documento XML dei metadati SAML dal tuo IdP. Il documento deve includere almeno quanto segue:

    • Un ID entità SAML per il tuo IdP.
    • L'URL Single Sign-On per il tuo IdP.
    • Almeno una chiave pubblica di firma. Per informazioni dettagliate sulle chiavi di firma, consulta la sezione Requisiti delle chiavi più avanti in questa guida.

gcloud

Per configurare il provider SAML utilizzando gcloud CLI, segui questi passaggi:

  gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
      --workforce-pool=WORKFORCE_POOL_ID \
      --display-name="DISPLAY_NAME" \
      --description="DESCRIPTION" \
      --idp-metadata-path=METADATA_FILE_PATH \
      --attribute-mapping="ATTRIBUTE_MAPPING" \
      --attribute-condition="ATTRIBUTE_CONDITION" \
      --location=global

Sostituisci quanto segue:

  • WORKFORCE_PROVIDER_ID: L'ID del provider del pool di identità forza lavoro.
  • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro.
  • DISPLAY_NAME Il nome visualizzato del fornitore; ad esempio, idp-eu-employees.
  • DESCRIPTION: la descrizione del provider del pool di identità forza lavoro, ad esempio IdP for Partner Example Organization EU employees.
  • METADATA_FILE_PATH: il percorso del file di metadati SAML.
  • ATTRIBUTE_MAPPING: la mappatura degli attributi; ad esempio:

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    Questo esempio mappa gli attributi IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] agli attributi Google Cloud google.subject, google.groups e google.costcenter, rispettivamente.

  • ATTRIBUTE_CONDITION: una condizione dell'attributo. Ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.attributes.ipaddr.startsWith('98.11.12.'). Questa condizione di esempio garantisce che solo gli utenti con un indirizzo IP che inizia con 98.11.12. possano accedere utilizzando questo provider di forza lavoro.

Potrebbero essere necessari alcuni minuti prima che il fornitore inizi ad accettare le richieste.

Per la federazione SAML, puoi utilizzare le seguenti parole chiave nelle mappature degli attributi e nelle condizioni:

  • assertion.subject: una stringa uguale all'attributo NameID nell'asserzione SAML.
  • assertion.attributes.NAME: un elenco di stringhe uguale ai valori degli attributi con lo stesso nome nell'asserzione SAML.

(Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP

Per consentire al tuo IdP SAML 2.0 di produrre asserzioni SAML criptate che possono essere accettate dalla federazione delle identità per la forza lavoro, procedi nel seguente modo:

  • Nella federazione delle identità per la forza lavoro, procedi nel seguente modo:
    • Crea una coppia di chiavi asimmetriche per il provider del pool di identità per la forza lavoro.
    • Scarica un file di certificato contenente la chiave pubblica.
    • Configura l'IdP SAML in modo che utilizzi la chiave pubblica per criptare le asserzioni SAML che emette.
  • Nel tuo IdP:
    • Attiva la crittografia delle asserzioni, nota anche come crittografia dei token.
    • Carica la chiave pubblica che hai creato nella federazione delle identità per la forza lavoro.
    • Conferma che il tuo IdP produce asserzioni SAML criptate.
Tieni presente che, anche con le chiavi del provider di crittografia SAML configurate, la federazione delle identità della forza lavoro può comunque elaborare un'asserzione in testo non crittografato.

Crea chiavi di crittografia dell'asserzione SAML della federazione delle identità per la forza lavoro

Questa sezione ti guida nella creazione di una coppia di chiavi asimmetriche che consente alla federazione delle identità della forza lavoro di accettare asserzioni SAML criptate.

Google Cloud utilizza la chiave privata per decriptare le asserzioni SAML emesse dal tuo IdP. Per creare una coppia di chiavi asimmetriche da utilizzare con la crittografia SAML, esegui il seguente comando. Per saperne di più, consulta Algoritmi di crittografia SAML supportati.

gcloud iam workforce-pools providers keys create KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --use encryption \
    --spec KEY_SPECIFICATION

Sostituisci quanto segue:

  • KEY_ID: un nome della chiave a tua scelta
  • WORKFORCE_POOL_ID: l'ID pool
  • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
  • KEY_SPECIFICATION: la specifica della chiave, che può essere rsa-2048, rsa-3072 e rsa-4096.

Dopo aver creato la coppia di chiavi, esegui il seguente comando per scaricare la chiave pubblica in un file di certificato. Solo la federazione delle identità per la forza lavoro ha accesso alla chiave privata.

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --format "value(keyData.key)" \
    > CERTIFICATE_PATH

Sostituisci quanto segue:

  • KEY_ID: il nome della chiave
  • WORKFORCE_POOL_ID: l'ID pool
  • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
  • CERTIFICATE_PATH: il percorso in cui scrivere il certificato, ad esempio saml-certificate.cer o saml-certificate.pem

Configurare l'IdP conforme a SAML 2.0 per emettere asserzioni SAML criptate

Configura il tuo IdP SAML in modo che utilizzi il certificato pubblico scaricato dall'ultimo passaggio per criptare le asserzioni SAML che emette. Per istruzioni specifiche, rivolgiti al team del tuo IdP.

Dopo aver configurato l'IdP per criptare le asserzioni SAML, ti consigliamo di verificare che le asserzioni generate siano effettivamente criptate. Anche con la crittografia delle asserzioni SAML configurata, la federazione delle identità per la forza lavoro può comunque elaborare le asserzioni in testo normale.

Elimina le chiavi di crittografia della federazione delle identità per la forza lavoro

Per eliminare le chiavi di crittografia SAML, esegui questo comando:
  gcloud iam workforce-pools providers keys delete KEY_ID \
      --workforce-pool WORKFORCE_POOL_ID \
      --provider WORKFORCE_PROVIDER_ID \
      --location global

Sostituisci quanto segue:

  • KEY_ID: il nome della chiave
  • WORKFORCE_POOL_ID: l'ID pool
  • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro

Algoritmi di crittografia SAML supportati

La federazione delle identità per la forza lavoro supporta i seguenti algoritmi di trasporto delle chiavi:

La federazione delle identità per la forza lavoro supporta i seguenti algoritmi di crittografia a blocchi:

Requisiti della chiave di firma X.509 SAML

Le seguenti specifiche delle chiavi si applicano alle chiavi di firma X.509 SAML:

  • Una chiave pubblica RSA inserita in un certificato X.509 v3.

  • Requisiti di validità del certificato:

    • notBefore: un timestamp non più di 7 giorni nel futuro
    • notAfter: un timestamp non più lontano di 25 anni nel futuro
  • Algoritmi consigliati:

Un provider di pool di identità per la forza lavoro può essere configurato con al massimo tre chiavi di firma in un determinato momento. Quando esistono più chiavi, Google Cloud le scorre e tenta di utilizzare ogni chiave non scaduta per soddisfare una richiesta di scambio di token.

Come best practice di sicurezza, ti consigliamo vivamente di non riutilizzare la stessa coppia di chiavi con altri servizi.

Gestione delle chiavi

Per aggiornare le chiavi di firma del tuo IdP:

  1. Crea una nuova coppia di chiavi asimmetriche e configura il provider di identità SAML con la coppia di chiavi. Inizialmente lo contrassegni come inattivo prima di attivarlo in un passaggio successivo.

  2. Scarica un documento XML dei metadati SAML dal tuo IdP.

  3. Aggiorna la risorsa del fornitore del pool di identità per la forza lavoro utilizzando il documento di metadati SAML. Quando esistono più chiavi, Google Cloud itera ogni chiave non scaduta e tenta di utilizzarla per soddisfare una richiesta di scambio di token.

    Per aggiornare il provider del pool di identità della forza lavoro con i metadati SAML, esegui il comando seguente.

    gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità forza lavoro
    • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro
    • SAML_METADATA_FILE_PATH: il percorso del file di metadati SAML
  4. Attendi il completamento dell'operazione restituita dal passaggio precedente (l'operazione è contrassegnata come completata), quindi nel tuo IdP SAML attiva la nuova chiave di firma. La vecchia chiave di firma è contrassegnata come inattiva. Le asserzioni emesse dal tuo IdP vengono firmate utilizzando la nuova chiave.

I seguenti passaggi sono facoltativi, ma ti consigliamo di eseguirli come best practice:

  1. Elimina la vecchia chiave di firma, ora inattiva, dal tuo IdP.
  2. Scarica dal tuo IdP il documento XML dei metadati SAML.
  3. Aggiorna la risorsa del provider del pool di identità della forza lavoro utilizzando il documento dei metadati SAML. Google Cloud rifiuta le asserzioni firmate con la chiave di firma scaduta. Per aggiornare il documento, esegui il comando seguente:

    gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
        --workforce-pool=WORKFORCE_POOL_ID \
        --idp-metadata-path=SAML_METADATA_FILE_PATH \
        --location=global
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: l'ID del provider del pool di identità forza lavoro
    • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro
    • SAML_METADATA_FILE_PATH: il percorso dei metadati SAML

Vincolo di eliminazione della chiave

Google Cloud rifiuta le asserzioni firmate con una chiave eliminata.

Console

Per configurare il provider SAML utilizzando la console Google Cloud , procedi nel seguente modo:

  1. Nella console Google Cloud , vai alla pagina Pool di identità della forza lavoro:

    Vai a Pool di identità della forza lavoro

  2. Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.

  3. Nella tabella Provider, fai clic su Aggiungi provider.

  4. In Seleziona un protocollo, seleziona SAML.

  5. In Crea un provider di pool, segui questi passaggi:

    1. In Nome, inserisci un nome per il provider.

    2. (Facoltativo) In Descrizione, inserisci una descrizione del fornitore.

    3. In IDP metadata file (XML) (File di metadati IDP (XML)), seleziona il file XML di metadati che hai generato in precedenza in questa guida.

    4. Assicurati che l'opzione Provider abilitato sia attivata.

    5. Fai clic su Continua.

  6. In Configura provider:

    1. In Mappatura degli attributi, inserisci un'espressione CEL per google.subject.

    2. (Facoltativo) Per inserire altre mappature, fai clic su Aggiungi mappatura e inserisci altre mappature, ad esempio:

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      Questo esempio mappa gli attributi IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] agli attributi Google Cloud google.subject, google.groups e google.costcenter, rispettivamente.

    3. (Facoltativo) Per aggiungere una condizione per attributo, fai clic su Aggiungi condizione e inserisci un'espressione CEL che rappresenti una condizione per attributo. Ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.attributes.ipaddr.startsWith('98.11.12.'). Questa condizione di esempio garantisce che solo gli utenti con un indirizzo IP che inizia con 98.11.12. possano accedere utilizzando questo provider di forza lavoro.

    4. Fai clic su Continua.

    5. Per attivare il logging di audit dettagliato, in Logging dettagliato, fai clic sul pulsante di attivazione/disattivazione Abilita il logging dettagliato dei valori degli attributi.

      La federazione delle identità per la forza lavoro audit logging dettagliato registra le informazioni ricevute dal tuo IdP in Logging. L'audit logging dettagliato può aiutarti a risolvere i problemi di configurazione del provider del pool di identità della forza lavoro. Per scoprire come risolvere i problemi relativi agli errori di mappatura degli attributi con la registrazione dettagliata degli audit log, consulta Errori generali di mappatura degli attributi. Per informazioni sui prezzi di Logging, consulta la pagina Prezzi di Google Cloud Observability.

      Per disattivare la registrazione di controllo dettagliata per un provider di pool di identità per la forza lavoro, ometti il flag --detailed-audit-logging quando esegui gcloud iam workforce-pools providers create. Per disattivare il logging di controllo dettagliato, puoi anche aggiornare il fornitore.

  7. Per creare il fornitore, fai clic su Invia.

Rappresentare gli utenti del pool di forza lavoro nelle policy IAM

La seguente tabella mostra gli identificatori delle entità utilizzati per concedere ruoli a un singolo utente, a un gruppo di utenti, a utenti con una determinata rivendicazione o a tutti gli utenti di un pool di forza lavoro.

Identità Formato dell'identificatore
Singola identità in un pool di identità per la forza lavoro principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
Tutte le identità della forza lavoro in un gruppo principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
Tutte le identità della forza lavoro con un valore di attributo specifico principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Tutte le identità in un pool di identità per la forza lavoro principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*

Per un elenco completo degli identificatori delle entità, consulta Identificatori delle entità.

Concedi ruoli IAM alle entità

Puoi concedere ruoli a entità, ad esempio singole identità, gruppi di identità o un intero pool.

Per concedere un ruolo su un progetto a un principal, esegui questo comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="ROLE" \
    --member="PRINCIPAL"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • ROLE: il ruolo da impostare
  • PRINCIPAL: l'entità. Per la federazione delle identità per la forza lavoro, consulta Identificatori entità.

Nell'esempio che segue, il comando concede il ruolo Amministratore Storage (roles/storage.admin) a tutte le identità all'interno del gruppo GROUP_ID:

gcloud projects add-iam-policy-binding my-project \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Per maggiori informazioni sul formato del principal, consulta Identificatori principal per la federazione delle identità per la forza lavoro.

Eliminare utenti

La federazione delle identità della forza lavoro crea metadati e risorse utente per le identità utente federate. Se scegli di eliminare gli utenti nel tuo IdP, devi eliminare esplicitamente anche queste risorse in Google Cloud. Per farlo, consulta Eliminare gli utenti della federazione delle identità del personale e i relativi dati.

Potresti notare che le risorse continuano a essere associate a un utente eliminato. Questo perché l'eliminazione dei metadati e delle risorse utente richiede un'operazione a esecuzione prolungata. Dopo aver avviato l'eliminazione dell'identità di un utente, i processi che l'utente ha avviato prima dell'eliminazione possono continuare a essere eseguiti fino al completamento o all'annullamento.

Passaggi successivi