Federazione delle identità per la forza lavoro

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento descrive i concetti chiave della federazione delle identità della forza lavoro.

Che cos'è la federazione delle identità della forza lavoro?

La federazione delle identità di forza lavoro ti consente di utilizzare un provider di identità (IdP) esterno per autenticare e autorizzare una forza lavoro, ossia un gruppo di utenti, come dipendenti, partner e collaboratori, utilizzando IAM, in modo che gli utenti possano accedere ai servizi Google Cloud. Con la federazione delle identità della forza lavoro non è necessario sincronizzare le identità degli utenti dall'IdP esistente alle identità Google Cloud, proprio come faresti con Google Cloud Directory Sync (GCDS). La federazione delle identità di Workforce estende le funzionalità di identità di Google Cloud per supportare il Single Sign-On senza sincronizzazione basato su attributi.

Dopo l'autenticazione dell'utente, le informazioni ricevute dall'IdP vengono utilizzate per determinare l'ambito di accesso alle risorse Google Cloud.

Puoi utilizzare la federazione delle identità della forza lavoro con qualsiasi IdP che supporti OpenID Connect (OIDC) o SAML 2.0, ad esempio Azure Active Directory (Azure AD), Active Directory Federation Services (AD FS), Okta e altri.

Pool di federazione delle identità della forza lavoro

I pool di federazione delle identità della forza lavoro consentono di gestire gruppi di identità della forza lavoro e il loro accesso alle risorse Google Cloud.

I pool ti consentono di:

  • Raggruppa le identità degli utenti, ad esempio employees o partners
  • Concedi l'accesso IAM a un intero pool o a un suo sottoinsieme.
  • Federa le identità da uno o più IdP.
  • Definire i criteri per un gruppo di utenti che richiedono autorizzazioni di accesso simili.
  • Specifica le informazioni di configurazione specifiche dell'IdP, tra cui la mappatura degli attributi e le condizioni degli attributi.
  • Abilita Google Cloud CLI e l'accesso API per le identità di terze parti.
  • Registra l'accesso degli utenti all'interno di un pool in Cloud Audit Logs, insieme all'ID del pool.

Puoi creare più pool. Per un esempio che descrive uno di questi approcci, consulta Esempio: più pool di identità della forza lavoro.

I pool sono configurati a livello di organizzazione Google Cloud. Per questo motivo, i pool sono disponibili in tutti i progetti e le cartelle all'interno dell'organizzazione, a condizione che tu disponga delle autorizzazioni IAM appropriate per visualizzare il pool. Quando configuri per la prima volta la federazione delle identità della forza lavoro per la tua organizzazione, fornisci un nome per il pool. Nei criteri di autorizzazione IAM, fai riferimento al pool tramite il suo nome. Per questo motivo, ti consigliamo di assegnare un nome al pool in modo che descriva chiaramente le identità che contiene.

Provider di pool di identità per la forza lavoro

Un provider di pool di identità della forza lavoro è un'entità che descrive una relazione tra la tua organizzazione Google Cloud e il tuo IdP.

La federazione delle identità della forza lavoro rispetta la specifica OAuth 2.0 Token Exchange (RFC 8693). Fornisci una credenziale del tuo provider di identità esterno al Security Token Service, che verifica l'identità nella credenziale, quindi restituisce un token di accesso a Google Cloud di breve durata in cambio.

Console di federazione delle identità della forza lavoro Google Cloud

Gli utenti di un pool di identità della forza lavoro possono accedere alla console di federazione delle identità della forza lavoro di Google Cloud, anche nota come console (federata). La console fornisce a questi utenti l'accesso tramite UI ai prodotti Google Cloud che supportano la federazione delle identità della forza lavoro.

Mappature attributi

Il provider di identità fornisce gli attributi, denominati da alcuni IdP come rivendicazioni. Gli attributi contengono informazioni sui tuoi utenti. Puoi mappare questi attributi per l'utilizzo da parte di Google Cloud utilizzando il Common Expression Language (CEL).

Questa sezione descrive l'insieme di attributi obbligatori e facoltativi forniti da Google Cloud.

Puoi anche definire attributi personalizzati nel tuo IdP che possano essere utilizzati da prodotti Google Cloud specifici, ad esempio nei criteri di autorizzazione IAM.

La dimensione massima per le mappature degli attributi è 4 kB.

Gli attributi sono i seguenti:

  • google.subject (obbligatorio): un identificatore univoco per l'utente di autenticazione. È spesso l'oggetto del JWT, perché gli audit log di Cloud registrano i contenuti di questo campo come entità. Puoi utilizzare questo campo per configurare IAM per le decisioni di autorizzazione. Ti consigliamo di non utilizzare un valore modificabile perché, se modifichi il valore nella directory utente dell'IdP, l'utente perde l'accesso.

    La lunghezza massima è di 127 byte.

  • (Facoltativo) google.groups: la raccolta di gruppi di cui l'utente che esegue l'autenticazione è membro. Puoi configurare un'espressione logica utilizzando un sottoinsieme di CEL che produce un array di stringhe. Puoi utilizzare questo campo anche per configurare IAM per le decisioni di autorizzazione. Le limitazioni per google.groups sono le seguenti:

    • Ti consigliamo di limitare il nome del gruppo a 100 caratteri.

    • Se un utente è associato a più di 100 gruppi, definisci un insieme più piccolo di gruppi e includi questi gruppi solo nelle asserzioni utilizzate per federare l'utente a Google Cloud.

    • Se utilizzi questo attributo per concedere l'accesso in IAM, verrà concesso l'accesso a tutti i membri dei gruppi mappati. Pertanto, ti consigliamo di assicurarti che solo gli utenti autorizzati nella tua organizzazione possano modificare l'appartenenza ai gruppi mappati.

  • google.display_name (Facoltativo): attributo utilizzato per impostare il nome dell'utente che ha eseguito l'accesso nella console Google Cloud. Questo attributo non può essere utilizzato nei criteri di autorizzazione IAM né nella condizione dell'attributo.

    La lunghezza massima è di 100 byte.

  • (Facoltativo) google.profile_photo: un URL della foto in miniatura dell'utente. Consigliamo di utilizzare foto di 400 x 400 pixel. Quando questo attributo è impostato, l'immagine è visibile come immagine del profilo dell'utente nella console Google Cloud. Se questo valore non è impostato o non può essere recuperato, viene visualizzata un'icona utente generica. Questo attributo non può essere utilizzato nei criteri di autorizzazione IAM né nella condizione dell'attributo.

  • (Facoltativo) attribute.KEY: un attributo definito dal cliente che è presente nel token dell'IdP di un utente. Puoi utilizzare questi attributi personalizzati per definire la strategia di autorizzazione in un criterio di autorizzazione IAM. Ad esempio, puoi scegliere di definire un attributo come il centro di costo dell'utente: attribute.costcenter = "1234". Questo attributo potrebbe poi essere utilizzato in condizioni IAM per concedere l'accesso solo agli utenti in quel centro di costo.

    Puoi configurare un massimo di 50 regole di mappatura degli attributi personalizzati. La dimensione massima di ogni regola di questo tipo è di 2048 caratteri.

    Anche se non disponiamo di limitazioni per gli attributi che puoi mappare qui, ti consigliamo vivamente di scegliere attributi i cui valori siano stabili. Ad esempio, un attributo come attribute.job_description potrebbe cambiare per diversi motivi (come il miglioramento della leggibilità). In alternativa, puoi utilizzare attribute.role. Le ultime modifiche indicano una modifica della responsabilità assegnata e l'allineamento dell'accesso concesso all'utente.

Condizioni attributi

Le condizioni degli attributi sono espressioni CEL facoltative che ti consentono di impostare vincoli sugli attributi di identità accettati da Google Cloud.

I vantaggi dell'utilizzo delle condizioni degli attributi includono:

  • Puoi utilizzare le condizioni degli attributi per consentire solo a un sottoinsieme di identità esterne di eseguire l'autenticazione nel tuo progetto Google Cloud. Ad esempio, potresti voler consentire l'accesso solo a quelle identità di un team specifico, soprattutto se utilizzi un IdP pubblico. Per un altro esempio, puoi consentire al team di contabilità di eseguire l'accesso, ma non di team di progettazione.
  • Le condizioni degli attributi consentono di impedire l'utilizzo delle credenziali destinate a un'altra piattaforma con Google Cloud e viceversa. In questo modo eviterai di risolvere il problema confuso.

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, un gruppo di utenti, gli utenti che presentano una determinata rivendicazione o tutti gli utenti di un pool di forza lavoro.

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

Limita l'accesso tra organizzazioni

Le entità del pool della federazione delle identità della forza lavoro non possono accedere direttamente alle risorse all'esterno dell'organizzazione a cui appartengono. Tuttavia, se a un'entità viene concessa l'autorizzazione per rubare l'identità di un account di servizio all'interno dell'organizzazione, questo vincolo può essere ignorato poiché gli account di servizio non sono ugualmente limitati.

Progetto utente di pool di forza lavoro

In genere, i servizi Google Cloud addebitano la fatturazione e l'utilizzo della quota al progetto che contiene le risorse (un progetto di risorse), mentre alcune API Google Cloud addebitano un costo a un progetto specificato nella chiamata API. In questi casi, viene utilizzato un progetto utente del pool di federazione delle identità della forza lavoro ai fini della fatturazione e della quota. L'entità deve disporre dell'autorizzazione serviceusage.services.use per questo progetto. Se utilizzi già i servizi Google Cloud, puoi utilizzare un progetto esistente per la fatturazione e le quote. Se non ne hai ancora uno, puoi crearne uno nuovo. È possibile utilizzare il nuovo progetto anziché i progetti di risorse.

Esempio: più pool di federazione delle identità della forza lavoro

Questa sezione contiene un esempio che illustra l'uso tipico di più pool.

Puoi creare un pool per i dipendenti e un altro per i partner. Le organizzazioni multinazionali potrebbero creare pool separati per le diverse divisioni nella propria organizzazione. I pool consentono la gestione distribuita, in cui gruppi diversi possono gestire in modo indipendente il pool specifico in cui i ruoli vengono concessi solo alle identità nel pool.

Ad esempio, supponiamo che una società denominata Enterprise Example Organization stipuri un'altra società denominata Partner Example Organization Inc per la fornitura dei servizi DevOps di Google Kubernetes Engine (GKE). Affinché la forza lavoro dell'organizzazione di esempio del partner fornisca i servizi, la sua forza lavoro deve essere in grado di accedere a Google Kubernetes Engine (GKE) e ad altre risorse di Google Cloud nell'organizzazione dell'organizzazione di esempio dell'azienda. L'organizzazione Enterprise Example ha già un pool di federazione delle identità della forza lavoro denominato enterprise-example-organization-employees.

Per consentire all'organizzazione di esempio di partner di gestire l'accesso alle risorse dell'organizzazione di esempio dell'azienda, l'organizzazione di esempio dell'azienda crea un pool di forza lavoro separato per gli utenti della forza lavoro dell'organizzazione di esempio del partner in modo che possa gestirlo. L'organizzazione di esempio aziendale fornisce il pool di forza lavoro a un amministratore dell'organizzazione di esempio del partner. L'amministratore dell'organizzazione di esempio del partner utilizza il proprio IdP per concedere l'accesso alla propria forza lavoro.

A questo scopo, l'amministratore dell'organizzazione di esempio di Enterprise esegue le seguenti attività:

  1. Crea un'identità come partner-organization-admin@example.com per l'amministratore dell'organizzazione di esempio del partner nell'IdP dell'organizzazione di esempio dell'organizzazione già configurata nel pool denominato enterprise-example-organization-employees.

  2. Crea un nuovo pool di forza lavoro denominato example-organization-partner.

  3. Crea il seguente criterio IAM per il pool example-organization-partner:

    {
      "bindings": [
        {
          "role": "roles/iam.workforcePoolEditor",
          "members": [
            "principalSet://iam.googleapis.com/locations/global/workforcePools/enterprise-example-organization-employees/subject/partner-organization-admin@example.com",
          ]
        }
      ]
    }
    
  4. Concedi i ruoli per il pool example-organization-partner nelle risorse a cui devono accedere nell'organizzazione dell'organizzazione di esempio aziendale.

Ora l'amministratore dell'organizzazione di esempio del partner può configurare il pool example-organization-partner per la connessione all'IdP. Possono quindi consentire alla forza lavoro dell'organizzazione di esempio del partner di accedere con le credenziali IdP dell'organizzazione del partner di esempio. Dopo l'accesso, gli utenti della forza lavoro dell'organizzazione di esempio del partner possono accedere alle risorse Google Cloud, vincolate da criteri definiti dall'organizzazione di esempio di Enterprise.

Gestione degli accessi semplificata

Nelle grandi aziende, gli amministratori IT spesso creano gruppi di sicurezza nell'ambito di un modello di controllo dell'accesso delle best practice. I gruppi di sicurezza regolano l'accesso alle risorse interne. Inoltre, le società spesso creano gruppi aggiuntivi per i dipendenti e altri per i partner per estendere questo modello di controllo dell'accesso alle risorse cloud. Ciò può portare alla proliferazione di gruppi che presentano un alto grado di nidificazione, che può diventare molto difficile da gestire.

La tua organizzazione potrebbe anche disporre di criteri che limitano il numero di gruppi che puoi creare per mantenere la gerarchia della directory degli utenti ragionevolmente ragionevole. Una soluzione migliore per prevenire la configurazione errata dei criteri IAM e limitare la crescita dei gruppi consiste nell'utilizzare più pool per creare una separazione più ampia degli utenti da unità organizzative e unità aziendali diverse e organizzazioni partner. Puoi quindi fare riferimento a questi pool e a questi gruppi contenuti all'interno di questi pool per definire i criteri IAM (vedi gli esempi nel passaggio "Configurazione di IAM").

Limitazioni di Controlli di servizio VPC

La federazione delle identità della forza lavoro, le API di configurazione dei pool di forza lavoro e le API del servizio token di sicurezza non supportano i Controlli di servizio VPC. Tuttavia, i prodotti Google Cloud a cui gli utenti del pool di forza lavoro possono accedere possono supportare i Controlli di servizio VPC. Per scoprire di più, consulta la pagina Prodotti e limitazioni supportati di Controlli di servizio VPC.

Passaggi successivi