Il controllo dell'accesso in Google Cloud Search si basa sull'Account Google dell'utente. Quando indicizzi i contenuti, tutti gli ACL degli elementi devono essere risolti in ID utente o gruppo Google validi (indirizzi email).
In molti casi, un repository non ha una conoscenza diretta degli Account Google. Invece, gli account locali rappresentano gli utenti oppure gli utenti utilizzano l'accesso federato con un provider di identità. Questa identificazione, diversa dall'indirizzo email, è chiamata ID esterno.
Create utilizzando la Console di amministrazione, le origini identità colmano il divario tra i sistemi di identità:
- Definendo un campo utente personalizzato per archiviare gli ID esterni. Questo campo risolve gli ID esterni in un Account Google.
- Definendo uno spazio dei nomi per i gruppi di sicurezza gestiti da un repository o da un provider di identità.
Utilizza le origini identità quando:
- Il repository non conosce l'indirizzo email principale dell'utente in Google Workspace o nella directory Google Cloud.
- Il repository definisce gruppi di controllo dell'accesso che non corrispondono ai gruppi basati su email in Google Workspace.
Le origini identità migliorano l'efficienza disaccoppiando l'indicizzazione dalla mappatura delle identità. In questo modo puoi rimandare la ricerca degli utenti durante la creazione di ACL e l'indicizzazione degli elementi.
Esempio di deployment
La Figura 1 mostra un'azienda che utilizza repository on-premise e cloud. Ognuno utilizza un tipo diverso di ID esterno.
Il repository 1 identifica gli utenti tramite indirizzo email utilizzando SAML. Poiché conosce l'indirizzo email principale in Google Workspace o nella directory cloud, non ha bisogno di un'origine identità.
Il repository 2 si integra con una directory on-premise e identifica gli utenti tramite sAMAccountName. Poiché utilizza questo attributo come ID esterno, richiede un'origine identità.
Creare un'origine identità
Se hai bisogno di un'origine identità, consulta Mappare le identità utente in Cloud Search.
Crea l'origine identità prima di creare un connettore di contenuti; ti serve il suo ID per creare ACL e indicizzare i dati. La creazione di un'origine identità crea anche una
proprietà utente personalizzata
nella directory cloud per archiviare gli ID esterni. Il nome della proprietà utilizza la
convenzione IDENTITY_SOURCE_ID_identity.
Questa tabella mostra due origini identità: una per i nomi degli account SAM e una per gli ID utente (uid).
| Origine identità | Proprietà utente | ID esterno |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Crea un'origine identità per ogni tipo di ID esterno utilizzato nella tua azienda.
Questa tabella mostra come un utente con un Account Google e due ID esterni viene visualizzato nella directory cloud:
| Utente | id1_identity |
id2_identity |
|
|---|---|---|---|
| Anna | ann@example.com |
example\ann |
1001 |
Puoi fare riferimento allo stesso utente utilizzando uno di questi ID quando crei gli ACL per l'indicizzazione.
Scrivere ACL utente
Utilizza
getUserPrincipal()
o
getGroupPrincipal()
per creare entità utilizzando ID esterni.
Questo esempio recupera le autorizzazioni dei file, inclusi gli utenti con accesso:
Questo snippet crea entità per i proprietari utilizzando l'attributo externalUserName:
Questo snippet crea entità per i lettori:
Una volta che hai lettori e proprietari, crea l'ACL:
L'API REST utilizza il pattern
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
id1_identity di Ann viene risolto in
identitysources/id1_identity/users/example/ann. Questo è l'ID intermedio dell'utente.
Per saperne di più sulla modellazione degli ACL dei repository, consulta ACL.
Mappare i gruppi
Le origini identità fungono anche da spazio dei nomi per i gruppi ACL. Utilizzalo per creare e mappare i gruppi utilizzati solo per la sicurezza o locali a un repository.
Utilizza l'API Cloud Identity Groups per creare gruppi e gestire le iscrizioni. Associa il gruppo a un'origine identità utilizzando il nome dell'origine identità come spazio dei nomi.
Questo snippet crea un gruppo:
Creare un ACL di gruppo
Utilizza getGroupPrincipal()
per creare un'entità gruppo con un ID esterno, quindi crea l'ACL:
Connettori di identità
Gli utenti non possono visualizzare gli elementi nei risultati di ricerca finché i loro ID esterni non vengono risolti in un ID Google nella directory cloud. Puoi assicurarti che ciò avvenga in tre modi:
- Aggiorna manualmente i profili utente nella Console di amministrazione (consigliato solo per i test).
- Mappa gli ID utilizzando l'API Directory.
- Crea un connettore di identità utilizzando l'SDK Identity Connector.
I connettori di identità mappano gli ID esterni delle identità aziendali con le identità Google interne. Se crei un'origine identità, devi creare anche un connettore di identità.
Google Cloud Directory Sync (GCDS) è un esempio di connettore di identità. Mappa le informazioni di utenti e gruppi da Active Directory alla directory cloud.
Sincronizzare le identità utilizzando l'API REST
Utilizza il update metodo
per sincronizzare le identità.
Rimappare le identità
Dopo aver rimappato un'identità, devi reindicizzare gli elementi affinché la modifica venga applicata.
- Se rimuovi o modifichi una mappatura utente, la mappatura originale rimane fino alla reindicizzazione.
- Se elimini un gruppo mappato e ne crei uno nuovo con la stessa
groupKey, non concederà l'accesso finché non reindicizzi.