Se il tuo provider di identità (IdP) supporta SCIM (System for Cross-domain Identity Management), 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 dei criteri, 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 Gemini Notebook 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. Poiché un tenant SCIM viene creato in un provider di pool di identità della forza lavoro specifico, solo quel provider può utilizzare SCIM per i gruppi. Non puoi attivare l'utilizzo di SCIM (
--scim-usage=enabled-for-groupso--scim-usage=enabled-for-users-groups) su nessun altro provider nello stesso pool. Per configurare un nuovo tenant SCIM nello stesso pool di identità della forza lavoro, devi prima eliminare quello esistente. Per eliminare un tenant SCIM, utilizza uno dei seguenti metodi:- 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 un tenant SCIM in modo permanente e immediato, utilizza il flag
--hard-deletecon il comando delete. Questa azione è irreversibile e ti consente di creare immediatamente un nuovo tenant SCIM nello stesso pool di identità della forza lavoro dopo il completamento dell'eliminazione. In alternativa, puoi creare un nuovo pool di identità della forza lavoro e un nuovo tenant SCIM o utilizzare un pool di identità della forza lavoro che non è stato configurato in precedenza con un tenant SCIM.
- Quando utilizzi SCIM, esegui il mapping degli attributi sia nel provider del pool di identità della forza lavoro sia nel tenant SCIM. L'attributo
google.subjectdeve fare riferimento in modo univoco alle stesse identità. Specifichigoogle.subjectnel provider del pool di identità della forza lavoro utilizzando il flag--attribute-mappinge nel tenant SCIM utilizzando il flag--claim-mapping. Il mapping di valori di identità non univoci può far sì che Google Cloud consideri identità IdP diverse come la stessa identità. 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(o--scim-usage=enabled-for-users-groups) sul provider del pool di identità della forza lavoro a cui è collegato il tenant SCIM. Quando esegui il mapping dei gruppi utilizzando SCIM, qualsiasi mapping di gruppi definito in quel provider viene ignorato a favore dei gruppi gestiti da SCIM. Quando fai riferimento ai gruppi gestiti da SCIM, l'attributo mappato ègoogle.group, nongoogle.groups.google.groupssi riferisce solo ai gruppi mappati con i token. Se attivi l'utilizzo di SCIM su un provider a cui non è collegato un tenant SCIM, i tentativi di accesso tramite quel provider non vanno a buon fine in fase di runtime perché Google Cloud non riesce a trovare un tenant SCIM nel percorso del provider. - Applicazione dell'unicità: Google Cloud convalida e applica
l'unicità degli attributi mappati a
google.subject(utenti) egoogle.group(gruppi) in un tenant SCIM. Se gli attributi mappati di cui è stato eseguito il provisioning dal tuo IdP generano valori duplicati pergoogle.subjectogoogle.groupdurante la sincronizzazione, il provisioning non va a buon fine e viene restituito un errore HTTP409 Conflict. Se un attributo mappato restituisce un valore nullo o vuoto, il provisioning non va a buon fine e viene restituito un errore HTTP400 Bad Request. - Quando utilizzi SCIM, gli attributi basati su token mappati con
--attribute-mappingpossono comunque essere utilizzati per l'autenticazione e negli identificatori principali. - Per la configurazione di Microsoft Entra ID, per attivare i nomi dei gruppi leggibili in Gemini Enterprise, utilizza SCIM.
- L'API SCIM (
iamscim.googleapis.com) è soggetta a quote di frequenza diverse dalle quote API delle risorse IAM standard. Per impostazione predefinita, le richieste di scrittura e lettura sono limitate a 3000 richieste al minuto per tenant SCIM per organizzazione. Per saperne di più, consulta Quote e limiti.
Mapping dei provider OIDC e SAML alla configurazione SCIM
Deve esserci coerenza tra il mapping degli attributi nella configurazione del provider del pool di identità della forza lavoro (--attribute-mapping) e i mapping delle attestazioni nel tenant SCIM (--claim-mapping). L'attributo IdP sottostante utilizzato per popolare google.subject (per gli utenti) deve essere lo stesso, sia che venga letto da un'attestazione del token sia da un attributo SCIM.
Se questi mapping 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 i mapping tra gli attributi delle attestazioni dei token e gli attributi SCIM:
| Attributo Google | Mapping del provider del pool di identità della forza lavoro | Mapping 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,PatchePut./Groups: gestisci le risorse di gruppo. Operazioni supportate:Create,Get,Update,DeleteePatch. Il metodoPUTnon è 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 dalle specifiche SCIM (RFC 7643 e 7644).
Limitazioni delle funzionalità del protocollo
Supporto dei filtri: quando elenchi utenti o gruppi utilizzando gli endpoint
/Userso/Groups, le espressioni di filtro supportano solo l'operatoreeq(uguale a). Puoi combinare più filtrieqconand. Altri operatori di filtro SCIM, comeco(contiene) osw(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 è sempre1. L'API restituisce fino a 100 risultati indipendentemente dal valore fornito perstartIndex.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 campototalResultsnella risposta è sempre uguale al numero di elementi restituiti nella risposta, con un massimo di 100.
Get Group e List Groups senza filtro: le API
GetGroupeListGroupsrestituiscono un elenco di membri vuoto. Per recuperare i membri di un gruppo specifico, utilizza l'APIListGroupscon 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 errorda 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.subjectogoogle.groupvengono 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.subjectegoogle.groupin un tenant SCIM. La sincronizzazione degli attributi mappati che generano valori duplicati pergoogle.subjectogoogle.groupnon va a buon fine e viene restituito un errore HTTP409 Conflict. Gli attributi mappati che restituiscono un valore nullo o vuoto non vanno a buon fine e viene restituito un errore HTTP400 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 andranno a buon fine se il tuo IdP invia più email o se la singola email fornita non è di tipowork.Trasformazioni senza distinzione tra maiuscole e minuscole: per i mapping delle attestazioni SCIM sono supportate trasformazioni CEL (Common Expression Language) limitate. Per i confronti senza distinzione tra maiuscole e minuscole per
user.userNameeuser.emails[0].valueè supportato solo.lowerAscii().
Limitazioni degli attributi
Le seguenti sezioni descrivono il supporto degli attributi per utenti, gruppi e l'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 | Sì | N/D |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Sì | N/A |
displayName |
N/D | Sì | N/A |
nickName |
N/D | Sì | N/A |
profileUrl |
N/D | Sì | N/A |
title |
N/D | Sì | N/A |
userType |
N/D | Sì | N/A |
preferredLanguage |
N/D | Sì | N/A |
locale |
N/D | Sì | N/A |
timezone |
N/D | Sì | N/A |
active |
N/D | Sì | N/A |
password |
N/D | No | N/D |
emails |
display, type, value, primary |
Sì | È supportato solo il tipo di email work. |
phoneNumbers |
display, type, value, primary |
Sì | N/D |
ims |
display, type, value |
Sì | N/D |
photos |
display, type, value |
Sì | N/D |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Sì | N/A |
groups |
N/D | No | N/D |
entitlements |
display, type, value |
Sì | N/D |
roles |
type, value |
Sì | display non è supportato. |
x509Certificates |
type, value |
Sì | 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
- Configurare il supporto SCIM per la federazione delle identità per la forza lavoro
- Registrazione degli audit SCIM IAM