Configura la federazione delle identità per la forza lavoro con Azure AD e accedi agli utenti

Questa guida illustra come configurare la federazione delle identità per la forza lavoro utilizzando Azure AD come provider di identità (IdP), nonché come gestire gli accessi e accedere agli utenti per accedere ai servizi Google Cloud che supportano la federazione delle identità per la forza lavoro.

Prima di iniziare

  1. Devi aver configurato un'organizzazione Google Cloud.

  2. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

    gcloud init

  3. In Azure AD, assicurati che i token ID siano abilitati per il flusso implicito. Per ulteriori informazioni, consulta Abilitare il flusso implicito.

  4. Per l'accesso, l'IdP deve fornire le informazioni di autenticazione firmate: gli IdP OIDC devono fornire un JWT e le risposte dell'IdP SAML devono essere firmate.

  5. Per ricevere informazioni importanti sulle modifiche apportate alla tua organizzazione o ai prodotti Google Cloud, devi fornire Contatti necessari. Per saperne di più, consulta la panoramica sulla federazione delle identità per la forza lavoro.

Ruoli obbligatori

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

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

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

Crea un pool di identità della forza lavoro

Console

Per creare il pool di identità della forza lavoro:

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

    Vai a Pool di identità della forza lavoro

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

    1. In Nome, inserisci il nome del pool. L'ID pool viene automaticamente derivato dal nome durante la digitazione.

    2. (Facoltativo) Per aggiornare il documento di identità, fai clic su Modifica.

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

    4. La durata della sessione è impostata per impostazione predefinita. Per inserire una durata personalizzata della sessione, fai clic su Modifica. La durata della sessione determina per quanto tempo sono validi i token di accesso di Google Cloud, le sessioni di accesso alla console (federate) e le sessioni di accesso gcloud CLI da questo pool di forza lavoro. La durata deve essere superiore a 15 minuti (900 secondi) e inferiore a 12 ore (43.200 secondi). Se la durata della sessione non è impostata, il valore predefinito sarà di un'ora (3600 s).

    5. Per creare il pool nello stato Attivato, assicurati che il Pool abilitato sia attivato.

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

gcloud

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

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

Sostituisci quanto segue:

  • WORKFORCE_POOL_ID: un ID che scegli per rappresentare il pool di forza lavoro Google Cloud. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca nella documentazione dell'API.
  • ORGANIZATION_ID: l'ID organizzazione numerico della tua organizzazione Google Cloud.
  • DESCRIPTION: una descrizione del pool di identità della forza lavoro.
  • SESSION_DURATION: la durata della sessione, che determina la durata di validità dei token di accesso a Google Cloud, delle sessioni di accesso alla console (federate) e di gcloud CLI da questo pool di forza lavoro. La durata deve essere superiore a 15 minuti (900 secondi) e inferiore a 12 ore (43.200 secondi). Se la durata della sessione non è impostata, il valore predefinito sarà di un'ora (3600 s).

Crea un'app Azure AD

Questa sezione illustra i passaggi per creare un'app Azure AD utilizzando il portale Microsoft Azure. Per maggiori dettagli, vedi Che cos'è l'autenticazione.

I pool di identità della forza lavoro supportano la federazione tramite protocolli OIDC e SAML.

OIDC

Per creare una registrazione di app Microsoft che utilizzi il protocollo OIDC, segui questi passaggi:

  1. Accedi al portale Microsoft Azure.
  2. Vai ad Azure Active Directory > Registrazioni app.
  3. Per iniziare a configurare la registrazione dell'app, segui questi passaggi:

    1. Fai clic su Nuova registrazione.
    2. Inserisci un nome per l'app.
    3. In Tipi di account supportati, seleziona un'opzione.
    4. Nella sezione URI di reindirizzamento, nell'elenco a discesa Seleziona una piattaforma, seleziona Web. Nel campo di testo, inserisci un URL di reindirizzamento. Gli utenti vengono reindirizzati a questo URL dopo aver eseguito l'accesso. Se stai configurando l'accesso alla console (federata), utilizza il seguente formato di 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 forza lavoro creato in precedenza in questa guida.
      • WORKFORCE_PROVIDER_ID: un ID provider di identità per la forza lavoro a tua scelta, ad esempio: azure-ad-oidc-provider. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca nella documentazione dell'API.
    5. Per creare la registrazione dell'app, fai clic su Registra.

  4. (Facoltativo) Per configurare un'attestazione dei gruppi, segui questi passaggi:

    1. Vai alla registrazione dell'app Azure AD.
    2. Fai clic su Configurazione token.
    3. Fai clic su Aggiungi rivendicazione gruppi. Per utilizzare il mapping degli attributi di esempio fornito più avanti in questa guida, devi creare un attributo department personalizzato.
    4. Seleziona i tipi di gruppo da restituire. Per maggiori dettagli, consulta Configurare rivendicazioni facoltative per i gruppi.

SAML

Per creare un'applicazione Microsoft che utilizza il protocollo SAML, segui questi passaggi:

  1. Accedi al portale Microsoft Azure.
  2. Vai ad Azure Active Directory > Applicazioni aziendali.
  3. Per iniziare a configurare l'applicazione aziendale, segui questi passaggi:

    1. Fai clic su Nuova applicazione > Crea la tua applicazione.
    2. Inserisci un nome per l'app.
    3. Fai clic su Crea.
    4. Vai a Single Sign-On > SAML.
    5. Aggiorna la configurazione SAML di base come segue:

      1. Nel campo Identificatore (ID entità), inserisci il seguente valore:

        https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
        
      2. Nel campo URL di risposta (Assertion Consumer Service URL), inserisci un URL di reindirizzamento. Una volta eseguito l'accesso, gli utenti verranno reindirizzati a questo URL. Se stai configurando l'accesso alla console (federata), utilizza il seguente formato di 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 creato in precedenza in questa guida.
        • WORKFORCE_PROVIDER_ID: un ID provider di identità per la forza lavoro a tua scelta; ad esempio: azure-ad-oidc-provider. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca nella documentazione dell'API.
      3. Se vuoi abilitare l'accesso avviato dall'IdP, imposta il campo Stato di inoltro sul seguente valore:

        https://console.cloud.google/
        
      4. Per salvare la configurazione dell'app SAML, fai clic su Save (Salva).

  4. Per configurare una rivendicazione di un gruppo: Per utilizzare il mapping degli attributi di esempio fornito più avanti in questa guida, devi creare un attributo department personalizzato.

    1. Vai all'app Azure AD.
    2. Fai clic su Single Sign-On.
    3. Nella sezione Attributi e rivendicazioni, fai clic su Modifica.
    4. Fai clic su Aggiungi una rivendicazione del gruppo.
    5. Seleziona il tipo di gruppo da restituire. Per maggiori dettagli, consulta Aggiungere rivendicazioni di gruppi ai token per le applicazioni SAML che utilizzano la configurazione SSO.

Crea il provider del pool di identità della forza lavoro Azure AD

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

Crea un provider del pool di forza lavoro OIDC

Per creare un provider di pool di identità della forza lavoro per l'integrazione dell'app Azure AD, utilizzando il protocollo OIDC:

  1. Per ottenere l'URI dell'emittente per la tua app Azure AD:

    1. Vai alla registrazione dell'app Azure AD.
    2. Fai clic su Endpoint.
    3. Apri il documento di metadati OpenID Connect in una nuova scheda.
    4. Nel file JSON, copia il valore di issuer.
  2. Per ottenere l'ID client per l'app Azure AD:

    1. Vai alla registrazione dell'app Azure AD.
    2. In ID applicazione (client), copia il valore.
  3. Per creare un provider di pool di identità della forza lavoro OIDC per l'accesso basato sul web:

    Console

    Flusso codice

    Per creare un provider OIDC che utilizza il flusso del codice di autorizzazione per l'accesso basato sul web, segui questi passaggi:

    1. Per ottenere il client secret di Azure AD:

      1. Vai alla registrazione dell'app Azure AD.

      2. In Certificati e segreti, fai clic sulla scheda Client secret.

      3. Per aggiungere un client secret, fai clic su + Nuovo client secret.

      4. Nella finestra di dialogo Aggiungi un client secret, inserisci le informazioni necessarie.

      5. Per creare il client secret, fai clic su Aggiungi.

      6. Nella scheda Client secret, individua il nuovo client secret.

      7. Nella colonna Valore del nuovo client secret, fai clic su Copia.

    2. Nella console Google Cloud, per creare un provider OIDC che utilizza il flusso del codice di autorizzazione:

      1. Nella console Google Cloud, vai alla pagina Pool di identità per la 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, scegli Open ID Connect (OIDC).

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

        1. In Nome, inserisci un nome per il fornitore.
        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, ovvero l'ID client OIDC registrato presso il tuo IdP OIDC. L'ID deve corrispondere alla rivendicazione aud del JWT emessa dall'IdP.
        4. Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
        5. Fai clic su Continua.
      6. In Tipo di risposta, procedi nel seguente modo. Il tipo di risposta viene utilizzato solo per un flusso Single Sign-On basato sul web.

        1. In Tipo di risposta, seleziona Codice.
        2. In Client secret, inserisci il client secret del tuo IdP.
        3. In Comportamento delle attestazioni delle asserzioni, 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: Puoi fornire il nome del campo IdP o un'espressione in formato CEL che restituisce una stringa.

        1. Obbligatorio: in OIDC 1, inserisci l'oggetto indicato nell'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 una delle chiavi supportate da Google 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 attributi, inserisci una condizione in formato CEL; ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.ipaddr.startsWith('98.11.12.').
      8. Per creare il provider, fai clic su Invia.

    Flusso implicito

    Per creare un provider OIDC che utilizzi un flusso implicito per l'accesso basato sul web, segui questi passaggi:

    1. Nella console Google Cloud, vai alla pagina Pool di identità per la 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, scegli Open ID Connect (OIDC).

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

      1. In Nome, inserisci un nome per il fornitore.
      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, ovvero l'ID client OIDC registrato presso il tuo IdP OIDC. L'ID deve corrispondere alla rivendicazione aud del JWT emessa dall'IdP.
      4. Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
      5. Fai clic su Continua.
    6. In Tipo di risposta, procedi nel seguente modo. Il tipo di risposta viene utilizzato solo per un flusso Single Sign-On basato sul web.

      1. In Tipo di risposta, 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: Puoi fornire il nome del campo IdP o un'espressione in formato CEL che restituisce una stringa.

      1. Obbligatorio: in OIDC 1, inserisci l'oggetto indicato nell'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 una delle chiavi supportate da Google 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 attributi, inserisci una condizione in formato CEL; ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.ipaddr.startsWith('98.11.12.').
    8. Per creare il provider, fai clic su Invia.

    gcloud

    Per creare un provider che supporti il protocollo OIDC:

    Flusso codice

    Per creare un provider OIDC che utilizza il flusso del codice di autorizzazione per l'accesso basato sul web:

    1. Nell'app Azure AD, per ottenere il client secret, segui questi passaggi:

      1. Vai alla registrazione dell'app Azure AD.

      2. In Certificati e segreti, fai clic sulla scheda Client secret.

      3. Per aggiungere un client secret, fai clic su + Nuovo client secret.

      4. Nella finestra di dialogo Aggiungi un client secret, inserisci le informazioni necessarie.

      5. Per creare il client secret, fai clic su Aggiungi.

      6. Nella scheda Client secret, individua il nuovo client secret.

      7. Nella colonna Valore del nuovo client secret, fai clic su Copia.

    2. Nella console Google Cloud, per creare un provider OIDC che utilizza il flusso di codice:

      gcloud iam workforce-pools providers create-oidc 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" \ --location=global

      Sostituisci quanto segue:

      • PROVIDER_ID: un ID provider univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool o provider.
      • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui connettere l'IdP.
      • DISPLAY_NAME: un nome visualizzato facoltativo e facile da usare per il fornitore, ad esempio idp-eu-employees.
      • DESCRIPTION: una descrizione facoltativa del fornitore di forza lavoro, 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 presso il tuo IdP OIDC; l'ID deve corrispondere alla dichiarazione aud del JWT emesso dall'IdP.
      • OIDC_CLIENT_SECRET: il client secret OIDC.
      • WEB_SSO_ADDITIONAL_SCOPES: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per la console (federato) o per l'accesso basato su browser con gcloud CLI.
      • ATTRIBUTE_MAPPING: una mappatura degli attributi, ad esempio:
        google.subject=assertion.sub,
        google.groups=assertion.group1,
        attribute.costcenter=assertion.costcenter
        In questo esempio gli attributi IdP subject, assertion.group1 e costcenter nell'asserzione OIDC vengono mappati rispettivamente agli attributi google.subject, google.groups e attribute.costcenter.
      • ATTRIBUTE_CONDITION: una condizione dell'attributo. Ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.ipaddr.startsWith('98.11.12.').
      • JWK_JSON_PATH: un percorso facoltativo di JWK OIDC caricati localmente. Se questo parametro non è specificato, Google Cloud utilizza il percorso "/.well-known/openid-configuration" dell'IdP per eseguire il sourcing dei JWK contenenti le chiavi pubbliche. Per saperne di più sui JWK OIDC caricati localmente, consulta l'articolo su come gestire i JWK OIDC.
      Nella risposta del 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 utilizzi il flusso implicito per l'accesso web, segui questi passaggi:

    1. Per abilitare il token ID nell'app Azure AD:

      1. Vai alla registrazione dell'app Azure AD.
      2. In Autenticazione, seleziona la casella di controllo Token ID.
      3. Fai clic su Salva.
    2. Per creare il provider, esegui questo comando:

      gcloud iam workforce-pools providers create-oidc 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" \
          --location=global
      

      Sostituisci quanto segue:

      • PROVIDER_ID: un ID provider univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool o provider.
      • WORKFORCE_POOL_ID: l'ID del pool di identità della forza lavoro a cui connettere l'IdP.
      • DISPLAY_NAME: un nome visualizzato facoltativo e facile da usare per il fornitore, ad esempio idp-eu-employees.
      • DESCRIPTION: una descrizione facoltativa del fornitore di forza lavoro, 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 presso il tuo IdP OIDC; l'ID deve corrispondere alla dichiarazione aud del JWT emesso dall'IdP.
      • WEB_SSO_ADDITIONAL_SCOPES: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per la console (federato) o per l'accesso basato su browser con gcloud CLI.
      • ATTRIBUTE_MAPPING: una mappatura degli attributi, ad esempio:
        google.subject=assertion.sub,
        google.groups=assertion.group1,
        attribute.costcenter=assertion.costcenter
        In questo esempio gli attributi IdP subject, assertion.group1 e costcenter nell'asserzione OIDC vengono mappati rispettivamente agli attributi google.subject, google.groups e attribute.costcenter.
      • ATTRIBUTE_CONDITION: una condizione dell'attributo. Ad esempio, per limitare l'attributo ipaddr a un determinato intervallo IP, puoi impostare la condizione assertion.ipaddr.startsWith('98.11.12.').
      • JWK_JSON_PATH: un percorso facoltativo di JWK OIDC caricati localmente. Se questo parametro non è specificato, Google Cloud utilizza il percorso "/.well-known/openid-configuration" dell'IdP per eseguire il sourcing dei JWK contenenti le chiavi pubbliche. Per saperne di più sui JWK OIDC caricati localmente, consulta l'articolo su come gestire i JWK OIDC.
      Nella risposta del comando, POOL_RESOURCE_NAME è il nome del pool; ad esempio, locations/global/workforcePools/enterprise-example-organization-employees.

Crea un provider del pool di forza lavoro SAML

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

  2. Imposta il segmento di pubblico per le asserzioni SAML. In genere è 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/PROVIDER_ID
    
  3. Se prevedi di configurare l'accesso degli utenti alla console, nell'IdP SAML imposta il campo URL di reindirizzamento o URL ACS (Assertion Consumer Service) sul seguente URL:

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

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

  4. In Google Cloud, crea un provider di pool di identità per la forza lavoro SAML utilizzando il documento di metadati SAML dell'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 l'IdP.
    • Almeno una chiave pubblica di firma. Consulta la sezione Requisiti chiave più avanti in questa guida per maggiori dettagli sulle chiavi di firma.

Console

Per configurare il provider SAML utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Pool di identità per la 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 fornitore.

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

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

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

    5. Fai clic su Continua.

  6. In Configura il provider, segui questi passaggi:

    1. In Mappatura 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]
      In questo esempio gli attributi IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] vengono mappati rispettivamente agli attributi google.subject, google.groups e google.costcenter di Google Cloud.

    3. (Facoltativo) Per aggiungere una condizione dell'attributo, fai clic su Aggiungi condizione e inserisci un'espressione CEL che rappresenti 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 fornitore di forza lavoro.

    4. Fai clic su Continua.

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

gcloud

Per salvare i metadati SAML per l'app Azure AD:

  1. Vai all'app Azure AD.
  2. Fai clic su Single sign-on.
  3. Nella sezione Certificati SAML, scarica il file XML dei metadati della federazione.
  4. Salva i metadati come file XML locale.

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

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

Sostituisci quanto segue:

  • PROVIDER_ID: l'ID provider.
  • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro.
  • DISPLAY_NAME: il nome visualizzato.
  • DESCRIPTION: una descrizione.
  • XML_METADATA_PATH: il percorso del file di metadati in formato XML con i metadati di configurazione per il provider di identità 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]
    In questo esempio gli attributi IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] vengono mappati rispettivamente agli attributi google.subject, google.groups e google.costcenter di Google Cloud.

  • ATTRIBUTE_CONDITION: una condizione dell'attributo facoltativa. 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 fornitore di forza lavoro.

(Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP

Per consentire all'IdP SAML 2.0 di produrre asserzioni SAML criptate che possono essere accettate dalla federazione delle identità per la forza lavoro:

  • Nella federazione delle identità per la forza lavoro, segui questi passaggi:
    • Crea una coppia di chiavi asimmetriche per il provider del pool di identità della 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 causa.
  • Nell'IdP, segui questi passaggi:
    • Consente di attivare 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.
    • Verifica che l'IdP generi asserzioni SAML criptate.
Tieni presente che, anche se sono configurate le chiavi del provider di crittografia SAML, la federazione delle identità per la forza lavoro può comunque elaborare un'asserzione in testo non crittografato.

Crea chiavi di crittografia delle asserzioni SAML della federazione delle identità per la forza lavoro

Questa sezione illustra la 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 problematiche dall'IdP. Per creare una coppia di chiavi asimmetriche da utilizzare con la crittografia SAML, esegui questo comando. Per scoprire di più, vedi Algoritmi di crittografia SAML supportati.

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

Sostituisci quanto segue:

  • KEY_ID: un nome chiave a tua scelta
  • WORKFORCE_POOL_ID: l'ID pool
  • PROVIDER_ID: l'ID provider
  • KEY_SPECIFICATION: la specifica della chiave, che può essere rsa-2048, rsa-3072 e rsa-4096.

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

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider 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
  • PROVIDER_ID: l'ID provider
  • CERTIFICATE_PATH: il percorso in cui scrivere il certificato, ad esempio saml-certificate.cer o saml-certificate.pem

Configura il tuo IdP conforme a SAML 2.0 per emettere asserzioni SAML criptate

Per configurare Azure AD per criptare i token SAML, consulta Configurare la crittografia dei token SAML di Azure Active Directory.

Dopo aver configurato l'IdP per criptare le asserzioni SAML, ti consigliamo di assicurarti che le asserzioni che genera siano effettivamente criptate. Anche se è configurata la crittografia delle asserzioni SAML, la federazione delle identità per la forza lavoro può ancora elaborare le asserzioni in testo non crittografato.

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 PROVIDER_ID \
      --location global

Sostituisci quanto segue:

  • KEY_ID: il nome della chiave
  • WORKFORCE_POOL_ID: l'ID pool
  • PROVIDER_ID: l'ID provider

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:

Gestione dell'accesso alle risorse Google Cloud

Questa sezione fornisce un esempio che mostra come gestire l'accesso alle risorse Google Cloud da parte degli utenti della federazione delle identità per la forza lavoro.

In questo esempio, concedi un ruolo Identity and Access Management (IAM) per un progetto di esempio. Gli utenti possono quindi accedere e utilizzare questo progetto per accedere ai prodotti Google Cloud.

Puoi gestire i ruoli IAM per identità singole, un gruppo di identità o un intero pool. Per maggiori informazioni, consulta Rappresentare gli utenti del pool di identità della forza lavoro nei criteri IAM.

Per singola identità

Per concedere il ruolo Amministratore Storage (roles/storage.admin) a una singola identità per il progetto TEST_PROJECT_ID, esegui questo comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"

Sostituisci quanto segue:

  • TEST_PROJECT_ID: ID del progetto
  • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro
  • SUBJECT_VALUE: identità utente

Utilizzo dell'attributo di reparto mappato

Per concedere il ruolo Amministratore Storage (roles/storage.admin) a tutte le identità all'interno di un reparto specifico per il progetto TEST_PROJECT_ID, esegui questo comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"

Sostituisci quanto segue:

  • TEST_PROJECT_ID: ID del progetto
  • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro
  • DEPARTMENT_VALUE: il valore attribute.department mappato

Utilizzo dei gruppi mappati

Per concedere il ruolo Amministratore Storage (roles/storage.admin) a tutte le identità all'interno del gruppo GROUP_ID per il progetto TEST_PROJECT_ID, esegui questo comando:

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

Sostituisci quanto segue:

  • TEST_PROJECT_ID: ID del progetto
  • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro
  • GROUP_ID: un gruppo nella rivendicazione google.groups mappata.

Accedi e verifica l'accesso

In questa sezione, accederai come utente del pool di identità della forza lavoro e verificherai di avere accesso a un prodotto Google Cloud.

Accedi

Questa sezione mostra come accedere come utente federato e accedere alle risorse di Google Cloud.

accesso alla console (federato)

Per accedere alla console della federazione delle identità per la forza lavoro di Google Cloud, nota anche come console (federata):

  1. Vai alla pagina di accesso della console (federata).

    Vai alla console (federato)

  2. Inserisci il nome del provider, che avrà il seguente formato:
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    1. Inserisci le credenziali utente in Azure AD, se richiesto.

Accesso basato su browser gcloud CLI

Per accedere a gcloud CLI utilizzando un flusso di accesso basato su browser, segui questi passaggi:

Creare un file di configurazione

Per creare il file di configurazione di accesso, esegui questo comando. Facoltativamente, puoi attivare il file come predefinito per gcloud CLI utilizzando il flag --activate.

gcloud iam workforce-pools create-login-config \
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
    --output-file=LOGIN_CONFIG_FILE

Sostituisci quanto segue:

  • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro
  • PROVIDER_ID: l'ID provider
  • LOGIN_CONFIG_FILE: un percorso al file di configurazione da te specificato, ad esempio login.json

Il file contiene gli endpoint utilizzati da gcloud CLI per abilitare il flusso di autenticazione basato su browser e impostare il pubblico sul provider che hai creato in precedenza in questa guida. Il file non contiene informazioni riservate.

L'output è simile al seguente:

{
  "type": "external_account_authorized_user_login_config",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
  "auth_url": "https://auth.cloud.google/authorize",
  "token_url": "https://sts.googleapis.com/v1/oauthtoken",
  "token_info_url": "https://sts.googleapis.com/v1/introspect",
}

Accedere con l'autenticazione basata sul browser

Per eseguire l'autenticazione mediante l'autenticazione dell'accesso basata sul browser, puoi utilizzare uno dei seguenti metodi:

  • Se hai utilizzato il flag --activate quando hai creato il file di configurazione o se hai attivato il file di configurazione con gcloud config set auth/LOGIN_CONFIG_FILE, gcloud CLI utilizza automaticamente il file di configurazione:

    gcloud auth login
    
  • Per accedere specificando la posizione del file di configurazione, esegui questo comando:

    gcloud auth login --login-config=LOGIN_CONFIG_FILE
    
  • Per utilizzare una variabile di ambiente per specificare la posizione del file di configurazione, imposta CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sul percorso di configurazione.

Disattivare l'accesso basato su browser

Per non utilizzare più il file di configurazione dell'accesso:

  • Se hai utilizzato il flag --activate quando hai creato il file di configurazione o hai attivato il file di configurazione con gcloud config set auth/LOGIN_CONFIG_FILE, devi eseguire questo comando per annullarne l'impostazione:

    gcloud config unset auth/login_config_file
    
  • Cancella la variabile di ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, se impostata.

Accesso headless gcloud CLI

Per accedere ad Azure AD con gcloud CLI, segui questi passaggi:

OIDC

  1. Segui i passaggi descritti in Inviare la richiesta di accesso. Firma l'utente nell'app con Azure AD utilizzando OIDC.

  2. Copia il token ID dal parametro id_token dell'URL di reindirizzamento e salvalo in un file in una posizione sicura sulla macchina locale. In un passaggio successivo, imposterai PATH_TO_OIDC_ID_TOKEN sul percorso di questo file.

  3. Genera un file di servizio di configurazione simile a quello riportato di seguito eseguendo questo comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:id_token \
        --credential-source-file=PATH_TO_OIDC_ID_TOKEN \
        --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
        --output-file=config.json
    

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro.
    • PROVIDER_ID: l'ID provider.
    • PATH_TO_OIDC_ID_TOKEN: il percorso della posizione del file in cui è archiviato il token IdP.
    • WORKFORCE_POOL_USER_PROJECT: il numero o l'ID del progetto utilizzato per la quota e la fatturazione. L'entità deve avere l'autorizzazione serviceusage.services.use in questo progetto.

    Al completamento del comando, Azure AD crea il seguente file di configurazione:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
      "token_url": "https://sts.googleapis.com/v1/token",
      "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
      "credential_source": {
        "file": "PATH_TO_OIDC_CREDENTIALS"
      }
    }
    
  4. Apri gcloud CLI ed esegui questo comando:

    gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALS
    

    Sostituisci PATH_TO_OIDC_CREDENTIALS con il percorso del file di output di un passaggio precedente.

    gcloud CLI pubblica in modo trasparente le tue credenziali nell'endpoint di Security Token Service. Nell'endpoint, viene scambiato con token di accesso temporanei a Google Cloud.

    Ora puoi eseguire i comandi gcloud CLI su Google Cloud.

SAML

  1. Accedi a un utente all'app Azure AD e ottieni la risposta SAML.

  2. Salva la risposta SAML restituita da Azure AD in una posizione sicura sulla tua macchina locale, quindi archivia il percorso come segue:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Genera un file di configurazione come indicato di seguito. Esegui questo comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
        --credential-source-file=SAML_ASSERTION_PATH  \
        --workforce-pool-user-project=PROJECT_ID  \
        --output-file=config.json
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: l'ID provider del pool di identità della forza lavoro che hai creato in precedenza in questa guida
    • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro che hai creato in precedenza in questa guida
    • SAML_ASSERTION_PATH: il percorso del file assertion SAML
    • PROJECT_ID: l'ID progetto

    Il file di configurazione generato è simile al seguente:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    
  4. Per accedere a gcloud utilizzando token Exchange, esegui questo comando:

    gcloud auth login --cred-file=config.json
    

    gcloud scambia quindi in modo trasparente le credenziali Azure AD con i token di accesso temporanei a Google Cloud, consentendoti di effettuare altre chiamate gcloud a Google Cloud.

    Vedrai un output simile al seguente:

    Authenticated with external account user credentials for:
    [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].
  5. Per visualizzare l'elenco degli account con credenziali e dell'account attualmente attivo, esegui questo comando:

    gcloud auth list
    

Verifica accesso

Ora hai accesso ai servizi Google Cloud che supportano la federazione delle identità per la forza lavoro e a cui hai accesso. Precedentemente in questa guida hai concesso il ruolo Amministratore Storage a tutte le identità all'interno di un reparto specifico per il progetto TEST_PROJECT_ID. Ora puoi verificare di avere accesso elencando i bucket Cloud Storage.

console (federata)

Ora puoi eseguire i comandi gcloud CLI su Google Cloud.

  • Vai alla pagina di Cloud Storage.
  • Verifica di poter visualizzare l'elenco dei bucket esistenti per TEST_PROJECT_ID.

Interfaccia a riga di comando gcloud

  • Per elencare i bucket e gli oggetti di Cloud Storage per il progetto a cui hai accesso, esegui questo comando:

     gcloud alpha storage ls --project="TEST_PROJECT_ID"
    

    L'entità deve avere l'autorizzazione serviceusage.services.use nel progetto specificato.

Eliminare utenti

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

Potresti notare che le risorse continuano a essere associate a un utente che è stato eliminato. Il motivo è che l'eliminazione di metadati e risorse utente richiede un'operazione a lunga esecuzione. Dopo aver avviato l'eliminazione dell'identità di un utente, i processi avviati dall'utente prima dell'eliminazione possono continuare fino al completamento o all'annullamento.

Passaggi successivi