Por padrão, o Google Cloud Search reconhece apenas identidades do Google no Google Cloud Directory. Use conectores de identidade para sincronizar identidades empresariais com as identidades do Google usadas pelo Cloud Search.
O Google oferece estas opções para desenvolver conectores de identidade:
O SDK do Identity Connector: ideal para programadores Java. O SDK é um wrapper na API REST que permite criar conectores rapidamente. Para usar o SDK, consulte Criar um conector de identidade usando o SDK do Identity Connector.
Uma API REST de baixo nível e bibliotecas de API: melhor para programadores que não usam Java. Para criar um conector de identidade usando a API REST, consulte API Directory: contas de usuários para mapear usuários e Documentação do Google Cloud Identity para mapear grupos.
Criar um conector de identidade usando o SDK do Identity Connector
Um conector de identidade típico realiza estas tarefas:
- Configura o conector.
- Recupera usuários do seu sistema de identidade e os envia ao Google.
- Recupera grupos do seu sistema de identidade e os envia ao Google.
Configurar dependências
Inclua essas dependências no arquivo de build.
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Criar a configuração do conector
Cada conector usa um arquivo de configuração para parâmetros como o ID do repositório.
Defina parâmetros como pares de chave-valor, como api.sourceId=1234567890abcdef.
O SDK do Google Cloud Search inclui parâmetros fornecidos pelo Google para todos os conectores. É necessário declarar o seguinte no arquivo de configuração:
- Conector de conteúdo: declare
api.sourceIdeapi.serviceAccountPrivateKeyFile. Eles identificam seu repositório e a chave privada necessária para acesso.
- Conector de identidade: declare
api.identitySourceIdpara identificar sua origem de identidade externa. Para a sincronização de usuários, declare tambémapi.customerId(o ID exclusivo da sua conta do Google Workspace).
Declare outros parâmetros fornecidos pelo Google apenas para substituir os valores padrão. Para detalhes sobre como gerar IDs e chaves, consulte Parâmetros fornecidos pelo Google.
Também é possível definir parâmetros específicos do repositório no arquivo de configuração.
Transmitir o arquivo de configuração para o conector
Defina a propriedade do sistema config para transmitir o arquivo de configuração. Use o argumento -D ao iniciar o conector. Exemplo:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Se você omitir esse argumento, o SDK tentará usar um arquivo chamado
connector-config.properties no diretório local.
Criar um conector de identidade de sincronização completo usando uma classe de modelo
O SDK inclui um modelo FullSyncIdentityConnector para sincronizar todos os usuários e grupos do seu repositório. Esta seção explica como usá-lo.
Esta seção se refere ao código da amostra IdentityConnectorSample.java, que lê identidades de arquivos CSV.
Implementar o ponto de entrada do conector
O ponto de entrada é o método main(). Ele cria uma instância Application e chama start() para executar o conector.
Antes de chamar application.start(), use
IdentityApplication.Builder
para instanciar o modelo FullSyncIdentityConnector.
O SDK chama initConfig() depois que o método main() chama
Application.build(). O método initConfig():
- Garante que o
Configurationainda não foi inicializado. - Inicializa o objeto
Configurationcom pares de chave-valor fornecidos pelo Google.
Implementar a interface do repositório
O objeto Repository sincroniza identidades de repositório com identidades do Google. Ao usar um modelo, você só precisa substituir determinados métodos. Para
FullSyncIdentityConnector, substitua estes métodos:
init(): para configuração e inicialização.listUsers(): Para sincronizar todos os usuários.listGroups(): Para sincronizar todos os grupos.- (Opcional)
close(): para limpeza durante o desligamento.
Receber parâmetros de configuração personalizados
Recupere parâmetros personalizados do objeto Configuration, geralmente no método
init(). O snippet a seguir mostra como recuperar caminhos de CSV:
Para receber e analisar um parâmetro que contém vários valores, use um dos analisadores de tipo da classe Configuration para analisar os dados em blocos distintos.
O snippet a seguir, do conector do tutorial, usa o método
getMultiValue
para receber uma lista de nomes de repositório do GitHub:
Receber o mapeamento de todos os usuários
Substitua listUsers() para recuperar os mapeamentos de usuários. Esse método aceita um checkpoint para retomar a sincronização se ela for interrompida. Para cada usuário:
- Receba o mapeamento entre a identidade do Google e a identidade externa.
- Empacote o par no iterador retornado por
listUsers().
Receber um mapeamento de usuários
Este snippet demonstra como recuperar mapeamentos de identidade de um arquivo CSV:
Empacotar um mapeamento de usuários em um iterador
O método listUsers() retorna uma
CheckpointCloseableIterable
de objetos
IdentityUser.
Receber um grupo
Substitua listGroups() para recuperar grupos e membros. Esse método aceita um checkpoint. Para cada grupo:
- Receba o grupo e os membros dele.
- Empacote-os no iterador retornado por
listGroups().
Receber a identidade do grupo
Este snippet demonstra como recuperar grupos e membros de um arquivo CSV:
Empacotar o grupo e respectivos membros em um iterador
O método listGroups() retorna um CheckpointCloseableIterable de objetos
IdentityGroup.
Próximas etapas
- (Opcional) Implemente
close()para liberar recursos. - (Opcional) Crie um conector de conteúdo.