Questa guida illustra come configurare la federazione delle identità per la forza lavoro utilizzando Okta 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
Devi aver configurato un'organizzazione Google Cloud.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
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.
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:
Nella console Google Cloud, vai alla pagina Pool di identità per la forza lavoro:
Fai clic su Crea pool e segui questi passaggi:
In Nome, inserisci il nome del pool. L'ID pool viene automaticamente derivato dal nome durante la digitazione.
(Facoltativo) Per aggiornare il documento di identità, fai clic su Modifica.
(Facoltativo) In Descrizione, inserisci una descrizione del pool.
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).
Per creare il pool nello stato Attivato, assicurati che il Pool abilitato sia attivato.
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'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, consulta Creare integrazioni di app personalizzate.
I pool di forza lavoro supportano la federazione tramite protocolli OIDC e SAML.
Per ulteriori dettagli, consulta la guida all'integrazione OIDC e SAML di Okta. In questa sezione viene descritta la configurazione di base.
OIDC
Per creare un'integrazione dell'app Okta che utilizzi il protocollo OIDC, segui questi passaggi:
- Accedi alla console di amministrazione Okta.
- Vai ad Applicazioni > Applicazioni.
Per iniziare a configurare l'integrazione dell'app, segui questi passaggi:
- Fai clic su Create App Integration (Crea integrazione app).
- In Metodo di accesso, seleziona OIDC - OpenID Connect.
- In Tipo di applicazione, seleziona un tipo di applicazione, ad esempio Applicazione web.
- Per creare l'app, fai clic su Avanti.
- In Nome integrazione app, inserisci un nome per l'app.
- Nella sezione Tipo di autorizzazione, seleziona la casella di controllo Implicito (ibrido).
Nella sezione URI di reindirizzamento dell'accesso, inserisci nel campo di testo 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 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:okta-oidc-provider
. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca nella documentazione dell'API.
Seleziona la casella di controllo Ignora assegnazione di gruppo per ora.
Per salvare l'integrazione dell'app, fai clic su Salva.
(Facoltativo) Per aggiungere attributi personalizzati per un profilo utente Okta, segui questi passaggi:
- In Tipo di dati, seleziona
string
. - In Nome visualizzato, inserisci
Department
. - In Nome variabile, inserisci
department
. - 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.
- In Tipo di dati, seleziona
(Facoltativo) Per creare mappature per gli attributi inviati nel token OIDC, in Directory, fai clic su Editor profilo e procedi nel seguente modo:
- In questa guida, trova l'applicazione OIDC che hai creato in precedenza.
- Fai clic su Mappature.
- Seleziona la scheda Okta User to App (Utente Okta to App).
- Nella scheda Profilo utente Okta, in una casella combinata disponibile,
inserisci
department
. Okta viene completato automaticamente inuser.department
. - Per salvare le mappature, fai clic su Salva mappature. Per maggiori dettagli, consulta Aggiungere la mappatura degli attributi.
Per scoprire di più sulle mappature, consulta la sezione Mappare gli attributi Okta agli attributi delle app nell'editor di profili.
(Facoltativo) Per configurare un'attestazione dei gruppi, segui questi passaggi:
- Se utilizzi un server di autorizzazione dell'organizzazione:
- Vai ad Applicazioni > Applicazioni.
- Seleziona l'applicazione client OpenID Connect che hai creato in questa sezione.
- Vai alla scheda Sign On (Accesso).
- Nella sezione OpenID Connect ID Token (Token ID OpenID Connect), fai clic su Edit (Modifica).
- Nella sezione Tipo di attestazione dei gruppi, puoi selezionare una delle seguenti opzioni:
- Seleziona Espressione.
- Seleziona Corrisponde alla regex e inserisci
.*
.
- Per salvare l'attestazione dei gruppi, fai clic su Salva.
- Quando creerai il provider del pool di identità della forza lavoro più avanti in questa
guida, aggiungi
groups
come ambito aggiuntivo per richiedere l'rivendicazione dei gruppi da Okta for Web Single Sign-On. Questo passaggio è richiesto solo se utilizzi il flusso di accesso basato su browser della console (federato) o di gcloud CLI.
- Se utilizzi un server di autorizzazione personalizzato:
- Nel menu Sicurezza della Console di amministrazione, seleziona API.
- Seleziona il server di autorizzazione personalizzato che vuoi configurare.
- Vai alla scheda Rivendicazioni e fai clic su Aggiungi rivendicazione.
- Inserisci un nome per il reclamo. Per questo esempio, chiamalo
groups
. - Nella tua richiesta, in Includi nel tipo di token, seleziona Token ID e seleziona Sempre.
- Seleziona Gruppi come Tipo di valore.
- Nella casella a discesa Filtro, seleziona Corrisponde alla regex, quindi inserisci la seguente espressione come Valore:
.*
- Fai clic su Crea.
- Se utilizzi un server di autorizzazione dell'organizzazione:
Per maggiori dettagli sulle rivendicazioni dei gruppi, vedi Aggiungere una rivendicazione di Gruppi.
SAML
Per creare un'integrazione dell'app Okta che utilizza il protocollo SAML, segui questi passaggi:
- Accedi alla console di amministrazione Okta.
- Vai ad Applicazioni > Applicazioni.
- Fai clic su Create App Integration (Crea integrazione app).
- In Metodo di accesso, seleziona SAML 2.0 e fai clic su Avanti.
- Inserisci un nome per l'app e fai clic su Avanti per passare alle opzioni Configura SAML.
In Single Sign On URL (URL Single Sign-On), inserisci un URL di reindirizzamento. Si tratta dell'URL a cui vengono reindirizzati gli utenti dopo aver eseguito l'accesso. Se stai configurando l'accesso alla console, utilizza il seguente formato di URL.
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
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 creato in precedenza in questa guidaWORKFORCE_PROVIDER_ID
: un ID provider di identità per la forza lavoro a tua scelta; ad esempio:okta-saml-provider
Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di ricerca nella documentazione dell'API.
(Facoltativo) Utilizza le istruzioni degli attributi per specificare gli attributi personalizzati che vuoi inviare nell'asserzione SAML. Dopo la configurazione, questi attributi possono essere utilizzati in Google Cloud per creare criteri di gestione degli accessi o in attribute_condition; ad esempio, in questa guida mapperai il reparto nel seguente modo:
Nome Valore department
user.department
(Facoltativo) Per aggiungere l'attestazione dei gruppi, utilizzata più avanti in questa guida, vedi Come passare l'appartenenza a un gruppo di un utente in un'asserzione SAML.
Completa la creazione dell'integrazione dell'app Okta.
Crea un provider di pool di identità della forza lavoro
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 Okta, utilizzando il protocollo OIDC:
Per ottenere l'ID client per l'integrazione dell'app Okta:
- Vai all'integrazione dell'app Okta.
- Fai clic sulla scheda Generali.
- Copia il contenuto del campo Client-ID.
Per creare un provider di pool di identità della forza lavoro OIDC per l'accesso basato sul web:
Console
Flusso codice
In Okta, segui questi passaggi:
In Autenticazione client, seleziona Client secret.
Nella tabella Client secret, individua il secret e fai clic su content_copy Copia.
Nella console Google Cloud, per creare un provider OIDC che utilizza il flusso del codice di autorizzazione:
Nella console Google Cloud, vai alla pagina Pool di identità per la forza lavoro:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Provider, fai clic su Aggiungi provider.
In Seleziona un protocollo, scegli Open ID Connect (OIDC).
In Crea un provider di pool, segui questi passaggi:
- In Nome, inserisci un nome per il fornitore.
- 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
. - 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. - Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
- Fai clic su Continua.
In Tipo di risposta, procedi nel seguente modo. Il tipo di risposta viene utilizzato solo per un flusso Single Sign-On basato sul web.
- In Tipo di risposta, seleziona Codice.
- In Client secret, inserisci il client secret del tuo IdP.
In Comportamento delle attestazioni delle asserzioni, seleziona una delle seguenti opzioni:
- Informazioni utente e token ID
- Solo token ID
Fai clic su Continua.
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.
- Obbligatorio: in OIDC 1, inserisci l'oggetto indicato nell'IdP, ad esempio
assertion.sub
. (Facoltativo) Per aggiungere altre mappature degli attributi:
- Fai clic su Aggiungi mappatura.
- In Google n, dove n è un numero, inserisci una delle chiavi supportate da Google Cloud.
- Nel campo OIDC n corrispondente, inserisci il nome del campo specifico dell'IdP da mappare in formato CEL.
Per creare una condizione dell'attributo:
- Fai clic su Aggiungi condizione.
- In Condizioni attributi, inserisci una condizione in formato CEL;
ad esempio,
assertion.subject.endsWith('@example.com')
quando il valore disubject
mappato in precedenza contiene un indirizzo email che termina con@example.com
.
- Obbligatorio: in OIDC 1, inserisci l'oggetto indicato nell'IdP, ad esempio
Per creare il provider, fai clic su Invia.
Flusso implicito
Nella console Google Cloud di Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Pool di identità per la forza lavoro:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Provider, fai clic su Aggiungi provider.
In Seleziona un protocollo, scegli Open ID Connect (OIDC).
In Crea un provider di pool, segui questi passaggi:
- In Nome, inserisci un nome per il fornitore.
- 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
. - 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. - Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
- Fai clic su Continua.
In Tipo di risposta, procedi nel seguente modo. Il tipo di risposta viene utilizzato solo per un flusso Single Sign-On basato sul web.
- In Tipo di risposta, seleziona Token ID.
- Fai clic su Continua.
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.
Obbligatorio: in OIDC 1, inserisci l'oggetto indicato nell'IdP, ad esempio
assertion.sub
.(Facoltativo) Per aggiungere altre mappature degli attributi:
- Fai clic su Aggiungi mappatura.
- In Google n, dove n è un numero, inserisci una delle chiavi supportate da Google Cloud.
- Nel campo OIDC n corrispondente, inserisci il nome del campo specifico dell'IdP da mappare in formato CEL.
Per creare una condizione dell'attributo:
- Fai clic su Aggiungi condizione.
- In Condizioni attributi, inserisci una condizione in formato CEL;
ad esempio,
assertion.subject.endsWith('@example.com')
quando il valore disubject
mappato in precedenza contiene un indirizzo email che termina con@example.com
.
Per creare il provider, fai clic su Invia.
gcloud
Flusso codice
In Okta, segui questi passaggi:
In Autenticazione client, seleziona Client secret.
Nella tabella Client secret, individua il secret e fai clic su content_copy Copia.
In Google Cloud, 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 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=globalSostituisci quanto segue:
PROVIDER_ID
: un ID provider univoco. Il prefissogcp-
è 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 esempioidp-eu-employees
.DESCRIPTION
: una descrizione facoltativa del fornitore di forza lavoro, ad esempioIdP for Partner Example Organization employees
.ISSUER_URI
: l'URI dell'emittente OIDC, in un formato URI valido, che inizia conhttps
; 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 dichiarazioneaud
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 basato sulla console (federato) o tramite gcloud CLI, ad esempiogroups
per richiedere l'attestazione dei gruppi da Okta se si usa il server di autorizzazione dell'organizzazione di Okta.ATTRIBUTE_MAPPING
: una mappatura degli attributi, ad esempio:
In questo esempio gli attributi IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
ecostcenter
nell'asserzione OIDC vengono mappati rispettivamente agli attributigoogle.subject
,google.groups
eattribute.costcenter
.ATTRIBUTE_CONDITION
: una condizione dell'attributo; ad esempio,assertion.subject.endsWith('@example.com')
quando il valore disubject
mappato in precedenza contiene un indirizzo email che termina con@example.com
.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.
locations/global/workforcePools/enterprise-example-organization-employees
.Flusso implicito
Per creare un provider OIDC che utilizzi il flusso implicito per l'accesso web, 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 prefissogcp-
è 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 esempioidp-eu-employees
.DESCRIPTION
: una descrizione facoltativa del fornitore di forza lavoro, ad esempioIdP for Partner Example Organization employees
.ISSUER_URI
: l'URI dell'emittente OIDC, in un formato URI valido, che inizia conhttps
; 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 dichiarazioneaud
del JWT emesso dall'IdP.WEB_SSO_ADDITIONAL_SCOPES
: ambiti aggiuntivi facoltativi da inviare all'IdP OIDC per l'accesso basato sulla console (federato) o tramite gcloud CLI, ad esempiogroups
per richiedere l'attestazione dei gruppi da Okta se si usa il server di autorizzazione dell'organizzazione di Okta.ATTRIBUTE_MAPPING
: una mappatura degli attributi, ad esempio:
In questo esempio gli attributi IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
ecostcenter
nell'asserzione OIDC vengono mappati rispettivamente agli attributigoogle.subject
,google.groups
eattribute.costcenter
.ATTRIBUTE_CONDITION
: una condizione dell'attributo; ad esempio,assertion.subject.endsWith('@example.com')
quando il valore disubject
mappato in precedenza contiene un indirizzo email che termina con@example.com
.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.
locations/global/workforcePools/enterprise-example-organization-employees
.
Crea un provider del pool di forza lavoro SAML
Nel tuo IdP SAML, registra una nuova applicazione per la federazione delle identità per la forza lavoro di Google Cloud.
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
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.
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:
Nella console Google Cloud, vai alla pagina Pool di identità per la forza lavoro:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Provider, fai clic su Aggiungi provider.
In Seleziona un protocollo, seleziona SAML.
In Crea un provider di pool, segui questi passaggi:
In Nome, inserisci un nome per il fornitore.
(Facoltativo) In Descrizione, inserisci una descrizione per il fornitore.
In File di metadati IDP (XML), seleziona il file XML dei metadati che hai generato in precedenza in questa guida.
Assicurati che l'opzione Provider abilitato sia abilitata.
Fai clic su Continua.
In Configura il provider, segui questi passaggi:
In Mappatura attributi, inserisci un'espressione CEL per
google.subject
.(Facoltativo) Per inserire altre mappature, fai clic su Aggiungi mappatura e inserisci altre mappature, ad esempio:
In questo esempio gli attributi IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
eassertion.attributes.costcenter[0]
vengono mappati rispettivamente agli attributigoogle.subject
,google.groups
egoogle.costcenter
di Google Cloud.(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 condizioneassertion.attributes.ipaddr.startsWith('98.11.12.')
. Questa condizione di esempio garantisce che solo gli utenti con un indirizzo IP che inizia con98.11.12.
possano accedere utilizzando questo fornitore di forza lavoro.Fai clic su Continua.
Per creare il provider, fai clic su Invia.
gcloud
Per creare un provider di pool di identità della forza lavoro per l'integrazione dell'app Okta, utilizzando il protocollo SAML, segui questi passaggi:
Per salvare i metadati SAML per la tua app Okta, segui questi passaggi:
- Vai all'app Okta.
- Fai clic sulla scheda Sign On (Accesso).
- Nella sezione Certificati di firma SAML, fai clic su Azioni > Visualizza metadati IdP per il certificato attivo.
- Nella nuova pagina che si apre, copia i metadati XML.
- Salva i metadati come file XML locale.
Per creare un provider di 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 del provider di forza lavoro creato in precedenza in questa guida.WORKFORCE_POOL_ID
: l'ID pool di forza lavoro che hai creato in precedenza in questa guida.ATTRIBUTE_MAPPING
: una mappatura degli attributi, ad esempio:
In questo esempio gli attributi IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
eassertion.attributes.costcenter[0]
vengono mappati rispettivamente agli attributigoogle.subject
,google.groups
egoogle.costcenter
di Google Cloud.ATTRIBUTE_CONDITION
: una condizione dell'attributo facoltativa. Ad esempio, per limitare l'attributoipaddr
a un determinato intervallo IP, puoi impostare la condizioneassertion.attributes.ipaddr.startsWith('98.11.12.')
. Questa condizione di esempio garantisce che solo gli utenti con un indirizzo IP che inizia con98.11.12.
possano accedere utilizzando questo fornitore di forza lavoro.XML_METADATA_PATH
: il percorso del file di metadati in formato XML dell'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
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.
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 sceltaWORKFORCE_POOL_ID
: l'ID poolPROVIDER_ID
: l'ID provider-
KEY_SPECIFICATION
: la specifica della chiave, che può esserersa-2048
,rsa-3072
ersa-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 chiaveWORKFORCE_POOL_ID
: l'ID poolPROVIDER_ID
: l'ID providerCERTIFICATE_PATH
: il percorso in cui scrivere il certificato, ad esempiosaml-certificate.cer
osaml-certificate.pem
Configura il tuo IdP conforme a SAML 2.0 per emettere asserzioni SAML criptate
Per configurare Okta per criptare le asserzioni SAML, segui questi passaggi:
- Vai alla dashboard di Okta e accedi.
- 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 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 firma e Algoritmo digest, seleziona un'opzione qualsiasi.
- Imposta i seguenti valori:
- Assertion Encryption (Crittografia delle asserzioni): criptata.
- Algoritmo di crittografia:qualsiasi algoritmo scelto.
- 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 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 chiaveWORKFORCE_POOL_ID
: l'ID poolPROVIDER_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:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
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, gruppi 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 progettoWORKFORCE_POOL_ID
: l'ID pool di identità della forza lavoroSUBJECT_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 progettoWORKFORCE_POOL_ID
: l'ID del pool di forza lavoroDEPARTMENT_VALUE
: il valoreattribute.department
mappato
Utilizzo dei 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 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 progettoWORKFORCE_POOL_ID
: l'ID del pool di forza lavoroGROUP_ID
: un gruppo nell'attestazionegoogle.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):
-
Vai alla pagina di accesso della console (federata).
-
Inserisci il nome del provider, che avrà il seguente formato:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
- 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 nidificato: https://console.cloud.google/
.
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 lavoroPROVIDER_ID
: l'ID providerLOGIN_CONFIG_FILE
: un percorso al file di configurazione da te specificato, ad esempiologin.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 congcloud 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 congcloud 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 a gcloud CLI utilizzando un flusso headless:
OIDC
Fai accedere un utente all'app Okta e recupera il token OIDC da Okta.
Salva il token OIDC restituito da Okta in una posizione sicura sulla tua macchina locale.
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 del pool di forza lavoroPROVIDER_ID
: l'ID providerPATH_TO_OIDC_TOKEN
: il percorso del file credenziali IdP OIDCWORKFORCE_POOL_USER_PROJECT
: il numero del progetto associato al progetto utente dei pool di forza lavoro
L'entità deve avere l'autorizzazione serviceusage.services.use
in questo
progetto.
Quando esegui il comando, viene restituito un file di configurazione 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
Esegui l'accesso di un utente all'app Okta e ricevi la risposta SAML da Okta.
Salva la risposta SAML restituita da Okta in una posizione sicura sulla tua macchina locale, quindi archivia il percorso come segue:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
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 l'ID creato in precedenza in questa guida.WORKFORCE_POOL_ID
: l'ID pool di 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" }
Per accedere a gcloud
utilizzando token Exchange, esegui questo comando:
gcloud auth login --cred-file="config.json"
gcloud
scambia quindi in modo trasparente le tue credenziali Okta con 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
].
Per visualizzare l'elenco degli account con credenziali e dell'account attualmente attivo, esegui questo comando:
gcloud auth list
Controlla l'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 (roles/storage.admin
) 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)
Per elencare i bucket Cloud Storage utilizzando la console (in federazione):
- 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
- Eliminare gli utenti della federazione delle identità per la forza lavoro e i relativi dati
- Scopri quali prodotti Google Cloud supportano la federazione delle identità per la forza lavoro
- Configurare l'accesso degli utenti alla console (federato)