Il controllo dell'accesso in Google Cloud Search si basa sull'Account Google dell'utente. Durante l'indicizzazione dei 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 conoscenza diretta degli Account Google. Invece, gli account locali rappresentano gli utenti o 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à:
- Definizione di un campo utente personalizzato per memorizzare gli ID esterni. Questo campo risolve gli ID esterni in un Account Google.
- Definizione di 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 Google Cloud Directory.
- Il repository definisce gruppi di controllo dell'accesso che non corrispondono a gruppi basati su email in Google Workspace.
Le origini identità migliorano l'efficienza separando l'indicizzazione dalla mappatura delle identità. Ciò consente di posticipare la ricerca utente durante la creazione di ACL e l'indicizzazione degli elementi.
Implementazione di esempio
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 Cloud Directory, non ha bisogno di un'origine identità.
Il repository 2 si integra con una directory on-premise e identifica gli utenti in base a
sAMAccountName. Poiché utilizza questo attributo come ID esterno, richiede un'origine identità.
Crea un'origine identità
Se hai bisogno di un'origine identità, consulta Mappare le identità degli utenti in Cloud Search.
Crea l'origine identità prima di creare un connettore di contenuti. Hai bisogno del suo
ID per creare ACL e indicizzare i dati. La creazione di un'origine identità crea anche una
proprietà utente personalizzata
in Cloud Directory 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 viene visualizzato in Cloud Directory un utente con un Account Google e due ID esterni:
| Utente | id1_identity |
id2_identity |
|
|---|---|---|---|
| Anna | ann@example.com |
example\ann |
1001 |
Puoi fare riferimento allo stesso utente utilizzando uno qualsiasi di questi ID quando formi ACL per l'indicizzazione.
Scrivere ACL utente
Utilizza
getUserPrincipal()
o
getGroupPrincipal()
per creare principal utilizzando ID esterni.
Questo esempio recupera le autorizzazioni per i file, inclusi gli utenti con accesso:
Questo snippet crea principal per i proprietari utilizzando l'attributo externalUserName:
Questo snippet crea i principal per i lettori:
Una volta aggiunti i lettori e i proprietari, crea l'ACL:
L'API REST utilizza il pattern
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
Il valore id1_identity di Anna viene risolto in
identitysources/id1_identity/users/example/ann. Questo è l'ID intermedio dell'utente.
Per saperne di più sulla modellazione degli ACL del repository, consulta la sezione ACL.
Gruppi di mappe
Le origini identità fungono anche da spazio dei nomi per i gruppi ACL. Utilizzalo per creare e mappare gruppi utilizzati solo per la sicurezza o locali a un repository.
Utilizza l'API Cloud Identity Groups per creare gruppi e gestire le appartenenze. Associa il gruppo a un'origine identità utilizzando il nome dell'origine identità come spazio dei nomi.
Questo snippet crea un gruppo:
Creare un elenco di controllo dell'accesso di gruppo
Utilizza getGroupPrincipal()
per creare un principal di 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 in Cloud Directory. 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 delle 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 a Cloud Directory.
Sincronizzare le identità utilizzando l'API REST
Utilizza il metodo update
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 un mapping utente, il mapping originale rimane fino alla reindicizzazione.
- Se elimini un gruppo mappato e ne crei uno nuovo con lo stesso
groupKey, non verrà concesso l'accesso finché non viene eseguita la reindicizzazione.