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, além do 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 códigos externos. Esse campo resolve IDs externos para uma Conta do Google.
- Definir 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 usando 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 fonte 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, é necessária uma origem de identidade.
Criar uma origem de identidade
Caso você precise 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. O ID dela é necessário para criar ACLs e indexar dados. A criação de uma origem de identidade também cria uma propriedade de 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 da Ana se refere a
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 ACLs. Use isso para criar e mapear grupos usados apenas para segurança ou locais em um repositório.
Use a API Cloud Identity Groups para criar grupos e gerenciar associações. Associe o grupo a uma origem de identidade usando o nome dela 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 enquanto os IDs externos deles não forem resolvidos para um ID do Google no Cloud Directory. É possível garantir isso de três maneiras:
- Atualizar 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 corporativas 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 método update 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 mudar 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 o mesmo
groupKey, o acesso não será concedido até que você reindexe.