Questa guida descrive come configurare la federazione delle identità della forza lavoro con un provider di identità (IdP) che supporta OIDC o SAML 2.0.
Per istruzioni specifiche per l'identità provider, consulta quanto segue:
- Configurare la Federazione delle identità della forza lavoro basata su Microsoft Entra ID
- Configurare la federazione delle identità della forza lavoro basata su Okta
Prima di iniziare
- Assicurati di aver configurato un'organizzazione Google Cloud.
-
After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:
gcloud init
-
Enable the Identity and Access Management (IAM) and Resource Manager APIs.
- Per l'accesso, l'IdP deve fornire informazioni di autenticazione firmate: gli IdP OIDC devono fornire un JWT e le risposte degli IdP SAML devono essere firmate.
- Per ricevere informazioni importanti sulle modifiche apportate alla tua organizzazione o ai prodotti Google Cloud, devi fornire i Contatti fondamentali. 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 i ruoli personalizzati o altri ruoli predefiniti.
In alternativa, il ruolo di base Proprietario (roles/owner
) include anche le autorizzazioni per configurare la federazione delle identità della forza lavoro.
Non dovresti concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o di test.
Configurare la federazione delle identità per la forza lavoro
Per configurare la federazione delle identità per la forza lavoro, devi creare un pool di identità per la forza lavoro e un provider di pool di identità per la forza lavoro.
Crea un pool di identità della forza lavoro
Per creare il pool, esegui il seguente comando:
Console
Per creare il pool di identità della forza lavoro, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Pool di identità del personale:
Fai clic su Crea pool e segui questi passaggi:
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.
(Facoltativo) In Descrizione, inserisci una descrizione del pool.
L'opzione Durata 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 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).
Per creare il pool nello stato abilitato, assicurati che Pool abilitato sia attivo.
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 per rappresentare la tua forza lavoro Google Cloud. Per informazioni sulla formattazione dell'ID, consulta la sezione Parametri di query nella documentazione dell'API.ORGANIZATION_ID
: l'ID numerico della tua organizzazione Google Cloud.DISPLAY_NAME
: facoltativo. Un nome visualizzato per il pool di identità della forza lavoro.DESCRIPTION
: facoltativo. Una descrizione del pool di identità della forza lavoro.SESSION_DURATION
: facoltativo. La durata della sessione, che determina per quanto tempo sono validi i token di accesso di Google Cloud, le sessioni di accesso della console (federata) e le sessioni di accesso con gcloud CLI da questo pool di forza lavoro. 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 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 del pool di forza lavoro OIDC
Per creare un provider del pool di identità della forza lavoro utilizzando il protocollo OIDC:
Nel tuo IdP OIDC, registra una nuova applicazione per la federazione delle identità della forza lavoro di Google Cloud. Prendi nota dell'ID client e dell'URI issuer fornito dall'IdP. che utilizzerai in questo documento.
Se prevedi di configurare l'accesso degli utenti alla console, aggiungi il seguente URL di reindirizzamento al tuo IdP OIDC:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Per scoprire come configurare l'accesso alla console (federata), consulta Configurare l'accesso degli utenti alla console (federata).
In Google Cloud, per creare il provider:
Console
Flusso codice
Nella console Google Cloud, per creare un provider OIDC che utilizzi il flusso di codice di autorizzazione, svolgi i seguenti passaggi:
Nella console Google Cloud, vai alla pagina Pool di identità del personale:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Fornitori, fai clic su Aggiungi fornitore.
In Seleziona un protocollo, seleziona OpenID Connect (OIDC).
In Crea un provider di pool, segui questi passaggi:
- In Nome, inserisci un nome per il provider.
- 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, l'ID client OIDC registrato con il tuo IdP OIDC. L'ID deve corrispondere al claim
aud
del JWT emesso dal tuo IdP. - Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
- Fai clic su Continua.
In Tipo di risposta, segui questi passaggi: Il tipo di risposta viene utilizzato solo per un flusso di Single Sign-On basato sul web.
- In Tipo di risposta, seleziona Codice.
- In Client secret, inserisci il client secret della tua IdP.
In Comportamento delle rivendicazioni per affermazioni, 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 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.
Obbligatorio: in OIDC 1, inserisci il soggetto dell'IdP, ad esempio
assertion.sub
.(Facoltativo) Per aggiungere altre mappature degli attributi, procedi nel seguente modo:
- 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.role == 'gcp-users'
. Questa condizione di esempio garantisce che solo gli utenti con il ruologcp-users
possano accedere utilizzando questo provider.
Per creare il provider, fai clic su Invia.
Flusso implicito
Nella console Google Cloud, per creare un provider OIDC che utilizzi il flusso implicito:
Nella console Google Cloud, vai alla pagina Pool di identità del personale:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Fornitori, fai clic su Aggiungi fornitore.
In Seleziona un protocollo, seleziona OpenID Connect (OIDC).
In Crea un provider di pool, segui questi passaggi:
- In Nome, inserisci un nome per il provider.
- 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, l'ID client OIDC registrato con il tuo IdP OIDC. L'ID deve corrispondere al claim
aud
del JWT emesso dal tuo IdP. - Per creare un provider abilitato, assicurati che l'opzione Provider abilitato sia attivata.
- Fai clic su Continua.
In Tipo di risposta, segui questi passaggi: Il tipo di risposta viene utilizzato solo per un flusso di 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 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.
Obbligatorio: in OIDC 1, inserisci il soggetto dell'IdP, ad esempio
assertion.sub
.(Facoltativo) Per aggiungere altre mappature degli attributi, procedi nel seguente modo:
- 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.role == 'gcp-users'
. Questa condizione di esempio garantisce che solo gli utenti con il ruologcp-users
possano accedere utilizzando questo provider.
Per creare il provider, fai clic su Invia.
gcloud
Flusso codice
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 WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=globalSostituisci quanto segue:
WORKFORCE_PROVIDER_ID
: un ID fornitore del pool di identità della forza lavoro univoco. Il prefissogcp-
è riservato e non può essere utilizzato in un pool di identità per la forza lavoro o nell'ID provider di pool di identità per la forza lavoro.WORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoro a cui collegare 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 personale; ad esempio,IdP 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 con l'IdP OIDC. L'ID deve corrispondere al claimaud
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 dell'interfaccia a riga di comando gcloud.ATTRIBUTE_MAPPING
: una mappatura degli attributi. Di seguito è riportato un esempio di mappatura degli attributi: Questo esempio mappa gli attributi IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
ecostcenter
nell'affermazione OIDC agli attributigoogle.subject
,google.groups
eattribute.costcenter
, rispettivamente.ATTRIBUTE_CONDITION
: una condizione dell'attributo, ad esempioassertion.role == 'gcp-users'
. Questa condizione di esempio garantisce che solo gli utenti con il ruologcp-users
possano accedere utilizzando questo provider.JWK_JSON_PATH
: un percorso facoltativo a un file JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud utilizza il percorso/.well-known/openid-configuration
del tuo IdP per recuperare i JWK contenenti le chiavi pubbliche. Per saperne di più sui JWK OIDC caricati localmente, vedi 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 il seguente comando:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \ --web-sso-response-type="id-token" \ --web-sso-assertion-claims-behavior="only-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global
Sostituisci quanto segue:
WORKFORCE_PROVIDER_ID
: un ID fornitore del pool di identità della forza lavoro univoco. Il prefissogcp-
è riservato e non può essere utilizzato in un pool di identità per la forza lavoro o nell'ID provider di pool di identità per la forza lavoro.WORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoro a cui collegare 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 personale; ad esempio,IdP 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 con l'IdP OIDC. L'ID deve corrispondere al claimaud
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 dell'interfaccia a riga di comando gcloud.ATTRIBUTE_MAPPING
: una mappatura degli attributi. Di seguito è riportato un esempio di mappatura degli attributi: Questo esempio mappa gli attributi IdPgoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,group1
ecostcenter
nell'affermazione OIDC agli attributigoogle.subject
,google.groups
eattribute.costcenter
, rispettivamente.ATTRIBUTE_CONDITION
: una condizione dell'attributo, ad esempioassertion.role == 'gcp-users'
. Questa condizione di esempio garantisce che solo gli utenti con il ruologcp-users
possano accedere utilizzando questo provider.JWK_JSON_PATH
: un percorso facoltativo a un file JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud utilizza il percorso/.well-known/openid-configuration
del tuo IdP per recuperare i JWK contenenti le chiavi pubbliche. Per saperne di più sui JWK OIDC caricati localmente, vedi Gestire i JWK OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.Il prefisso
gcp-
è riservato e non può essere utilizzato in un pool di identità per la forza lavoro o nell'ID provider di pool di identità per la forza lavoro.Per la federazione OIDC, puoi utilizzare
assertion.NAME
: una stringa uguale al valore del claim con lo stesso nome nel payload del token ID.
Crea un provider di pool di forza lavoro SAML
Nel tuo IdP SAML, registra una nuova applicazione per la federazione delle identità della forza lavoro di Google Cloud.
Imposta il segmento di pubblico per le asserzioni SAML. Di solito è il campo
SP Entity ID
nella configurazione dell'IdP. Devi impostarlo sul seguente URL:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
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.
In Google Cloud, crea un provider di 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. Per informazioni dettagliate sulle chiavi di firma, consulta la sezione Requisiti delle chiavi più avanti in questa guida.
Console
Per configurare il provider SAML utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Pool di identità del personale:
Nella tabella Pool di identità della forza lavoro, seleziona il pool per cui vuoi creare il provider.
Nella tabella Fornitori, fai clic su Aggiungi fornitore.
In Seleziona un protocollo, seleziona SAML.
In Crea un provider di pool, segui questi passaggi:
In Nome, inserisci un nome per il provider.
(Facoltativo) In Descrizione, inserisci una descrizione del 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 attivata.
Fai clic su Continua.
In Configura provider:
In Mappatura degli attributi, inserisci un'espressione CEL per
google.subject
.(Facoltativo) Per inserire altre mappature, fai clic su Aggiungi mappatura e inserisci altre mappature, ad esempio:
Questo esempio mappa 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]
agli attributi Google Cloudgoogle.subject
,google.groups
egoogle.costcenter
, rispettivamente.(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 personale.Fai clic su Continua.
Per creare il provider, fai clic su Invia.
gcloud
Per configurare il provider SAML utilizzando gcloud CLI, segui questi passaggi:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--idp-metadata-path=METADATA_FILE_PATH \
--attribute-mapping="ATTRIBUTE_MAPPING" \
--attribute-condition="ATTRIBUTE_CONDITION" \
--location=global
Sostituisci quanto segue:
WORKFORCE_PROVIDER_ID
: l'ID del provider del pool di identità della forza lavoro.WORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoro.DISPLAY_NAME
Il nome visualizzato del fornitore, ad esempioidp-eu-employees
.DESCRIPTION
: la descrizione del provider del pool di identità della forza lavoro, ad esempioIdP for Partner Example Organization EU employees
.METADATA_FILE_PATH
: il percorso del file di metadati SAML.ATTRIBUTE_MAPPING
: la mappatura degli attributi; ad esempio: Questo esempio mappa 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]
agli attributi Google Cloudgoogle.subject
,google.groups
egoogle.costcenter
, rispettivamente.ATTRIBUTE_CONDITION
: una condizione dell'attributo. 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 personale.
Potrebbero essere necessari alcuni minuti prima che il fornitore inizi ad accettare le richieste.
Per la federazione SAML, puoi utilizzare le seguenti parole chiave nelle mappature degli attributi e nelle condizioni:
assertion.subject
: una stringa uguale all'attributoNameID
nell'affermazione SAML.assertion.attributes.NAME
: un elenco di stringhe uguale ai valori degli attributi con lo stesso nome nell'affermazione SAML.
(Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP
Per consentire al tuo provider di identità SAML 2.0 di produrre assert SAML criptate che possono essere accettate dalla federazione delle identità per la forza lavoro, svolgi i seguenti passaggi:
- Nella federazione delle identità per la 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:
- Attiva la crittografia delle asserzioni, nota anche come crittografia dei token.
- Carica la chiave pubblica che hai creato nella federazione delle identità per la forza lavoro.
- Verifica che il tuo IdP produca asserzioni SAML criptate.
Crea le chiavi di crittografia delle asserzioni SAML della federazione delle identità per la forza lavoro
Questa sezione illustra la procedura per creare una coppia di chiavi asimmetriche che consenta alla federazione delle identità del personale di accettare 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 il seguente comando. Per saperne di più, consulta Algoritmi di crittografia SAML supportati.
gcloud iam workforce-pools providers keys create KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Sostituisci quanto segue:
KEY_ID
: un nome della chiave a tua sceltaWORKFORCE_POOL_ID
: l'ID poolWORKFORCE_PROVIDER_ID
: l'ID del provider del pool di identità della forza lavoro-
KEY_SPECIFICATION
: la specifica della chiave, che può esserersa-2048
,rsa-3072
ersa-4096
.
Dopo aver creato la coppia di chiavi, per scaricare la chiave pubblica in un file del certificato, esegui il seguente comando. Solo la federazione delle identità per la forza lavoro ha accesso alla chiave privata.
gcloud iam workforce-pools providers keys describe KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider WORKFORCE_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Sostituisci quanto segue:
KEY_ID
: il nome della chiaveWORKFORCE_POOL_ID
: l'ID poolWORKFORCE_PROVIDER_ID
: l'ID del provider del pool di identità della forza lavoroCERTIFICATE_PATH
: il percorso in cui scrivere il certificato, ad esempiosaml-certificate.cer
osaml-certificate.pem
Configurare l'IdP conforme a SAML 2.0 per emettere asserzioni SAML criptate
Configura l'IdP SAML in modo che utilizzi il certificato pubblico scaricato dall'ultimo passaggio per criptare le asserzioni SAML che emette. Rivolgiti al team della tua IdP per istruzioni specifiche.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 WORKFORCE_PROVIDER_ID \ --location global
Sostituisci quanto segue:
KEY_ID
: il nome della chiaveWORKFORCE_POOL_ID
: l'ID poolWORKFORCE_PROVIDER_ID
: l'ID del provider del pool di identità della forza lavoro
Algoritmi di crittografia SAML supportati
La federazione delle identità per la forza lavoro supporta i seguenti algoritmi di trasporto principali:
- 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:
- http://www.w3.org/2001/04/xmlenc#aes128-cbc
- http://www.w3.org/2001/04/xmlenc#aes192-cbc
- http://www.w3.org/2001/04/xmlenc#aes256-cbc
- http://www.w3.org/2009/xmlenc11#aes128-gcm
- http://www.w3.org/2009/xmlenc11#aes256-gcm
Requisiti della chiave di firma X.509 SAML
Le seguenti specifiche delle chiavi si applicano alle chiavi di firma X.509 SAML:
Una chiave pubblica RSA inserita in un certificato X.509 v3.
Requisiti di validità del certificato:
notBefore
: un timestamp non più lontano di 7 giorni nel futuronotAfter
: un timestamp non più lontano di 20 anni nel futuro
Algoritmi consigliati:
- RSAwithSHA256 (dimensioni della chiave supportate (bit): 2048, 3072, 4096)
- ECDSAwithSHA256
Un provider di pool di identità per la forza lavoro può essere configurato con al massimo tre chiavi di firma alla volta. Quando esistono più chiavi, Google Cloud le analizza e tenta di utilizzare ogni chiave non scaduta per soddisfare una richiesta di scambio di token.
Come best practice per la sicurezza, ti consigliamo vivamente di non riutilizzare la stessa coppia di chiavi con altri servizi.
Gestione delle chiavi
Per aggiornare le chiavi di firma dell'identità provider:
Crea una nuova coppia di chiavi asimmetriche e configura il provider di identità SAML con la coppia di chiavi. Inizialmente lo contrassegni come inattivo prima di attivarlo in un passaggio successivo.
Scarica un documento XML dei metadati SAML dal tuo IdP.
Aggiorna la risorsa del provider del pool di identità per la forza lavoro utilizzando il documento di metadati SAML. Quando esistono più chiavi, Google Cloud le analizza tutte e tenta di soddisfare una richiesta di scambio di token.
Per aggiornare il provider del pool di identità della forza lavoro con i metadati SAML, esegui il seguente comando.
gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Sostituisci quanto segue:
WORKFORCE_PROVIDER_ID
: l'ID del fornitore del pool di identità della forza lavoroWORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoroSAML_METADATA_FILE_PATH
: il percorso del file di metadati SAML
Attendi il completamento dell'operazione restituita dal passaggio precedente (l'operazione è contrassegnata come completata) e poi attiva la nuova chiave di firma nel tuo provider di identità SAML. La vecchia chiave di firma è contrassegnata come non attiva. Le asserzioni emesse dal tuo provider di identità vengono firmate utilizzando la nuova chiave.
I passaggi che seguono sono facoltativi, ma ti consigliamo di eseguirli come best practice:
- Elimina la vecchia chiave di firma, ora non attiva, dal tuo IdP.
- Scarica il documento XML dei metadati SAML dal tuo IdP.
Aggiorna la risorsa del provider del pool di identità per la forza lavoro utilizzando il documento di metadati SAML. Google Cloud rifiuta le asserzioni firmate con la chiave di firma scaduta. Per aggiornare il documento, esegui il comando seguente:
gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --idp-metadata-path=SAML_METADATA_FILE_PATH \ --location=global
Sostituisci quanto segue:
WORKFORCE_PROVIDER_ID
: l'ID del fornitore del pool di identità della forza lavoroWORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoroSAML_METADATA_FILE_PATH
: il percorso dei metadati SAML
Vincolo di eliminazione delle chiavi
Google Cloud rifiuta le asserzioni firmate con una chiave eliminata.
Rappresentare gli utenti del pool di forza lavoro nei criteri IAM
La tabella seguente mostra gli identificatori principali che utilizzi per concedere i ruoli a un singolo utente, a un gruppo di utenti, a utenti che presentano una determinata rivendicazione o a tutti gli utenti di un pool di risorse umane.
Identità | Formato dell'identificatore |
---|---|
Un'unica identità in un pool di identità per la forza lavoro |
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
|
Tutte le identità della forza lavoro in un gruppo |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
|
Tutte le identità della forza lavoro con un valore dell'attributo specifico |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
|
Tutte le identità in un pool di identità della forza lavoro |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*
|
Concedere ruoli IAM alle entità
Puoi concedere ruoli ai principali, ad esempio singole identità, gruppi di identità o un intero pool.
Per concedere un ruolo in un progetto a un principale, esegui il seguente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--role="ROLE" \
--member="PRINCIPAL"
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoROLE
: il ruolo da impostarePRINCIPAL
: l'entità; consulta Identificatori entità per la federazione delle identità per la forza lavoro.
Nell'esempio seguente, il comando concede il ruolo Amministratore archiviazione
(roles/storage.admin
) a tutte le identità all'interno del gruppo
GROUP_ID
:
gcloud projects add-iam-policy-binding my-project \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Per ulteriori informazioni sul formato del principale, consulta Identificatori principali per la federazione delle identità per la forza lavoro.
Eliminare utenti
La federazione delle identità della forza lavoro crea risorse e metadati utente per le identità utente federate. Se scegli di eliminare gli utenti, ad esempio nel tuo provider di identità, devi eliminare esplicitamente anche queste risorse in Google Cloud. Per farlo, consulta Eliminare gli utenti e i relativi dati di Workforce Identity Federation.
Potresti notare che le risorse continuano ad 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 avviati dall'utente prima dell'eliminazione possono continuare a essere eseguiti fino al loro completamento o all'annullamento.
Passaggi successivi
- Ottenere credenziali di breve durata per la federazione delle identità della forza lavoro
- Gestire i provider dei pool di identità per la forza lavoro
- Eliminare gli utenti di Workforce Identity Federation e i relativi dati
- Scopri quali prodotti Google Cloud supportano la federazione delle identità della forza lavoro
- Configurare l'accesso degli utenti alla console (federata)