Par défaut, Google Cloud Search ne reconnaît que les identités Google dans Google Cloud Directory. Utilisez des connecteurs d'identité pour synchroniser les identités de l'entreprise avec les identités Google utilisées par Cloud Search.
Google propose les options suivantes pour développer des connecteurs d'identité :
Le SDK Identity Connector : idéal pour les programmeurs Java. Le SDK est un wrapper pour l'API REST qui vous permet de créer rapidement des connecteurs. Pour utiliser le SDK, consultez Créer un connecteur d'identité à l'aide du SDK Identity Connector.
Une API REST de bas niveau et des bibliothèques d'API : idéales pour les programmeurs qui n'utilisent pas Java. Pour créer un connecteur d'identité à l'aide de l'API REST, consultez API Directory : comptes utilisateur pour mapper les utilisateurs et la documentation Google Cloud Identity pour mapper les groupes.
Créer un connecteur d'identité à l'aide du SDK Identity Connector
Un connecteur d'identité typique effectue les tâches suivantes :
- Configure le connecteur.
- Récupère les utilisateurs de votre système d'identité et les envoie à Google.
- Récupère les groupes de votre système d'identité et les envoie à Google.
Configurer des dépendances
Incluez ces dépendances dans votre fichier 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 votre configuration de connecteur
Chaque connecteur utilise un fichier de configuration pour les paramètres tels que l'ID de votre dépôt.
Définissez les paramètres sous forme de paires clé-valeur, par exemple
api.sourceId=1234567890abcdef.
Le SDK Google Cloud Search inclut des paramètres fournis par Google pour tous les connecteurs. Vous devez déclarer les éléments suivants dans votre fichier de configuration :
- Connecteur de contenu : Déclarez
api.sourceIdetapi.serviceAccountPrivateKeyFile. Ces éléments identifient votre dépôt et la clé privée nécessaire pour y accéder.
- Connecteur d'identité : déclarez
api.identitySourceIdpour identifier votre source d'identité externe. Pour la synchronisation des utilisateurs, déclarez égalementapi.customerId(l'ID unique de votre compte Google Workspace).
Déclarez d'autres paramètres fournis par Google uniquement pour remplacer leurs valeurs par défaut. Pour en savoir plus sur la génération d'ID et de clés, consultez Paramètres fournis par Google.
Vous pouvez également définir des paramètres spécifiques au dépôt 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. Utilisez l'argument -D lorsque vous démarrez le connecteur. Exemple :
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Si vous omettez cet argument, le SDK tente d'utiliser un fichier nommé connector-config.properties dans le répertoire local.
Créer un connecteur d'identité pour la synchronisation complète à l'aide d'un modèle de classe
Le SDK inclut un modèle FullSyncIdentityConnector pour synchroniser tous les utilisateurs et groupes de votre dépôt. Cette section explique comment l'utiliser.
Cette section fait référence au code de l'exemple IdentityConnectorSample.java, qui lit les identités à partir de fichiers CSV.
Ajouter le point d'entrée du connecteur
Le point d'entrée est la méthode main(). Il crée une
Application
instance et appelle
start()
pour exécuter le connecteur.
Avant d'appeler application.start(), utilisez
IdentityApplication.Builder
pour instancier le modèle FullSyncIdentityConnector.
Le SDK appelle initConfig() une fois que votre méthode main() appelle Application.build(). La méthode initConfig() :
- s'assure que
Configurationn'est pas déjà initialisé ; - initialise l'objet
Configurationavec les paires clé-valeur fournies par Google.
Ajouter l'interface Repository
L'objet Repository synchronise les identités du dépôt avec les identités Google. Lorsque vous utilisez un modèle, vous n'avez besoin de remplacer que certaines méthodes. Pour FullSyncIdentityConnector, remplacez les méthodes suivantes :
init(): pour la configuration et l'initialisation.listUsers(): pour synchroniser tous les utilisateurs.listGroups(): pour synchroniser tous les groupes.- (Facultatif)
close(): Pour le nettoyage lors de l'arrêt.
Récupérer les paramètres de configuration personnalisés
Récupérez les paramètres personnalisés à partir de l'objet Configuration, généralement dans la méthode init(). L'extrait de code suivant montre comment récupérer les chemins d'accès CSV :
Pour récupérer et analyser un paramètre contenant plusieurs valeurs, utilisez l'un des analyseurs de type de la classe Configuration, qui permettent d'analyser les données par fragments distincts.
L'extrait de code suivant (issu du connecteur du tutoriel) permet d'obtenir la liste des noms de dépôts GitHub grâce à la
getMultiValue
méthode :
Récupérer le mappage de tous les utilisateurs
Remplacez listUsers() pour récupérer les mappages d'utilisateurs. Cette méthode accepte un point de contrôle pour reprendre la synchronisation en cas d'interruption. Pour chaque utilisateur :
- Récupérez le mappage entre l'identité Google et l'identité externe.
- Empaquetez ces deux éléments dans l'itérateur renvoyé par
listUsers().
Récupérer un mappage d'utilisateurs
Cet extrait montre comment récupérer les mappages d'identités à partir d'un fichier CSV :
Empaqueter un mappage d'utilisateurs dans un itérateur
La méthode listUsers() renvoie un
CheckpointCloseableIterable
d'objets
IdentityUser.
Récupérer un groupe
Remplacez listGroups() pour récupérer les groupes et leurs membres. Cette méthode accepte un point de contrôle. Pour chaque groupe :
- Récupérez le groupe et ses membres.
- Empaquetez-les dans l'itérateur renvoyé par
listGroups().
Récupérer l'identité du groupe
Cet extrait montre comment récupérer les groupes et les membres à partir d'un fichier CSV :
Empaqueter le groupe et ses membres dans un itérateur
La méthode listGroups() renvoie un CheckpointCloseableIterable d'objets
IdentityGroup.
Étapes suivantes
- (Facultatif) Implémentez
close()pour libérer des ressources. - (Facultatif) Créez un connecteur de contenu.