Configurare la federazione delle identità della forza lavoro con Okta e far accedere gli utenti

Questa guida illustra come configurare la federazione delle identità per la forza lavoro utilizzando Okta in qualità di provider di identità (IdP), gestire l'accesso e far accedere gli utenti 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. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Per l'accesso, l'IdP deve fornire le informazioni di autenticazione firmata: Gli IdP OIDC devono fornire un JWT e le risposte agli IdP SAML devono essere firmate.

  4. Per ricevere informazioni importanti su cambiamenti della tua organizzazione o Per i prodotti Google Cloud, devi fornire i contatti necessari. Per ulteriori informazioni, consulta la panoramica della 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 Workload Identity (roles/iam.workforcePoolAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

In alternativa, il ruolo di base Proprietario IAM (roles/owner) include anche le autorizzazioni per configurare la federazione delle identità per la forza lavoro. Non dovresti concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o di 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à del personale:

    Vai ai pool di identità della forza lavoro

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

    1. Nel campo Nome, inserisci il nome visualizzato del pool. L'ID pool viene ricavato automaticamente dal nome durante la digitazione e visualizzato nel 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. La durata della sessione è impostata per impostazione predefinita. Per inserire una durata personalizzata della sessione, fai clic su Modifica. La durata della sessione determina la durata di validità dei token di accesso di Google Cloud, delle sessioni di accesso alla console (federata) e delle sessioni di accesso a gcloud CLI di questo pool di personale. La durata deve essere superiore a 15 minuti (900 s) e meno di 12 ore (43.200 s). Se la durata della sessione non è impostata, viene applicata per impostazione predefinita una durata di un'ora (3600 secondi).

    4. Per creare il pool in stato Attivato, assicurati che Il pool abilitato è attivo.

    5. Per creare il pool di identità del personale, fai clic su Avanti.

gcloud

Per creare il pool di identità del personale, esegui il seguente 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 di rappresentare del tuo 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 numerico della tua organizzazione Google Cloud.
  • DISPLAY_NAME: facoltativo. Un nome visualizzato per di identità per la forza lavoro.
  • DESCRIPTION: facoltativo. Una descrizione del pool di identità della forza lavoro.
  • SESSION_DURATION: facoltativo. Durata della sessione, che determina per quanto tempo Google Cloud token di accesso, console (federata) sessioni di accesso e le sessioni di accesso gcloud CLI pool di forza lavoro sono validi. La durata deve essere superiore a 15 minuti (900 secondi) e inferiore a 12 ore (43200 secondi). Se la durata della sessione non è impostata, viene applicata per impostazione predefinita una durata di un'ora (3600 secondi).

Crea un'integrazione dell'app Okta

Questa sezione illustra i passaggi per creare un'integrazione dell'app Okta utilizzando la Console di amministrazione Okta. Per maggiori dettagli, vedi Creare integrazioni di app personalizzate.

I pool della forza lavoro supportano la federazione utilizzando i protocolli OIDC e SAML.

Per ulteriori dettagli, consulta la guida all'integrazione di OIDC e SAML di Okta. In questa sezione viene descritta la configurazione di base.

OIDC

Per creare un'integrazione dell'app Okta che utilizza il protocollo OIDC, esegui la seguenti passaggi:

  1. Accedi alla Console di amministrazione di Okta.
  2. Vai ad Applications (Applicazioni) > Applications (Applicazioni).
  3. Per iniziare a configurare l'integrazione delle app:

    1. Fai clic su Create App Integration (Crea integrazione app).
    2. In Metodo di accesso, seleziona OIDC - OpenID Connect.
    3. In Tipo di applicazione, seleziona un tipo di applicazione. ad esempio Web Application.
    4. Per creare l'app, fai clic su Avanti.
    5. In Nome integrazione app, inserisci un nome per l'app.
    6. Nella sezione Tipo di concessione, seleziona la casella di controllo Implicita (ibrida).
    7. Nella sezione URI di reindirizzamento all'accesso, inserisci un URL di reindirizzamento nel campo di testo. Gli utenti vengono reindirizzati a questo URL dopo aver eseguito correttamente 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 della forza lavoro creato in precedenza in questa guida.
      • WORKFORCE_PROVIDER_ID: un ID fornitore di identità della forza lavoro di tua scelta; ad esempio: okta-oidc-provider. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca. nella documentazione dell'API.
    8. Seleziona la casella di controllo Ignora assegnazione gruppo per ora.

    9. Per salvare l'integrazione dell'app, fai clic su Salva.

  4. Assegnare un'integrazione dell'app a un utente.

  5. (Facoltativo) Per aggiungere attributi personalizzati per un profilo utente Okta:

    1. In Tipo di dati, seleziona string.
    2. In Nome visualizzato, inserisci Department.
    3. In Nome variabile, inserisci department.
    4. Per salvare la mappatura, fai clic su Salva.

    Per scoprire di più sull'aggiunta di attributi personalizzati, consulta Aggiungere attributi personalizzati a un profilo utente Okta.

  6. (Facoltativo) Per creare mappature per gli attributi inviati nel file OIDC in Directory, fai clic su Editor profilo e segui questi passaggi:

    1. Trova l'applicazione OIDC che hai creato in precedenza in questa guida.
    2. Fai clic su Mappature.
    3. Seleziona la scheda Okta User to App.
    4. Nella scheda Profilo utente Okta, in una casella combinata disponibile, inserisci department. Okta esegue automaticamente il completamento in user.department.
    5. Per salvare le mappature, fai clic su Salva mappature. Per ulteriori dettagli, consulta in Aggiungi mappatura attributi.

    Per scoprire di più sulle mappature, consulta l'articolo Mappare gli attributi Okta agli attributi dell'app nell'editor del profilo.

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

    1. Se utilizzi un Org Authorization Server, segui questi passaggi:
      1. Vai ad Applications (Applicazioni) > Applications (Applicazioni).
      2. Seleziona l'applicazione client OpenID Connect che hai creato in precedenza. in questa sezione.
      3. Vai alla scheda Sign On (Accesso).
      4. Nella sezione OpenID Connect ID Token (Token ID OpenID Connect), fai clic su Modifica.
      5. Nella sezione Tipo di rivendicazione dei gruppi, puoi selezionare una delle seguenti opzioni:
        • Seleziona Espressione.
        • Seleziona Corrisponde all'espressione regolare e inserisci .*.
      6. Per salvare l'attestazione dei gruppi, fai clic su Salva.
      7. Quando creerai il provider del pool di identità per la forza lavoro più avanti guida, aggiungi groups come ambito aggiuntivo per richiedere i gruppi richiesta da Okta per il Single Sign-On web. Questo passaggio è obbligatorio se utilizzi la console (federata) o gcloud CLI flusso di accesso basato su browser.
    2. Se utilizzi un server di autorizzazione personalizzato:
      1. Nella Console di amministrazione, seleziona API dal menu Sicurezza.
      2. Seleziona il server di autorizzazione personalizzato che vuoi configurare.
      3. Vai alla scheda Rivendicazioni e fai clic su Aggiungi rivendicazione.
      4. Inserisci un nome per la rivendicazione. Per questo esempio, assegna il nome groups.
      5. Nella richiesta, in Includi nel tipo di token, seleziona Token ID e seleziona Sempre.
      6. Seleziona Gruppi come Tipo di valore.
      7. Nella casella del menu a discesa Filtro, seleziona Corrisponde all'espressione regolare e inserisci la seguente espressione come Valore: .*
      8. Fai clic su Crea.

Per ulteriori dettagli sulle rivendicazioni dei gruppi, vedi Aggiungere una rivendicazione di gruppi.

SAML

Per creare un'integrazione dell'app Okta che utilizzi il protocollo SAML, esegui la seguenti passaggi:

  1. Accedi alla Console di amministrazione di Okta.
  2. Vai ad Applicazioni > Applicazioni.
  3. Fai clic su Create App Integration (Crea integrazione app).
  4. In Metodo di accesso, seleziona SAML 2.0 e fai clic su Avanti.
  5. Inserisci un nome per l'app e fai clic su Avanti per passare alle opzioni di Configura SAML.
  6. In URL Single Sign-On, inserisci un URL di reindirizzamento. Questo è l'URL a cui vengono indirizzati gli utenti ti reindirizzerà dopo che avranno eseguito l'accesso. Se stai configurando l'accesso alla console, usa il seguente formato di URL.

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

  7. Inserisci l'URI pubblico (SP Entity ID). L'ID è formattato come segue:

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'ID del pool di forza lavoro che hai creato in precedenza in questa guida.
    • WORKFORCE_PROVIDER_ID: un'identità della forza lavoro ID provider di tua scelta; ad esempio: okta-saml-provider

    Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca. nella documentazione dell'API.

  8. (Facoltativo) Utilizza le Dichiarazioni degli attributi per specificare gli attributi personalizzati che inviare l'asserzione SAML. Dopo la configurazione, questi attributi possono essere utilizzati in Google Cloud per creare criteri di gestione dell'accesso o in attribute_condition. Ad esempio, in questa guida mappi il reparto come segue:

    Nome Valore
    department user.department

    (Facoltativo) Per aggiungere l'affermazione sui gruppi, utilizzata più avanti in questa guida, consulta Come trasmettere l'appartenenza a un gruppo di un utente in un'affermazione SAML.

  9. Completa la creazione dell'integrazione dell'app Okta.

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

Questa sezione descrive come creare un provider del pool di identità di 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 provider di pool di identità di forza lavoro per l'integrazione dell'app Okta utilizzando il protocollo OIDC, segui questi passaggi:

  1. Per ottenere l'ID client per l'integrazione dell'app Okta:

    1. Vai all'integrazione dell'app Okta.
    2. Fai clic sulla scheda Generale.
    3. Copia i contenuti del campo Client ID (ID client).
  2. Per creare un provider di pool di identità per la forza lavoro OIDC per l'accesso basato sul web, procedi nel seguente modo:

    Console

    Flusso codice

    1. In Okta:

      1. In Autenticazione client, seleziona Client secret.

      2. Nella tabella Client secret, individua il secret e fai clic su Copia.

    2. Nella console Google Cloud, per creare un provider OIDC che use il flusso di codice di autorizzazione, procedi nel seguente modo:

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

        Vai ai 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 Fornitori, fai clic su Aggiungi fornitore.

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

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

        1. In Nome, inserisci un nome per il provider.
        2. In Issuer (URL) (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 al claim aud del JWT emesso dal tuo IdP.
        4. Per creare un fornitore abilitato, assicurati che l'opzione Fornitore abilitato sia attivata.
        5. Fai clic su Continua.
      6. In Tipo di risposta, procedi nel seguente modo. Viene utilizzato il tipo di risposta 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 rivendicazioni per affermazioni, 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 dell'attributo. Per creare una mappatura degli attributi: Puoi fornire il nome del campo dell'IDP o un'espressione in formato CEL che restituisce una stringa.

        1. Obbligatorio: in OIDC 1, inserisci il soggetto dell'IdP, ad esempio assertion.sub.

        2. (Facoltativo) Per aggiungere altre mappature degli attributi, procedi nel seguente modo:

          1. Fai clic su Aggiungi mappatura.
          2. In Google n, dove n è un numero, inserisci uno tra le 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 nel formato CEL; ad esempio assertion.subject.endsWith('@example.com') quando il valore di subject mappato in precedenza contiene un indirizzo email che termina con @example.com.
      8. Per creare il provider, fai clic su Invia.

    Flusso implicito

    1. Nella console Google Cloud, esegui le seguenti:

      1. Nella console Google Cloud, vai alla pagina Pool di identità del personale:

        Vai a Pool di identità della forza lavoro

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

      3. Nella tabella Fornitori, fai clic su Aggiungi fornitore.

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

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

        1. In Nome, inserisci un nome per il provider.
        2. In Issuer (URL) (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 al claim aud del JWT emesso dal tuo IdP.
        4. Per creare un fornitore abilitato, assicurati che l'opzione Fornitore 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 di 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 dell'attributo. Per creare una mappatura degli attributi: procedi nel seguente modo. Puoi fornire il nome del campo dell'IdP o Formato 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, procedi nel seguente modo:

          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 nel formato CEL; ad esempio assertion.subject.endsWith('@example.com') quando il valore di subject mappato in precedenza contiene un indirizzo email che termina con @example.com.

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

    gcloud

    Flusso codice

    In Okta:

    1. In Autenticazione client, seleziona Client secret.

    2. Nella tabella Client secret, individua il secret e fai clic su Copia.

    In Google Cloud, per creare un provider OIDC che utilizzi il flusso di codice di autorizzazione per l'accesso web, esegui il seguente 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" \
    --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 fornitore univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un pool o nell'ID provider.
    • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro a cui connettere l'IdP.
    • DISPLAY_NAME: display facoltativo facile da usare nome del 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 l'IdP OIDC. L'ID deve corrispondere al claim 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 l'accesso alla console (federato) o basato su browser della CLI gcloud; ad esempio, groups per richiedere la rivendicazione dei gruppi da Okta se utilizzi il server di autorizzazione dell'organizzazione di Okta.
    • ATTRIBUTE_MAPPING: una mappatura degli attributi. Di seguito è riportato un esempio di mappatura 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'affermazione OIDC agli attributi google.subject, google.groups e attribute.costcenter, rispettivamente.
    • ATTRIBUTE_CONDITION: una condizione dell'attributo; ad esempio, assertion.subject.endsWith('@example.com') quando il valore di subject mappato in precedenza contiene un indirizzo email che termina con @example.com.
    • JWK_JSON_PATH: un percorso facoltativo dei JWK OIDC caricati localmente. Se questo parametro non viene fornito, Google Cloud utilizza invece il percorso /.well-known/openid-configuration dell'IdP per trovare i JWK contenenti le chiavi pubbliche. Per ulteriori informazioni sui JWK OIDC caricati localmente, vedi Gestire i JWK OIDC.
    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 utilizzi il flusso implicito per l'accesso web, esegui il seguente 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 fornitore univoco. Il prefisso gcp- è riservato e non può essere utilizzato in un pool o nell'ID provider.
    • WORKFORCE_POOL_ID: l'ID pool di identità della forza lavoro a cui connettere l'IdP.
    • DISPLAY_NAME: display facoltativo facile da usare nome del 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 l'IdP OIDC. L'ID deve corrispondere al claim aud del JWT emesso dall'IdP.
    • WEB_SSO_ADDITIONAL_SCOPES: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per l'accesso alla console (federato) o basato su browser della CLI gcloud; ad esempio, groups per richiedere la rivendicazione dei gruppi da Okta se utilizzi il server di autorizzazione dell'organizzazione di Okta.
    • ATTRIBUTE_MAPPING: una mappatura degli attributi. Di seguito è riportato un esempio di mappatura degli attributi:
      google.subject=assertion.sub,
      google.groups=assertion.group1,
      attribute.costcenter=assertion.costcenter
      Questo esempio mappa gli attributi IdP subject, group1 e costcenter nel file OIDC asserzione per google.subject, google.groups, e attribute.costcenter.
    • ATTRIBUTE_CONDITION: una condizione dell'attributo; ad esempio, assertion.subject.endsWith('@example.com') quando il valore di subject mappato in precedenza contiene un indirizzo email che termina con @example.com.
    • JWK_JSON_PATH: un percorso facoltativo dei JWK OIDC caricati localmente. Se questo parametro non viene fornito, Google Cloud utilizza il percorso /.well-known/openid-configuration del tuo IdP per recuperare le JWK contenenti le chiavi pubbliche. Per saperne di più sui JWK OIDC caricati localmente, vedi Gestire i JWK OIDC.
    Nella risposta al comando, POOL_RESOURCE_NAME è il nome del pool, ad esempio locations/global/workforcePools/enterprise-example-organization-employees.

Crea un provider di pool di forza lavoro SAML

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

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

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
    
  3. Se prevedi di configurare l'accesso utente alla console, nell'IdP SAML imposta il campo URL di reindirizzamento o URL Assertion Consumer Service (ACS) sul seguente URL:

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

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

  4. In Google Cloud, crea un provider del pool di identità di 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 l'IdP.
    • Almeno una chiave pubblica di firma. Vedi i 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 ai pool di identità della forza lavoro

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

  3. Nella tabella Fornitori, fai clic su Aggiungi fornitore.

  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 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 attivata.

    5. Fai clic su Continua.

  6. In Configura 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]
      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 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 personale.

    4. Fai clic su Continua.

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

gcloud

Per creare un provider di pool di identità di forza lavoro per l'integrazione dell'app Okta utilizzando il protocollo SAML, segui questi passaggi:

  1. Per salvare i metadati SAML per la tua app Okta, segui questi passaggi:

    1. Vai all'app Okta.
    2. Fai clic sulla scheda Sign On (Accesso).
    3. Nella sezione Certificati di firma SAML, fai clic su Azioni > Visualizza metadati IdP per il certificato attivo.
    4. Nella nuova pagina visualizzata, copia i metadati XML.
    5. Salva i metadati come file XML locale.
  2. Per creare un provider forza lavoro per l'app Okta, esegui questo comando :

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
        --workforce-pool="WORKFORCE_POOL_ID" \
        --attribute-mapping="ATTRIBUTE_MAPPING" \
        --attribute-condition="ATTRIBUTE_CONDITION" \
        --idp-metadata-path="XML_METADATA_PATH" \
        --location="global"
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: l'ID provider della forza lavoro creato in precedenza in questa guida.
    • WORKFORCE_POOL_ID: l'ID pool di forza lavoro che create in precedenza in questa guida.
    • ATTRIBUTE_MAPPING: una 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 vengono mappati gli attributi IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] a Google Cloud attributi google.subject, google.groups, e google.costcenter, rispettivamente.

    • 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 provider di forza lavoro.

    • XML_METADATA_PATH: il percorso del file di metadati in formato XML per l'app Okta che hai creato in precedenza in questa guida.

    Il prefisso gcp- è riservato e non può essere utilizzato in un ID pool o provider.

    (Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP

    Abilitare l'IdP SAML 2.0 per produrre dati SAML criptati che possono essere accettate dalla federazione delle identità per la forza lavoro, segui questi passaggi:

    • Nella federazione delle identità della forza lavoro, svolgi i seguenti passaggi:
      • Crea una coppia di chiavi asimmetriche per il provider del pool di identità per la forza lavoro.
      • Scarica un file del certificato contenente la chiave pubblica.
      • Configura l'IdP SAML in modo che utilizzi la chiave pubblica per criptare le asserzioni SAML che emette.
    • Nell'IdP:
      • Abilita la crittografia delle asserzioni, nota anche come crittografia dei token.
      • Carica la chiave pubblica che hai creato nella federazione delle identità della forza lavoro.
      • Verifica che l'IdP generi 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'affermazione in chiaro.

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

    Questa sezione illustra la creazione di una coppia di chiavi asimmetrica che consente della federazione delle identità della forza lavoro per accettare le asserzioni SAML criptate.

    Google Cloud utilizza la chiave privata per decriptare le asserzioni SAML emesse dall'IdP. Per creare una coppia di chiavi asimmetriche da utilizzare con la crittografia SAML, esegui questo 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 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
    • 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, scarica la chiave pubblica in un certificato esegui questo comando. Solo la federazione delle identità per la forza lavoro ha 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: 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

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

    Per configurare Okta in modo che cripti le asserzioni SAML:

    • Vai alla dashboard Okta ed esegui l'accesso.
    • Vai ad Applications (Applicazioni)>Applications (Applicazioni).
    • Fai clic sulla tua app.
    • Nella scheda Generale, nella sezione Impostazioni SAML, fai clic su Modifica.
    • Fai clic su Next (Avanti) per visualizzare le impostazioni SAML.
    • Fai clic su Mostra impostazioni avanzate.
    • In SAML Settings (Impostazioni SAML), segui questi passaggi:
      • In Risposta (opzione preferita) o Firma asserzione, seleziona Signed.
      • In Algoritmo di firma e Algoritmo digest, seleziona un'opzione qualsiasi.
      • Imposta i seguenti valori:
        • Assertion Encryption (Crittografia delle asserzioni): criptata.
        • Algoritmo di crittografia: qualsiasi algoritmo di tua scelta,
        • Encryption Certificate (Certificato di crittografia): carica il file del certificato generato in precedenza in questa guida.
    • Per salvare la configurazione, fai clic su Avanti e poi su Fine.

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

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

    Per eliminare le chiavi di crittografia SAML, esegui il seguente 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: 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:

Gestire l'accesso alle risorse Google Cloud

Questa sezione fornisce un esempio che mostra come gestire l'accesso alle risorse Google Cloud da parte degli utenti di Workforce Identity Federation.

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

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

Per identità singola

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: l'ID del progetto
  • WORKFORCE_POOL_ID: ID pool di identità della forza lavoro
  • SUBJECT_VALUE: l'identità utente

Utilizzo dell'attributo 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 il seguente 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 forza lavoro
  • DEPARTMENT_VALUE: il valore attribute.department mappato

Utilizzare i gruppi mappati

Per concedere il ruolo Amministratore Storage (roles/storage.admin) a tutte le identità all'interno di un gruppo specifico per il progetto TEST_PROJECT_ID, esegui il seguente 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 del pool di forza lavoro
  • GROUP_ID: un gruppo nella zona Rivendicazione di google.groups.

Accedi e testa l'accesso

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

Accedi

Questa sezione mostra come accedere come utente federato e come eseguire l'accesso dell'accesso a specifiche risorse Google Cloud.

Accesso alla console (federato)

Per accedere alla console Google Cloud Workforce Identity Federation, nota anche come console (in federazione), segui questi passaggi:

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

    Vai alla console (federata)

  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 nell'integrazione dell'app Okta, se richiesto.

    Se avvii un accesso avviato dall'IdP, utilizza il seguente URL in Impostazioni SAML per il parametro nidificato RelayState predefinito: https://console.cloud.google/.

Accesso basato su browser gcloud CLI

Per accedere a gcloud CLI utilizzando un flusso di accesso basato su browser, esegui la seguenti:

Creare un file di configurazione

Per creare il file di configurazione di accesso, esegui il seguente comando. Se vuoi, puoi attivare il file come predefinito per gcloud CLI mediante 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 pool di forza lavoro
  • PROVIDER_ID: l'ID provider
  • LOGIN_CONFIG_FILE: un percorso alla configurazione il file specificato, ad esempio login.json

Il file contiene gli endpoint utilizzati da gcloud CLI per attivare il flusso di autenticazione basato su browser e impostare il pubblico sul 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 utilizzando l'autenticazione basata sul browser

Per eseguire l'autenticazione con l'autenticazione dell'accesso basata su browser, puoi utilizzare una delle seguenti opzioni metodo:

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

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

    gcloud auth login --login-config=LOGIN_CONFIG_FILE
  • Per utilizzare una variabile di ambiente per specificare la località della configurazione imposta CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sul percorso di configurazione.

Disattivare l'accesso tramite browser

Per interrompere l'utilizzo del file di configurazione dell'accesso:

  • Se hai utilizzato il flag --activate quando hai creato il file di configurazione o se lo hai attivato con gcloud config set auth/LOGIN_CONFIG_FILE, devi eseguire il seguente comando per reimpostarlo:

    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 a gcloud CLI utilizzando un flusso headless:

OIDC

  1. Fai accedere un utente alla tua app Okta e ricevi il token OIDC da Okta.

  2. Salva il token OIDC restituito da Okta in una posizione sicura sul tuo dalla macchina locale.

  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/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 pool di forza lavoro
  • PROVIDER_ID: l'ID provider
  • PATH_TO_OIDC_TOKEN: il percorso del file delle credenziali dell'identità OIDC
  • WORKFORCE_POOL_USER_PROJECT: il numero del progetto associato al progetto utente dei pool di forze lavoro

L'entità deve disporre dell'autorizzazione serviceusage.services.use per questo progetto.

Quando esegui il comando, viene generato un file di configurazione dell'IdP OIDC con un formato simile al seguente:

{
  "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_FILE"
  }
}

SAML

  1. Consentire a un utente di accedere all'app Okta e ricevere la risposta SAML di Okta.

  2. Salva la risposta SAML restituita da Okta in una posizione sicura sul tuo macchina, quindi archivia il percorso come segue:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Per generare un file di configurazione, 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: la forza lavoro fornisce che hai creato in precedenza in questa guida.
    • WORKFORCE_POOL_ID: l'ID pool di forza lavoro creato in precedenza in questa guida.
    • SAML_ASSERTION_PATH: il percorso del file di asserzione SAML.
    • PROJECT_ID: l'ID progetto

    Il file di configurazione generato è simile al seguenti:

    {
      "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"
    }
    

Per accedere a gcloud utilizzando lo scambio di token, esegui il seguente comando:

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

gcloud scambia poi in modo trasparente le tue credenziali Okta con token di accesso temporaneo di Google Cloud, consentendoti di effettuare altre chiamate gcloud a Google Cloud.

Viene visualizzato 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].

Per elencare gli account con credenziali e l'account attualmente attivo, esegui questo comando:

gcloud auth list

Controlla l'accesso

Ora hai accesso ai servizi Google Cloud che supportano Federazione delle identità per la forza lavoro e a cui ti è concesso l'accesso. Precedentemente in guida, hai concesso il ruolo Amministratore Storage (roles/storage.admin) a tutti di identità all'interno di un reparto specifico TEST_PROJECT_ID. Ora puoi verificare di avere accesso elencando i bucket Cloud Storage.

Console (federata)

Per elencare i bucket Cloud Storage utilizzando la console (federata), segui questi passaggi:

  • Vai alla pagina 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 Cloud Storage per il progetto a cui hai accesso, esegui il seguente comando:

gcloud storage ls --project="TEST_PROJECT_ID"

L'entità deve disporre dell'autorizzazione serviceusage.services.use nella progetto specificato.

Eliminare utenti

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

È possibile che le risorse continuino a essere associate a un utente che è stato eliminato. Questo perché l'eliminazione dei metadati e delle risorse utente richiede un'operazione di lunga durata. Dopo aver avviato l'eliminazione dell'identità di un utente, i processi che l'utente, avviato prima dell'eliminazione, può continuare a essere eseguito finché i processi sono stati completati o sono stati annullati.

Passaggi successivi