O controle de acesso no Google Cloud Search é baseado na Conta do Google do usuário. Ao indexar um conteúdo, é preciso que todas as ACLs dos itens sejam resolvidas para códigos de usuário ou de grupo válidos do Google (endereços de e-mail).
Em muitos casos, um repositório não tem conhecimento direto das Contas do Google. Em vez disso, as contas locais representam usuários, ou os usuários usam o login federado com um provedor de identidade. Essa identificação, que não é o endereço de e-mail, é chamada de ID externo.
Criadas com o Admin Console, as origens de identidade preenchem a lacuna entre os sistemas de identidade:
- Definindo um campo de usuário personalizado para armazenar IDs externos. Esse campo resolve IDs externos para uma Conta do Google.
- Definindo um namespace para grupos de segurança gerenciados por um repositório ou provedor de identidade.
Use origens de identidade quando:
- O repositório não conhece o endereço de e-mail principal do usuário no Google Workspace ou no Google Cloud Directory.
- O repositório define grupos de controle de acesso que não correspondem a grupos baseados em e-mail no Google Workspace.
As origens de identidade melhoram a eficiência ao desvincular a indexação do mapeamento de identidade. Isso permite adiar a pesquisa do usuário ao criar ACLs e indexar itens.
Exemplo de implantação
A Figura 1 mostra uma empresa que usa repositórios locais e na nuvem. Cada um usa um tipo diferente de ID externo.
O repositório 1 identifica os usuários por endereço de e-mail usando o SAML. Como ele conhece o endereço de e-mail principal no Google Workspace ou no Cloud Directory, não precisa de uma origem de identidade.
O repositório 2 se integra a um diretório local e identifica os usuários por sAMAccountName. Como ele usa esse atributo como um ID externo, requer uma origem de identidade.
Criar uma origem de identidade
Se você precisar de uma origem de identidade, consulte Mapear identidades de usuário no Cloud Search.
Crie a origem de identidade antes de criar um conector de conteúdo. Você precisa do ID dela para criar ACLs e indexar dados. A criação de uma origem de identidade também cria uma
propriedade do usuário personalizada
no Cloud Directory para armazenar IDs externos. O nome da propriedade usa a
convenção IDENTITY_SOURCE_ID_identity.
Esta tabela mostra duas origens de identidade: uma para nomes de contas SAM e outra para IDs de usuário (uid).
| Origem de identidade | Propriedade do usuário | ID externo |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Crie uma origem de identidade para cada tipo de ID externo usado na sua empresa.
Esta tabela mostra como um usuário com uma Conta do Google e dois IDs externos aparecem no Cloud Directory:
| Usuário | id1_identity |
id2_identity |
|
|---|---|---|---|
| Ann | ann@example.com |
example\ann |
1001 |
É possível fazer referência ao mesmo usuário usando qualquer um desses IDs ao formar ACLs para indexação.
Escrever ACLs de usuário
Use
getUserPrincipal()
ou
getGroupPrincipal()
para criar principais usando IDs externos.
Este exemplo recupera permissões de arquivo, incluindo usuários com acesso:
Este snippet cria principais para proprietários usando o atributo externalUserName:
Este snippet cria principais para leitores:
Depois de ter leitores e proprietários, crie a ACL:
A API REST usa o padrão
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
O id1_identity de Ann é resolvido para
identitysources/id1_identity/users/example/ann. Esse é o ID intermediário do usuário.
Para mais informações sobre como modelar ACLs de repositório, consulte ACLs.
Mapear grupos
As origens de identidade também servem como namespace para grupos de ACL. Use isso para criar e mapear grupos usados apenas para segurança ou locais em um repositório.
Use a API Cloud Identity Groups (em inglês) para criar grupos e gerenciar associações. Associe o grupo a uma origem de identidade usando o nome da origem de identidade como namespace.
Este snippet cria um grupo:
Criar uma ACL de grupo
Use getGroupPrincipal()
para criar um principal de grupo com um ID externo e, em seguida, crie a ACL:
Conectores de identidade
Os usuários não poderão ver itens nos resultados da pesquisa até que os IDs externos deles sejam resolvidos para um ID do Google no Cloud Directory. É possível garantir isso de três maneiras:
- Atualize manualmente os perfis de usuário no Admin Console (recomendado apenas para testes).
- Mapeie IDs usando a API Directory.
- Crie um conector de identidade usando o SDK do Identity Connector.
Os conectores de identidade mapeiam IDs externos de identidades empresariais para identidades internas do Google. Se você criar uma origem de identidade, também precisará criar um conector de identidade.
O Google Cloud Directory Sync (GCDS) é um exemplo de conector de identidade. Ele mapeia informações de usuários e grupos do Active Directory para o Cloud Directory.
Sincronizar identidades usando a API REST
Use o update método
para sincronizar identidades.
Remapear identidades
Depois de remapear uma identidade, é necessário reindexar os itens para que a mudança entre em vigor.
- Se você remover ou alterar um mapeamento de usuário, o mapeamento original vai permanecer até a reindexação.
- Se você excluir um grupo mapeado e criar um novo com a mesma
groupKey, ele não vai conceder acesso até que você reindexe.