Según la configuración predeterminada, Google Cloud Search solo reconoce las identidades de Google almacenadas en Google Cloud Directory (usuarios y grupos). Los conectores de identidad se usan para Sincronizar las identidades empresariales con las identidades de Google que usa Google Cloud Search.
Google brinda las siguientes opciones para desarrollar conectores de identidad:
El SDK de Identity Connector Esta opción es para desarrolladores que programan en el lenguaje de programación Java. El SDK de Identity Connector es un wrapper alrededor de la API de REST que te permite crear conectores rápidamente. Para crear un conector de identidad con el uso de SDK, consulta Crea un conector de identidad con el uso del SDK de Identity Connector.
Una API de REST de bajo nivel y las bibliotecas de la API. Estas opciones son para desarrolladores que quizás no programen en Java o cuya base de código se adapta mejor a una API de REST o a una biblioteca. Para crear un conector de identidad con la API de REST, consulta a API de Directory: Cuentas de usuario información sobre la asignación de usuarios y Documentación de Cloud Identity para información sobre la asignación de grupos.
Crea un conector de identidad con el uso del SDK de Identity Connector
Un conector de identidad típico realiza las siguientes tareas:
- Configurar el conector.
- Obtener todos los usuarios del sistema de identidad empresarial y enviarlos a Google para que se sincronicen con las identidades de Google.
- Obtener todos los grupos del sistema de identidad empresarial y enviarlos a Google para que se sincronicen con las identidades de Google.
Configura dependencias
Debes incluir determinadas dependencias en el archivo de compilación para usar el SDK. Haz clic en la pestaña a continuación para ver las dependencias del entorno de compilación:
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'
Crea tu configuración del conector
Cada conector tiene un archivo de configuración que contiene los parámetros que usa el conector, como el ID de tu repositorio. Los parámetros se definen de la siguiente manera:
par clave-valor, como
api.sourceId=1234567890abcdef
El SDK de Google Cloud Search contiene varios parámetros de configuración proporcionados por Google que son usados por todos los conectores. Debes declarar los siguientes parámetros proporcionados por Google en tu archivo de configuración:
- Para un conector de contenido, debes declarar
api.sourceId
yapi.serviceAccountPrivateKeyFile
, ya que estos parámetros identifican la ubicación de tu repositorio y la clave privada necesaria para acceder al repositorio.
- Para un conector de identidad, debes declarar
api.identitySourceId
como esta identifica la ubicación de tu fuente de identidad externa. Si eres sincronizando usuarios, también debes declararapi.customerId
como el ID único para la cuenta de Google Workspace de tu empresa.
A menos que desees anular los valores predeterminados de otros parámetros proporcionados por Google, no necesitas declararlos en el archivo de configuración. Para obtener información adicional sobre los parámetros de configuración proporcionados por Google, como sobre cómo generar determinados IDs y claves, consulta Parámetros de configuración proporcionados por Google.
También puedes definir tus propios parámetros específicos del repositorio para usar en tu archivo de configuración.
Pasa el archivo de configuración al conector
Establece la propiedad del sistema config
para pasar el archivo de configuración a tu
o del conector. Puedes configurar la propiedad con el argumento -D
cuando comiences
el conector. Por ejemplo, el siguiente comando inicia el conector
por el archivo de configuración MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Si falta este argumento, el SDK intenta acceder a una configuración predeterminada.
llamado connector-config.properties
.
Crea un conector de identidad de sincronización completa con una clase de plantilla
El SDK de Identity Connector contiene una clase de plantilla FullSyncIdentityConnector
.
puedes usar para sincronizar a todos los usuarios y grupos desde la
con identidades de Google. En esta sección, se explica cómo usar
Plantilla FullSyncIdentityConnector
para realizar una sincronización completa de los usuarios y los grupos desde una identidad ajena a Google
en un repositorio de confianza.
Esta sección de los documentos hace referencia a fragmentos de código del
IdentityConnecorSample.java
muestra. En esta muestra se leen las identidades de usuarios y grupos de dos archivos CSV y se sincronizan con las identidades de Google.
Implementa el punto de entrada del conector
El punto de entrada a un conector es el
main()
. La tarea principal de este método es crear una instancia de la
Application
e invocar su
start()
para ejecutar el conector.
Antes de llamar
application.start()
:
usa el
IdentityApplication.Builder
para crear una instancia de la
FullSyncIdentityConnector
. FullSyncIdentityConnector
acepta un
Repository
objeto cuyos métodos implementarás.
En el siguiente fragmento de código, se muestra cómo implementar el método main()
:
En segundo plano, el SDK llama a
initConfig()
después de llamar al método main()
de tu conector
Application.build
El método initConfig()
realiza las siguientes tareas:
- Llama al
Configuation.isInitialized()
método para asegurarte de que elConfiguration
no se inicializó. - Inicializa un objeto
Configuration
con el par clave-valor proporcionado por Google. pares. Cada par clave-valor se almacena en unConfigValue
dentro del objetoConfiguration
.
Implementa la interfaz Repository
El único propósito del objeto Repository
es realizar las
la sincronización de identidades
de repositorios con las identidades de Google. Al usar
una plantilla, solo debes anular ciertos métodos dentro del
Repository
para crear un conector de identidad. Para el
FullTraversalConnector
, es probable que anules los siguientes métodos:
El
init()
. Para realizar cualquier inicialización y configuración del repositorio de identidades, anula el método `init().El
listUsers()
. Para sincronizar todos los usuarios del repositorio de identidades con los usuarios de Google, anula el métodolistUsers()
El
listGroups()
. Para sincronizar todos los grupos del repositorio de identidades con Grupos de Google, sigue estos pasos: anula el métodolistGroups()
.(Opcional) El
close()
. Si necesitas realizar una limpieza del repositorio, anulaclose()
. . Se llama a este método una vez durante el cierre del conector.
Obtén parámetros de configuración personalizados
Como parte del control de la configuración del conector, deberás obtener cualquier
parámetros personalizados del
Configuration
. Por lo general, esta tarea se realiza
Repository
de la clase
init()
.
La clase Configuration
tiene varios métodos para obtener diferentes tipos de datos.
de una configuración. Cada método devuelve un
ConfigValue
. Luego, usarás la ConfigValue
configuración
get()
para recuperar el valor real.
En el siguiente fragmento, se muestra cómo recuperar userMappingCsvPath
y
Valor groupMappingCsvPath
de un objeto Configuration
:
Para obtener y analizar un parámetro que contenga varios valores, usa uno de los
Analizadores de tipo de la clase Configuration
para analizar los datos en fragmentos separados.
En el siguiente fragmento, del conector del instructivo, se usa el elemento
getMultiValue
para obtener una lista de nombres de repositorios de GitHub:
Obtén la asignación para todos los usuarios
Anular
listUsers()
para recuperar la asignación de todos los usuarios del repositorio de identidades. El
El método listUsers()
acepta un punto de control que representa la última identidad que se
sincronizada. El punto de control se puede utilizar para reanudar la sincronización en caso de que se interrumpa el proceso. Para cada usuario en tu repositorio, deberás seguir estos pasos en
el método listUsers()
:
- Obtén una asignación que incluya la identidad de Google y la identidad externa asociada.
- Empaqueta el par en el iterador que muestra el método
listUsers()
.
Obtén una asignación de usuario
En el siguiente fragmento de código, se demuestra cómo obtener las asignaciones de identidades almacenadas en un archivo CSV:
Empaqueta una asignación de usuario en un iterador
La listUsers()
muestra un Iterator
, específicamente un
CheckpointCloseableIterable
,
de
IdentityUser
objetos. Puedes usar la
CheckpointClosableIterableImpl.Builder
para construir y mostrar un iterador. En el siguiente fragmento de código, se muestra cómo empaquetar cada asignación en la lista y compilar el iterador a partir de esa lista:
Obtén un grupo
Anular
listGroups()
para recuperar todos los grupos y sus miembros de tu identidad
en un repositorio de confianza. El método listGroups()
acepta un punto de control que representa el último
de identidad que se sincronizará. El punto de control se puede utilizar para reanudar la sincronización en caso de que se interrumpa el proceso. Para cada usuario en tu repositorio, realizarás estas
Pasos en el método listGroups()
:
- Obtén el grupo y sus miembros.
- Empaqueta cada grupo y sus miembros en el iterador que muestra el
listGroups()
.
Obtén la identidad del grupo
En el siguiente fragmento de código, se demuestra cómo obtener los grupos y sus miembros almacenados en un archivo CSV:
Empaqueta el grupo y sus miembros en un iterador
La listGroups()
muestra un Iterator
, específicamente un
CheckpointCloseableIterable
,
de
IdentityGroup
objetos.
Puedes usar la
CheckpointClosableIterableImpl.Builder
para construir y mostrar un iterador. En el siguiente fragmento de código, se muestra cómo empaquetar cada grupo y sus miembros en una lista y compilar el iterador a partir de esa lista:
Próximos pasos
Aquí hay algunos pasos que puedes seguir:
- Implementa el método close() para liberar cualquier recurso antes de finalizar el procedimiento (opcional).
- Crea un conector de contenido mediante el SDK de Content Connector (opcional).