Par défaut, Google Cloud Search ne reconnaît que les identités Google stockées dans Annuaire Google Cloud (utilisateurs et groupes) Les connecteurs d'identité permettent de synchronisez les identités de votre entreprise avec les identités Google utilisées par Google Cloud Search.
Google propose les options suivantes pour développer des connecteurs d'identité:
SDK Identity Connector. Cette option est destinée aux développeurs en langage de programmation Java. Le SDK Identity Connector est un wrapper autour de l'API REST afin de créer rapidement des connecteurs. Pour créer un à l'aide du SDK, consultez Créez un connecteur d'identité à l'aide du SDK Identity Connector.
API REST de bas niveau et bibliothèques d'API. Ces options sont destinées aux développeurs Vous ne programmez peut-être pas en Java ou votre codebase est-il mieux adapté ou une bibliothèque. Pour créer un connecteur d'identité à l'aide de l'API REST, consultez à API Directory: Comptes utilisateur pour des informations sur le mappage des utilisateurs et la documentation Cloud Identity pour des informations sur le mappage de groupes.
Créer un connecteur d'identité à l'aide du SDK Identity Connector
Un connecteur d'identité standard exécute les tâches suivantes:
- Configurez le connecteur.
- Récupérez tous les utilisateurs du système d'identité de votre entreprise et envoyez-les vers Google pour la synchronisation avec les identités Google.
- Récupérez tous les groupes du système d'identité de votre entreprise et envoyez-les à Google pour la synchronisation avec les identités Google.
Configurer des dépendances
Vous devez inclure certaines dépendances dans votre fichier de compilation pour utiliser le SDK. Cliquez sur dans un onglet ci-dessous pour afficher les dépendances de votre environnement de compilation:
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'
Créer une configuration de connecteur
Chaque connecteur dispose d'un fichier de configuration contenant les paramètres utilisés par
par exemple l'ID de votre dépôt. Les paramètres sont définis comme suit :
des paires clé-valeur :
api.sourceId=1234567890abcdef
Le SDK Google Cloud Search contient plusieurs configurations fournies par Google paramètres utilisés par tous les connecteurs. Vous devez déclarer les éléments suivants : Paramètres fournis par Google dans votre fichier de configuration:
- Pour un connecteur de contenu, vous devez déclarer
api.sourceId
etapi.serviceAccountPrivateKeyFile
, car ces paramètres identifient l'emplacement de votre dépôt et la clé privée nécessaire pour y accéder.
- Pour un connecteur d'identité, vous devez déclarer
api.identitySourceId
comme ceci identifie l'emplacement de votre source d'identité externe. Si vous utilisez les utilisateurs synchronisés, vous devez également déclarerapi.customerId
comme identifiant unique pour le compte Google Workspace de votre entreprise.
À moins que vous ne souhaitiez remplacer les valeurs par défaut des autres vous n'avez pas besoin de les déclarer dans votre fichier de configuration. Pour en savoir plus sur les paramètres de configuration fournis par Google, tels que comment générer certains ID et clés, reportez-vous Paramètres de configuration fournis par Google.
Vous pouvez également définir des paramètres spécifiques au dépôt à utiliser dans votre fichier de configuration.
Transmettre le fichier de configuration au connecteur
Définissez la propriété système config
pour transmettre le fichier de configuration à votre
le connecteur d'alimentation. Vous pouvez définir la propriété à l'aide de l'argument -D
au démarrage
le connecteur. Par exemple, la commande suivante permet de démarrer le connecteur
avec le fichier de configuration MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Si cet argument est manquant, le SDK tente d'accéder à une configuration par défaut
nommé connector-config.properties
.
Créer un connecteur d'identité de synchronisation complet à l'aide d'une classe de modèle
Le SDK Identity Connector contient une classe de modèle FullSyncIdentityConnector
pour synchroniser tous les utilisateurs et groupes de l'identité
avec les identités Google. Cette section explique comment utiliser les
Modèle FullSyncIdentityConnector
pour effectuer une synchronisation complète des utilisateurs et des groupes à partir d'une identité autre que Google
un dépôt de clés.
Cette section fait référence aux extraits de code
IdentityConnecorSample.java
exemple. Dans cet exemple, on lit "User and group"
les identités à partir de deux fichiers CSV
et les synchronise avec les identités Google.
Implémenter le point d'entrée du connecteur
Le point d'entrée d'un connecteur est
main()
. La tâche principale de cette méthode est de créer une instance de
Application
et à appeler sa classe
start()
pour exécuter le connecteur.
Avant d'appeler
application.start()
utilisez la
IdentityApplication.Builder
pour instancier
Modèle FullSyncIdentityConnector
. Le FullSyncIdentityConnector
accepte une
Repository
dont vous allez implémenter les méthodes.
L'extrait de code suivant montre comment implémenter la méthode main()
:
En arrière-plan, le SDK appelle
initConfig()
après les appels de méthode main()
du connecteur
Application.build
La méthode initConfig()
effectue les tâches suivantes:
- Appelle la méthode
Configuation.isInitialized()
pour vous assurer queConfiguration
n'a pas été initialisé. - Elle initialise un objet
Configuration
avec la clé-valeur fournie par Google. paires. Chaque paire clé-valeur est stockéeConfigValue
dans l'objetConfiguration
.
Implémenter l'interface Repository
L'objet Repository
n'a qu'une fonction,
la synchronisation des identités du dépôt avec les identités Google. Lorsque vous utilisez
un modèle, il vous suffit de remplacer certaines méthodes dans la
Repository
pour créer un connecteur d'identité. Pour le
FullTraversalConnector
, vous allez probablement remplacer les méthodes suivantes:
La
init()
. Pour configurer et initialiser un dépôt d'identités, remplacez la méthode init().La
listUsers()
. Pour synchroniser tous les utilisateurs du dépôt d'identités avec les utilisateurs Google, remplacez la méthodelistUsers()
.La
listGroups()
. Pour synchroniser tous les groupes du dépôt d'identités avec Google Groupes, procédez comme suit : remplacez la méthodelistGroups()
.(Facultatif) La propriété
close()
. Si vous devez nettoyer le dépôt, remplacezclose()
. Cette méthode est appelée une fois lors de l'arrêt du connecteur.
Obtenir les paramètres de configuration personnalisés
Dans le cadre de la configuration de votre connecteur, vous devez obtenir
des paramètres personnalisés
Configuration
. Cette tâche est généralement effectuée dans un
Repository
du cours
init()
.
La classe Configuration
comporte plusieurs méthodes pour obtenir différents types de données.
à partir d'une configuration. Chaque méthode renvoie un
ConfigValue
. Vous utiliserez ensuite l'objet ConfigValue
get()
pour récupérer la valeur réelle.
L'extrait de code suivant montre comment récupérer userMappingCsvPath
et
Valeur groupMappingCsvPath
à partir d'un objet Configuration
:
Pour récupérer et analyser un paramètre contenant plusieurs valeurs, utilisez l'une des méthodes
les analyseurs de type de la classe Configuration
pour analyser les données en fragments distincts.
L'extrait de code suivant, issu du connecteur du tutoriel, utilise la classe
getMultiValue
pour obtenir la liste des noms de dépôts GitHub:
Obtenir le mappage pour tous les utilisateurs
Remplacement
listUsers()
pour récupérer le mappage de tous les utilisateurs à partir de votre dépôt d'identités. La
La méthode listUsers()
accepte un point de contrôle représentant la dernière identité à être
synchronisées. Le point de contrôle peut être utilisé pour reprendre la synchronisation si le processus
sans interruption. Pour chaque utilisateur de votre dépôt, vous effectuerez ces étapes dans
la méthode listUsers()
:
- Obtenir un mappage composé de l'identité Google et des éléments externes associés l'identité.
- Empaquetez ces deux éléments dans un itérateur renvoyé par la méthode
listUsers()
.
Obtenir un mappage d'utilisateurs
L'extrait de code suivant montre comment récupérer les mappages d'identité stockées dans un fichier CSV:
Empaqueter un mappage d'utilisateur dans un itérateur
listUsers()
renvoie un Iterator
, plus précisément
CheckpointCloseableIterable
de
IdentityUser
d'objets. Vous pouvez utiliser
CheckpointClosableIterableImpl.Builder
pour construire et renvoyer un itérateur. L'extrait de code suivant montre comment
pour empaqueter chaque mappage dans l'itérateur de création de liste à partir de ce
liste:
Obtenir un groupe
Remplacement
listGroups()
pour récupérer tous les groupes et leurs membres à partir de votre identité
un dépôt de clés. La méthode listGroups()
accepte un point de contrôle représentant le dernier
à synchroniser. Le point de contrôle peut être utilisé pour reprendre la synchronisation si la
sans interrompre le processus. Pour chaque utilisateur de votre dépôt, vous effectuerez ces
étapes dans la méthode listGroups()
:
- Récupérez le groupe et ses membres.
- Empaqueter chaque groupe et ses membres dans un itérateur renvoyé par la
listGroups()
.
Obtenir l'identité du groupe
L'extrait de code suivant montre comment récupérer les groupes et les membres stockées dans un fichier CSV:
Empaqueter le groupe et ses membres dans un itérateur
listGroups()
renvoie un Iterator
, plus précisément
CheckpointCloseableIterable
de
IdentityGroup
d'objets.
Vous pouvez utiliser
CheckpointClosableIterableImpl.Builder
pour construire et renvoyer un itérateur. L'extrait de code suivant montre comment
pour regrouper chaque groupe et ses membres dans une liste, puis créer l'itérateur à partir de cette liste.
liste:
Étapes suivantes
Voici quelques étapes que vous pouvez également suivre :
- (Facultatif) Implémentez la méthode close(). pour libérer les ressources avant l'arrêt.
- (Facultatif) Créer un connecteur de contenu à l'aide du SDK Content Connector.