Por padrão, o Google Cloud Search só reconhece identidades do Google no diretório do Google Cloud. 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: ideal 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 estas 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 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 modificar 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
Application
instância 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 a
Configurationainda não esteja inicializada. - Inicializa o objeto
Configurationcom pares de chave-valor fornecidos pelo Google.
Implementar a interface Repository
O objeto Repository sincroniza identidades de repositório com identidades do Google. Ao usar um modelo, você só precisa modificar determinados métodos. Para FullSyncIdentityConnector, modifique 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, normalmente no método init(). O snippet a seguir mostra como recuperar caminhos 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
getMultiValue
método para receber uma lista de nomes de repositório do GitHub:
Receber o mapeamento de todos os usuários
Modifique listUsers() para recuperar 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 um
CheckpointCloseableIterable
de
IdentityUser
objetos.
Receber um grupo
Modifique listGroups() para recuperar grupos e respectivos membros. Esse método aceita um checkpoint. Para cada grupo:
- Receba o grupo e respectivos membros.
- 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
IdentityGroup
objetos.
Próximas etapas
- (Opcional) Implement
close()para liberar recursos. - (Opcional) Crie um conector de conteúdo.