Il controllo dell'accesso in Google Cloud Search si basa sull'Account Google dell'utente. Durante l'indicizzazione dei contenuti, tutti gli elenchi di controllo dell'accesso 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. Gli utenti possono invece essere rappresentati da account locali o utilizzare l'accesso federato con un provider di identità e un ID diverso dall'indirizzo email dell'utente per identificare ogni account. Questo ID è chiamato ID esterno.
Create utilizzando la Console di amministrazione, le origini identità contribuiscono a colmare questo divario tra i sistemi di identità:
- Definizione di un campo utente personalizzato per memorizzare gli ID esterni. Il campo viene utilizzato per risolvere gli ID esterni in un account Google.
- Definisci 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 per il controllo dell'accesso che non corrispondono a gruppi basati su email in Google Workspace.
Le origini identità migliorano l'efficienza dell'indicizzazione separando l'indicizzazione dalla mappatura delle identità. Questo disaccoppiamento ti consente di posticipare la ricerca dell'utente durante la creazione di ACL e l'indicizzazione degli elementi.
Esempio di deployment
La figura 1 mostra un esempio di deployment in cui un'azienda utilizza repository on-premise e cloud. Ogni repository utilizza un tipo diverso di ID esterno per fare riferimento agli utenti.

Il repository 1 identifica l'utente utilizzando l'indirizzo email asserito tramite SAML. Poiché il repository 1 conosce l'indirizzo email principale dell'utente in Google Workspace o Cloud Directory, non è necessaria un'origine identità.
Il repository 2 si integra direttamente con una directory on-premise e
identifica l'utente in base al suo attributo sAMAccountName
. Poiché il repository 2
utilizza un attributo sAMAccountName
come ID esterno, è necessaria
un'origine identità.
Crea un'origine identità
Se hai bisogno di un'origine identità, consulta Mappare le identità degli utenti in Cloud Search.
Devi creare un'origine identità prima di creare un connettore di contenuti perché
avrai bisogno dell'ID origine identità per creare ACL e indicizzare i dati. Come accennato
in precedenza, la creazione di un'origine identità crea anche una
proprietà utente personalizzata
in Cloud Directory. Utilizza questa proprietà per registrare l'ID esterno di ogni
utente nel tuo repository. La proprietà viene denominata utilizzando la convenzione IDENTITY_SOURCE_ID_identity
.
La tabella seguente mostra due origini identità, una per contenere i nomi degli account SAM (sAMAccountName) come ID esterni e una per contenere gli ID utente (uid) come ID esterni.
Origine identità | proprietà utente | ID esterno |
---|---|---|
id1 | id1_identity | sAMAccountName |
id2 | id2_identity | uid |
Crea un'origine identità per ogni ID esterno possibile utilizzato per fare riferimento a un utente nella tua azienda.
La seguente tabella mostra come un utente con un Account Google e due ID esterni (id1_identity e id2_identity) e i relativi valori vengono visualizzati in Cloud Directory:
utente | id1_identity | id2_identity | |
---|---|---|---|
Anna | ann@example.com | esempio\ann | 1001 |
Puoi fare riferimento allo stesso utente utilizzando i tre ID diversi (email Google, sAMAccountName e uid) quando formi le ACL per l'indicizzazione.
Scrivere ACL utente
Utilizza il metodo getUserPrincpal() o il metodo getGroupPrincipal() per creare principal utilizzando un ID esterno fornito.
Il seguente esempio mostra come recuperare le autorizzazioni dei file. Queste autorizzazioni includono il nome di ogni utente che ha accesso al file.
Il seguente snippet di codice mostra come creare principal proprietari
utilizzando l'ID esterno (externalUserName
) memorizzato negli attributi.
Infine, il seguente snippet di codice mostra come creare i principali che sono lettori del file.
Una volta che hai un elenco di lettori e proprietari, puoi creare l'ACL:
L'API REST sottostante utilizza il pattern
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID
per l'ID durante la creazione delle entità. Se torniamo alle tabelle precedenti,
se crei un ACL con id1_identity
(SAMAccountName) di Anna, l'ID
verrà risolto in:
identitysources/id1_identity/users/example/ann
Questo ID completo è chiamato ID intermedio dell'utente perché funge da ponte tra l'ID esterno e gli ID Google archiviati con Cloud Directory.
Per ulteriori informazioni sulla modellazione degli ACL utilizzati per un repository, vedi ACL.
Gruppi di mappe
Le origini identità fungono anche da spazio dei nomi per i gruppi utilizzati negli elenchi di controllo dell'accesso. Puoi utilizzare questa funzionalità dello spazio dei nomi per creare e mappare gruppi utilizzati solo per scopi di sicurezza o locali a un repository.
Utilizza l'API Cloud Identity Groups per creare un gruppo e gestire le iscrizioni. Per associare il gruppo a un'origine identità, utilizza il nome della risorsa dell'origine identità come spazio dei nomi del gruppo.
Il seguente snippet di codice mostra come creare un gruppo utilizzando l'API Cloud Identity Groups:
Creare un ACL di gruppo
Per creare un ACL di gruppo, utilizza il metodo getGroupPrincipal() per creare un principal di gruppo utilizzando un ID esterno fornito. Poi crea la ACL utilizzando la classe Acl.Builder come segue:
Connettori di identità
Sebbene tu possa utilizzare ID esterni non Google per creare ACL e indicizzare elementi, gli utenti non possono visualizzare gli elementi in una ricerca finché i loro ID esterni non vengono risolti in un ID Google in Cloud Directory. Esistono tre modi per assicurarsi che Cloud Directory conosca sia l'ID Google sia gli ID esterni di un utente:
- Aggiorna manualmente ogni singolo profilo utente tramite la Console di amministrazione. Questo processo è consigliato solo per test e prototipazione utilizzando alcuni profili utente.
- Mappa gli ID esterni agli ID Google utilizzando l'API Directory. Questo processo è consigliato per chi non può utilizzare l'SDK Identity Connector.
- Crea un connettore di identità utilizzando l'SDK Identity Connector. Questo SDK semplifica l'utilizzo dell'API Directory per mappare gli ID.
I connettori di identità sono programmi utilizzati per mappare gli ID esterni delle identità aziendali (utenti e gruppi) alle identità Google interne utilizzate da Google Cloud Search. Se devi creare un'origine identità, devi creare un connettore di identità.
Google Cloud Directory Sync (GCDS) è un esempio di connettore di identità. Questo connettore di identità mappa le informazioni di utenti e gruppi da Active Directory di Microsoft a Cloud Directory insieme agli attributi utente che possono rappresentare la loro identità in altri sistemi.
Sincronizzare le identità utilizzando l'API REST
Utilizza il metodo update
per sincronizzare le identità utilizzando l'API REST.
Rimappatura delle identità
Dopo aver rimappato l'identità di un elemento a un'altra identità, devi reindicizzare gli elementi affinché la nuova identità venga applicata. Ad esempio,
- Se provi a rimuovere una mappatura da un utente o a rimapparla a un altro utente, la mappatura originale viene comunque conservata fino alla reindicizzazione.
- Se elimini un gruppo mappato presente in un ACL di un elemento e poi crei un
nuovo gruppo con lo stesso
groupKey
, il nuovo gruppo non fornisce l'accesso all'elemento finché l'elemento non viene reindicizzato.