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 votre 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 accélère la création 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éal pour les programmeurs non Java. Pour créer un connecteur d'identité à l'aide de l'API REST, consultez API Directory : comptes utilisateur pour en savoir plus sur le mappage des utilisateurs et la documentation Google Cloud Identity pour en savoir plus sur le mappage des groupes.
Créer un connecteur d'identité à l'aide du SDK Identity Connector
Un connecteur d'identité standard exécute 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 la configuration de votre 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, comme 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. Ils 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 les autres paramètres fournis par Google uniquement pour remplacer leurs valeurs par défaut. Pour savoir comment générer des ID et des clés, consultez Paramètres fournis par Google.
Vous pouvez également définir des paramètres propres 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 permettant de 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 instance Application 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() après que votre méthode main() a appelé 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.
Implémenter l'interface Repository
L'objet Repository synchronise les identités du dépôt avec celles de Google. Lorsque vous utilisez un modèle, il vous suffit de remplacer 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 suivant montre comment récupérer les chemins d'accès aux fichiers 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 méthode getMultiValue :
Récupérer le mappage de tous les utilisateurs
Remplacez listUsers() pour récupérer les mappages utilisateur. Cette méthode accepte un point de contrôle pour reprendre la synchronisation si elle est interrompue. Pour chaque utilisateur :
- Récupérer le mappage entre l'identité Google et l'identité externe
- Empaquetez la paire 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é à 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érer 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 des groupes et des 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 les ressources. - (Facultatif) Créez un connecteur de contenu.