Provisioning SCIM per la federazione delle identità per la forza lavoro

Se il tuo provider di identità (IdP) supporta il System for Cross-domain Identity Management (SCIM), puoi configurarlo per eseguire il provisioning e gestire i gruppi in Google Cloud.

Funzionalità

Il supporto SCIM per la federazione delle identità per la forza lavoro offre le seguenti funzionalità:

  • Sincronizzazione delle identità: sincronizza le copie di sola lettura dei dati utente dal tuo IdP per ottenere una visione olistica delle proprietà e delle appartenenze degli utenti in Google Cloud.

  • Appiattimento dei gruppi: SCIM elabora i gruppi dal tuo IdP in modo che tutte le appartenenze dirette e indirette (nidificate) di un utente vengano appiattite e sincronizzate con il Google Cloud servizio di appartenenza ai gruppi (GMS). IAM utilizza quindi questi gruppi appiattiti per i controlli delle policy, superando i vincoli di dimensione spesso presenti nei token IdP.

  • Integrazione di Gemini Enterprise: i tenant SCIM supportano la condivisione in Gemini Enterprise. Il tenant SCIM abilita due funzionalità correlate alla condivisione dei notebook in NotebookLM Enterprise:

    • Completamento automatico per indirizzi email e gruppi

    • L'utilizzo del nome del gruppo anziché del relativo ID oggetto (UUID)

    Per saperne di più, vedi Condividere un notebook con un gruppo.

Considerazioni

Quando utilizzi il supporto SCIM per la federazione delle identità per la forza lavoro, tieni presente quanto segue:

  • Prima di configurare un tenant SCIM, devi configurare un provider e un pool di identità della forza lavoro.
  • Ogni pool di identità della forza lavoro supporta un solo tenant SCIM. Per configurare un nuovo tenant SCIM nello stesso pool di identità della forza lavoro, devi prima eliminare quello esistente. Quando elimini un tenant SCIM, hai due opzioni:
    • Eliminazione temporanea (impostazione predefinita): l'eliminazione di un tenant SCIM avvia un periodo di eliminazione temporanea di 30 giorni. Durante questo periodo, il tenant è nascosto e non può essere utilizzato e non puoi creare un nuovo tenant SCIM nello stesso pool di identità della forza lavoro.
    • Eliminazione definitiva: per eliminare in modo permanente e immediato un tenant SCIM, utilizza il flag --hard-delete con il comando delete. Questa azione è irreversibile e ti consente di creare immediatamente un nuovo tenant SCIM nello stesso pool di identità della forza lavoro al termine dell'eliminazione. In alternativa, puoi creare un nuovo pool di identità della forza lavoro e un nuovo tenant SCIM oppure utilizzare un pool di identità della forza lavoro che non è stato configurato in precedenza con un tenant SCIM.
  • Quando utilizzi SCIM, esegui la mappatura degli attributi sia nel provider del pool di identità della forza lavoro sia nel tenant SCIM. L'attributo google.subject deve fare riferimento in modo univoco alle stesse identità. Specifichi google.subject nel provider del pool di identità della forza lavoro utilizzando il flag --attribute-mapping e nel tenant SCIM utilizzando il flag --claim-mapping. La mappatura di valori di identità non univoci può far sì che venga trattato come la stessa identità. Google Cloud Di conseguenza, l'accesso concesso a un'identità utente o di gruppo può estendersi ad altre, ma la revoca dell'accesso da una potrebbe non rimuoverlo da tutte.
  • Per utilizzare SCIM per mappare i gruppi, imposta --scim-usage=enabled-for-groups. Quando esegui la mappatura dei gruppi utilizzando SCIM, qualsiasi mappatura dei gruppi definita nel provider del pool di identità della forza lavoro viene ignorata. Quando fai riferimento a gruppi gestiti da SCIM, l'attributo mappato è google.group, non google.groups. google.groups si riferisce solo ai gruppi mappati con i token.
  • Applicazione dell'unicità: Google Cloud convalida e applica l'unicità degli attributi mappati a google.subject (utenti) e google.group (gruppi) in un tenant SCIM. Se gli attributi mappati di cui è stato eseguito il provisioning dal tuo IdP generano valori duplicati per google.subject o google.group durante la sincronizzazione, il provisioning non riesce e viene restituito un errore HTTP 409 Conflict. Se un attributo mappato restituisce un valore nullo o vuoto, il provisioning non riesce e viene restituito un errore HTTP 400 Bad Request.
  • Quando utilizzi SCIM, gli attributi basati su token mappati con --attribute-mapping possono comunque essere utilizzati per l'autenticazione e negli identificatori principali.
  • Per la configurazione di Microsoft Entra ID, per abilitare i nomi dei gruppi leggibili in Gemini Enterprise, utilizza SCIM.

Mappare i provider OIDC e SAML alla configurazione SCIM

Deve esserci coerenza tra la mappatura degli attributi nella configurazione del provider del pool di identità della forza lavoro (--attribute-mapping) e le mappature delle attestazioni nel tenant SCIM (--claim-mapping). L'attributo IdP sottostante utilizzato per popolare google.subject (per gli utenti) deve essere lo stesso, indipendentemente dal fatto che venga letto da un'attestazione del token o da un attributo SCIM.

Se queste mappature non sono coerenti, gli utenti potrebbero essere in grado di accedere, ma non verranno riconosciuti come membri dei gruppi di cui è stato eseguito il provisioning SCIM. Ad esempio, se il provider utilizza assertion.email per google.subject, anche il tenant SCIM deve utilizzare l'attributo SCIM equivalente (ad esempio, user.emails[0].value) per google.subject.

La seguente tabella mostra le mappature tra gli attributi delle attestazioni dei token e gli attributi SCIM:

Attributo Google Mappatura del provider del pool di identità della forza lavoro Mappatura del tenant SCIM (SCIM)
google.subject assertion.oid (EntraId) user.externalId
google.subject assertion.sub (Okta) user.externalId
google.subject assertion.preferred_username user.userName
google.subject assertion.preferred_username.lowerAscii() user.userName.lowerAscii()
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.group N/D (mappato utilizzando SCIM) group.externalId

Endpoint supportati e non supportati

Sono supportati i seguenti endpoint del protocollo SCIM standard:

  • /Users: gestisci le risorse utente. Operazioni supportate: Create, Get, Update, Delete, Patch e Put.

  • /Groups: gestisci le risorse di gruppo. Operazioni supportate: Create, Get, Update, Delete e Patch. Il metodo PUT non è supportato per i gruppi.

  • /Schemas: recupera le informazioni sullo schema.

  • /ServiceProviderConfig: recupera la configurazione del fornitore di servizi.

I seguenti endpoint del protocollo SCIM non sono supportati:

  • /Me

  • /Bulk

  • /Search

  • /ResourceTypes

Limitazioni

Le seguenti sezioni descrivono le limitazioni e le deviazioni dell'implementazione SCIM della federazione delle identità per la forza lavoro rispetto alle specifiche SCIM (RFC 7643 e 7644).

Limitazioni delle funzionalità del protocollo

  • Supporto dei filtri: quando elenchi utenti o gruppi utilizzando gli endpoint /Users o /Groups, le espressioni di filtro supportano solo l'operatore eq (uguale a). Puoi combinare più filtri eq con and. Altri operatori di filtro SCIM, come co (contiene) o sw (inizia con), non sono supportati.

  • Paginazione: l'API SCIM IAM non supporta la paginazione standard per l'elenco di utenti o gruppi.

    • startIndex: questo parametro è sempre 1. L'API restituisce fino a 100 risultati indipendentemente dal valore fornito per startIndex.

    • itemsPerPage: il numero massimo di risorse restituite in una singola risposta è 100.

    • totalResults: l'API non restituisce il conteggio totale effettivo delle risorse corrispondenti. Il campo totalResults nella risposta è sempre uguale al numero di elementi restituiti nella risposta, con un massimo di 100.

  • Get Group e List Groups senza filtro: le API GetGroup e ListGroups restituiscono un elenco di membri vuoto. Per recuperare i membri di un gruppo specifico, utilizza l'API ListGroups con un filtro dei membri.

  • Risposta JSON non conforme con token non validi: le API che contengono un token API non valido generano un 401 HTTP error da Google Cloud. La risposta non è una struttura JSON come richiesto dalle specifiche.

Limitazioni del comportamento SCIM

  • Identificatori immutabili: i valori degli attributi SCIM mappati a google.subject o google.group vengono trattati come identificatori immutabili all'interno di Google Cloud. Se devi modificare questi valori, devi eliminare definitivamente l'utente o il gruppo dal tuo IdP e poi ricrearli con il nuovo valore.

  • Identificatori univoci e non vuoti: Google Cloud applica l'unicità ai valori mappati a google.subject e google.group in un tenant SCIM. La sincronizzazione degli attributi mappati che generano valori duplicati per google.subject o google.group non riesce e viene restituito un errore HTTP 409 Conflict. Gli attributi mappati che restituiscono un valore nullo o vuoto non riescono e viene restituito un errore HTTP 400 Bad Request.

  • Requisito di una singola email: per una sincronizzazione SCIM riuscita, ogni utente deve avere esattamente un indirizzo email di tipo work. Il provisioning o gli aggiornamenti non riusciranno se il tuo IdP invia più email o se la singola email fornita non è di tipo work.

  • Trasformazioni senza distinzione tra maiuscole e minuscole: per le mappature delle attestazioni SCIM sono supportate trasformazioni Common Expression Language (CEL) limitate. Per i confronti senza distinzione tra maiuscole e minuscole per user.userName e user.emails[0].value è supportato solo .lowerAscii().

Limitazioni degli attributi

Le seguenti sezioni descrivono il supporto degli attributi per utenti, gruppi ed estensione dello schema utente aziendale.

Attributi utente

La seguente tabella descrive in dettaglio il supporto per gli attributi utente:

Attributo Attributi secondari Supportato Limitazioni
userName N/D N/D
name formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix N/A
displayName N/D N/A
nickName N/D N/A
profileUrl N/D N/A
title N/D N/A
userType N/D N/A
preferredLanguage N/D N/A
locale N/D N/A
timezone N/D N/A
active N/D N/A
password N/D No N/D
emails display, type, value, primary È supportato solo il tipo di email work.
phoneNumbers display, type, value, primary N/D
ims display, type, value N/D
photos display, type, value N/D
addresses formatted, streetAddress, locality, region, postalCode, country N/A
groups N/D No N/D
entitlements display, type, value N/D
roles type, value display non è supportato.
x509Certificates type, value display non è supportato.

Attributi del gruppo

La seguente tabella descrive in dettaglio il supporto per gli attributi del gruppo:

Attributo Attributi secondari supportati
displayName N/D
externalId N/D
members value, type, $ref, display

Attributi dell'estensione dello schema utente aziendale

La seguente tabella descrive in dettaglio il supporto per l'estensione dello schema utente aziendale:

Attributo Attributi secondari supportati
employeeNumber N/D
costCenter N/D
organization N/D
division N/D
department N/D
manager value, $ref, displayName

Passaggi successivi