Por padrão, o Google Cloud Search reconhece apenas identidades do Google armazenadas no Google Cloud Directory (usuários e grupos). Os conectores de identidade são usados para sincronizar as identidades da sua empresa com as identidades do Google usadas pelo Google Cloud Search.
O Google oferece as seguintes opções para desenvolver conectores de identidade:
O SDK do Identity Connector. Essa opção é para desenvolvedores que programam na linguagem de programação Java. O SDK do Identity Connector é um wrapper na API REST que permite criar conectores rapidamente. Para criar um conector de identidade com 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. Estas opções são para desenvolvedores que podem não estar programando em Java ou têm uma base de código que comporta melhor uma API REST ou uma biblioteca. Para criar um conector de identidade usando a API REST, consulte para API Directory: contas de usuário de informações sobre mapeamento de usuários e Documentação do Cloud Identity para informações sobre o mapeamento de grupos.
Criar um conector de identidade usando o SDK do Identity Connector
Um conector de identidade típico desempenha as seguintes tarefas:
- Configura o conector.
- Recupera todos os usuários do sistema de identidade empresarial e os envia ao Google para sincronização com as identidades do Google.
- Recupera todos os grupos do sistema de identidade empresarial e os envia ao Google para sincronização com as identidades do Google.
Configurar dependências
É necessário incluir determinadas dependências no arquivo de criação para usar o SDK. Clique na guia abaixo para ver as dependências do ambiente de criação:
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 tem um arquivo de configuração que contém os parâmetros usados pelo conector, como o código do repositório. Os parâmetros são definidos como
pares de chave-valor, como
api.sourceId=1234567890abcdef
O SDK do Google Cloud Search contém vários parâmetros de configuração fornecidos pelo Google que são usados por todos os conectores. É necessário declarar os parâmetros fornecidos pelo Google a seguir no arquivo de configuração:
- Para um conector de conteúdo, é necessário declarar
api.sourceId
eapi.serviceAccountPrivateKeyFile
, porque esses parâmetros identificam o local do repositório e a chave privada necessárias para acessá-lo.
- Para um conector de identidade, você precisa declarar
api.identitySourceId
como este: identifica o local da sua origem de identidade externa. Se você for sincronizando usuários, também é necessário declararapi.customerId
como o ID exclusivo para a conta do Google Workspace da sua empresa.
A menos que você queira modificar os valores padrão dos outros parâmetros fornecidos pelo Google, não é necessário declará-los no arquivo de configuração. Para mais informações sobre os parâmetros de configuração fornecidos pelo Google, como como gerar determinados IDs e chaves, consulte Parâmetros de configuração fornecidos pelo Google.
Também é possível definir parâmetros específicos do repositório para usá-los no seu 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 para o
conector. É possível definir a propriedade usando o argumento -D
ao iniciar
o conector. Por exemplo, o comando a seguir inicia o conector
com o arquivo de configuração MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Se esse argumento estiver ausente, o SDK tentará acessar uma configuração padrão
arquivo chamado connector-config.properties
.
Criar um conector de identidade de sincronização completo usando uma classe de modelo
O SDK do Identity Connector contém uma classe de modelo FullSyncIdentityConnector
é possível usar para sincronizar todos os usuários e grupos da conta
repositório com identidades do Google. Nesta seção, explicamos como usar o
FullSyncIdentityConnector
modelo para executar uma sincronização completa de usuários e grupos de uma identidade que não é do Google.
repositório de dados.
Esta seção da documentação se refere a snippets de código da
Amostra de IdentityConnecorSample.java
. Essa amostra lê as identidades de usuários e grupos de dois arquivos CSV e as sincroniza com as identidades do Google.
Implementar o ponto de entrada do conector
O ponto de entrada para um conector é o
main()
. A principal tarefa desse método é criar uma instância do
Application
e invoque a classe dela
start()
para executar o conector.
Antes de ligar
application.start()
,
use o método
IdentityApplication.Builder
para instanciar a classe
FullSyncIdentityConnector
. O FullSyncIdentityConnector
aceita uma
Repository
objeto cujos métodos você implementará.
O snippet de código a seguir mostra como implementar o método main()
:
Em segundo plano, o SDK chama
initConfig()
depois das chamadas de método main()
do seu conector
Application.build
O método initConfig()
executa as seguintes tarefas:
- Chama o método
Configuation.isInitialized()
para garantir queConfiguration
não foi inicializado. - Inicializa um objeto
Configuration
com a chave-valor fornecida pelo Google pares. Cada par de chave-valor é armazenado em umConfigValue
dentro do objetoConfiguration
.
Implementar a interface Repository
A única finalidade do objeto Repository
é realizar a
e sincronizar as identidades dos repositórios com as identidades do Google. Ao usar
um modelo, você precisa substituir apenas certos métodos na
Repository
para criar um conector de identidade. Para o
FullTraversalConnector
, é provável que você substitua os seguintes métodos:
A
init()
. Para executar qualquer configuração e inicialização do repositório de identidades, modifique o método init().A
listUsers()
. Para sincronizar todos os usuários no repositório de identidades com usuários do Google, modifique o métodolistUsers()
.A
listGroups()
. Para sincronizar todos os grupos no repositório de identidades com os Grupos do Google: modifique o métodolistGroups()
.(opcional) O campo
close()
. Se você precisar realizar a limpeza do repositório, modifique oclose()
. Esse método é chamado uma vez durante o encerramento do conector.
Receber parâmetros de configuração personalizados
Como parte da configuração do seu conector, será necessário receber
parâmetros personalizados
Configuration
objeto. Essa tarefa geralmente é realizada
Repository
da classe
init()
.
A classe Configuration
tem vários métodos para receber diferentes tipos de dados.
de uma configuração. Cada método retorna uma
ConfigValue
objeto. Em seguida, você vai usar o objeto ConfigValue
get()
para recuperar o valor real.
O snippet a seguir mostra como recuperar userMappingCsvPath
e
Valor groupMappingCsvPath
de um objeto Configuration
:
Para receber e analisar um parâmetro que contém diversos 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 a propriedade
getMultiValue
para receber uma lista de nomes de repositórios do GitHub:
Receber o mapeamento de todos os usuários
Substituir
listUsers()
para recuperar o mapeamento de todos os usuários do repositório de identidade. A
O método listUsers()
aceita um checkpoint que representa a última identidade a ser
sincronizado. O checkpoint poderá ser usado para retomar a sincronização caso o processo seja interrompido. Para cada usuário em seu repositório, você realizará essas etapas em
O método listUsers()
:
- Receba um mapeamento que consiste na identidade do Google e na identidade externa associada.
- Empacote o par em um iterador retornado pelo método
listUsers()
.
Receber um mapeamento de usuários
Veja no snippet de código a seguir como recuperar os mapeamentos de identidade armazenados em um arquivo CSV:
Empacotar um mapeamento de usuários em um iterador
O listUsers()
retorna um Iterator
, especificamente um
CheckpointCloseableIterable
,
de
IdentityUser
objetos. Você pode usar o
CheckpointClosableIterableImpl.Builder
para construir e retornar um iterador. Veja no snippet de código a seguir como empacotar cada mapeamento na lista e criar o iterador a partir dela:
Receber um grupo
Substituir
listGroups()
para recuperar todos os grupos e seus membros da sua identidade
repositório de dados. O método listGroups()
aceita um checkpoint que representa o último
identidade seja sincronizada. O checkpoint poderá ser usado para retomar a sincronização caso o processo seja interrompido. Você vai realizar essas ações para cada usuário no repositório
Etapas no método listGroups()
:
- Recebe o grupo e seus membros.
- Empacote cada grupo e seus membros em um iterador retornado pelo
listGroups()
.
Receber a identidade do grupo
Veja no snippet de código abaixo como recuperar os grupos e seus membros armazenados em um arquivo CSV:
Empacotar o grupo e respectivos membros em um iterador
O listGroups()
retorna um Iterator
, especificamente um
CheckpointCloseableIterable
,
de
IdentityGroup
objetos.
Você pode usar o
CheckpointClosableIterableImpl.Builder
para construir e retornar um iterador. Veja no snippet de código a seguir como empacotar cada grupo e seus membros em uma lista e criar o iterador a partir dela:
A seguir
Veja a seguir algumas das próximas etapas:
- (Opcional) Implemente o método close() para liberar todos os recursos antes do encerramento.
- (Opcional) Crie um conector de conteúdo usando o SDK do Content Connector.