Dans Google Cloud Search, les accès sont contrôlés en fonction du compte Google des utilisateurs. Lors de l'indexation du contenu, toutes les LCA des éléments doivent être associées à des ID d'utilisateurs ou de groupes Google valides (adresses e-mail).
Souvent, les dépôts ne reconnaissent pas directement les comptes Google. car les utilisateurs passent par un compte local ou une connexion fédérée avec un fournisseur d'identité. Cette identification, autre que l'adresse e-mail, est appelée ID externe.
Afin de remédier à ces différences entre les systèmes d'identité, vous pouvez créer des sources d'identité dans la console d'administration. Pour ce faire :
- Définissez un champ d'utilisateur personnalisé pour stocker les ID externes. Ce champ permet d'associer les ID externes à un compte Google.
- Définir un espace de noms pour les groupes de sécurité gérés par un dépôt ou un fournisseur d'identité.
Utilisez des sources d'identité si :
- Le dépôt ne connaît pas l'adresse e-mail principale de l'utilisateur dans Google Workspace ou l'annuaire Google Cloud.
- Le dépôt définit des groupes de contrôle d'accès qui ne correspondent pas aux groupes de messagerie dans Google Workspace.
Les sources d'identité améliorent l'efficacité en dissociant l'indexation du mappage d'identité. Cela vous permet de différer la recherche d'utilisateur lorsque vous créez des LCA et indexez des éléments.
Exemple de déploiement
La figure 1 montre une entreprise qui utilise des dépôts sur site et dans le cloud. Chacun utilise un type d'ID externe différent.
Le dépôt 1 identifie les utilisateurs par adresse e-mail à l'aide de SAML. Comme il connaît l'adresse e-mail principale dans Google Workspace ou Cloud Directory, il n'a pas besoin de source d'identité.
Le dépôt 2 est intégré à un dépôt sur site et identifie les utilisateurs par sAMAccountName. Comme il utilise cet attribut en tant qu'ID externe, il nécessite une source d'identité.
Créer une source d'identité
Si vous avez besoin d'une source d'identité, consultez Associer des identités d'utilisateur dans Cloud Search.
Créez la source d'identité avant de créer un connecteur de contenu. Vous aurez besoin de son ID pour créer des LCA et indexer les données. La création d'une source d'identité entraîne également l'ajout d'une propriété utilisateur personnalisée dans l'annuaire cloud pour stocker les ID externes. Le nom de la propriété suit la convention IDENTITY_SOURCE_ID_identity.
Ce tableau contient deux sources d'identité : une pour les noms de compte SAM et une pour les ID utilisateur (uid).
| Source d'identité | Propriété utilisateur | ID externe |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Créez une source d'identité pour chaque type d'ID externe utilisé dans votre entreprise.
Dans cet autre exemple, l'utilisateur dispose d'un compte Google et de deux ID externes. Le tableau montre comment leurs valeurs apparaissent dans Cloud Directory :
| Utilisateur | id1_identity |
id2_identity |
|
|---|---|---|---|
| Anne | ann@example.com |
example\ann |
1001 |
Lors de l'établissement de LCA pour l'indexation, vous pouvez utiliser l'un de ces ID pour identifier un même utilisateur.
Rédiger des LCA utilisateur
Utilisez getUserPrincipal() ou getGroupPrincipal() pour créer des comptes principaux à l'aide d'ID externes.
Cet exemple récupère les autorisations d'accès aux fichiers, y compris les utilisateurs ayant accès aux fichiers :
Cet extrait crée des comptes principaux pour les propriétaires à l'aide de l'attribut externalUserName :
Cet extrait crée des comptes principaux pour les lecteurs :
Une fois que vous avez identifié les lecteurs et propriétaires des fichiers, créez la liste de contrôle d'accès :
L'API REST utilise le format identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
Le id1_identity d'Anne est résolu en identitysources/id1_identity/users/example/ann. Il s'agit de l'ID intermédiaire de l'utilisateur.
Pour en savoir plus sur la modélisation des LCA de dépôt, consultez LCA.
Mapper les groupes
Les sources d'identité servent également d'espaces de noms pour les groupes de listes de contrôle d'accès. Utilisez cette fonctionnalité pour créer et mapper des groupes utilisés uniquement à des fins de sécurité ou des groupes locaux d'un dépôt.
Utilisez l'API Cloud Identity Groups pour créer des groupes et gérer les membres. Associez le groupe à une source d'identité en utilisant le nom de la source d'identité comme espace de noms.
Cet extrait crée un groupe :
Créer une LCA de groupe
Utilisez getGroupPrincipal() pour créer un compte principal de groupe avec un ID externe, puis créez la LCA :
Connecteurs d'identité
Les utilisateurs ne peuvent pas voir les éléments dans les résultats de recherche tant que leurs ID externes ne sont pas associés à un ID Google dans Cloud Directory. Pour ce faire, vous avez le choix entre trois méthodes :
- Mettre à jour manuellement les profils utilisateur dans la console d'administration (recommandé uniquement pour les tests).
- Mappez les ID à l'aide de l'API Directory.
- Créez un connecteur d'identité à l'aide du SDK Identity Connector.
Les connecteurs d'identité mappent les ID externes des identités d'entreprise aux identités Google internes. Si vous créez une source d'identité, vous devez également créer un connecteur d'identité.
Google Cloud Directory Sync (GCDS) est un exemple de connecteur d'identité. Il mappe les informations sur les utilisateurs et les groupes d'Active Directory vers Cloud Directory.
Synchroniser les identités à l'aide de l'API REST
Utilisez la méthode update pour synchroniser les identités.
Remapper des identités
Après avoir remappé une identité, vous devez réindexer les éléments pour que la modification prenne effet.
- Si vous supprimez ou modifiez un mappage utilisateur, le mappage d'origine reste en place jusqu'à la réindexation.
- Si vous supprimez un groupe mappé et que vous en créez un autre avec le même
groupKey, l'accès ne sera pas accordé tant que vous n'aurez pas réindexé.