Standardmäßig erkennt Google Cloud Search nur Google-Identitäten, die in Google Cloud Directory (Nutzer und Gruppen) Identitätsconnectors werden verwendet, um können Sie die Identitäten Ihres Unternehmens mit den von Google Cloud Search verwendeten Google-Identitäten synchronisieren.
Google bietet die folgenden Optionen zum Entwickeln von Identitätsconnectors:
Das Identity Connector SDK. Diese Option ist für Entwickler gedacht, die in der Programmiersprache Java. Das Identity Connector SDK ist ein Wrapper um die REST API, um schnell Connectors zu erstellen. So erstellen Sie ein mit dem SDK verwenden, finden Sie unter Erstellen Sie mit dem Identity Connector SDK einen Identitätsconnector.
Low-Level-REST API und API-Bibliotheken Diese Optionen sind für Entwickler gedacht, die möglicherweise nicht in Java programmieren oder deren Codebasis REST API oder eine Bibliothek. Informationen zum Erstellen eines Identitätsconnectors mit der REST API finden Sie unter bis Directory API: Nutzerkonten für Informationen zur Zuordnung von Nutzenden und Cloud Identity-Dokumentation für zum Zuordnen von Gruppen.
Mit dem Identity Connector SDK einen Identitätsconnector erstellen
Ein typischer Identitätsconnector führt die folgenden Aufgaben aus:
- Konfigurieren Sie den Connector.
- Alle Nutzer aus dem Identitätssystem Ihres Unternehmens abrufen und an folgende Adresse senden: Google für die Synchronisierung mit Google-Identitäten
- Alle Gruppen aus dem Identitätssystem Ihres Unternehmens abrufen und an folgende Adresse senden: Google für die Synchronisierung mit Google-Identitäten
Abhängigkeiten einrichten
Sie müssen bestimmte Abhängigkeiten in Ihre Build-Datei aufnehmen, um das SDK verwenden zu können. Klicken Sie auf auf einem Tab, um die Abhängigkeiten für Ihre Build-Umgebung anzuzeigen:
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'
Connector-Konfiguration erstellen
Jeder Connector verfügt über eine Konfigurationsdatei mit den Parametern, die vom
Connector, z. B. die ID für Ihr Repository. Parameter sind definiert als
Schlüssel/Wert-Paare, z. B.
api.sourceId=1234567890abcdef
Das Google Cloud Search SDK enthält verschiedene von Google bereitgestellte Parameter, die von allen Connectors verwendet werden. Du musst Folgendes deklarieren Von Google bereitgestellte Parameter in Ihrer Konfigurationsdatei:
- Für einen Inhaltsconnector müssen Sie Folgendes deklarieren:
api.sourceId
undapi.serviceAccountPrivateKeyFile
, da diese Parameter den Standort identifizieren. Ihres Repositorys und des privaten Schlüssels, die für den Zugriff auf das Repository erforderlich sind.
- Für einen Identitätsconnector müssen Sie
api.identitySourceId
so deklarieren: gibt den Speicherort der externen Identitätsquelle an. Wenn Sie Nutzer synchronisieren, müssen Sie auchapi.customerId
als eindeutige ID für mit dem Google Workspace-Konto Ihres Unternehmens.
Sofern Sie die Standardwerte anderer von Google bereitgestellter müssen Sie diese nicht in Ihrer Konfigurationsdatei angeben. Weitere Informationen zu den von Google bereitgestellten Konfigurationsparametern zum Generieren bestimmter IDs und Schlüssel erhalten Sie unter Von Google bereitgestellte Konfigurationsparameter
Sie können auch eigene Repository-spezifische Parameter zur Verwendung in Ihrem Konfigurationsdatei.
Konfigurationsdatei an den Connector übergeben
Legen Sie das Systemattribut config
fest, um die Konfigurationsdatei an Ihr
Connector. Sie können das Attribut beim Start mit dem Argument -D
festlegen.
an den Connector. Mit dem folgenden Befehl wird z. B. der Connector gestartet.
durch die Konfigurationsdatei MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Wenn dieses Argument fehlt, versucht das SDK, auf eine Standardkonfiguration zuzugreifen
Datei mit dem Namen connector-config.properties
.
Mithilfe einer Vorlagenklasse einen Identitätsconnector mit vollständiger Synchronisierung erstellen
Das Identity Connector SDK enthält die Vorlagenklasse FullSyncIdentityConnector
mit der Sie alle Nutzer und Gruppen
aus der Identität synchronisieren können,
mit Google-Identitäten. In diesem Abschnitt wird die Verwendung des
Vorlage „FullSyncIdentityConnector
“, um eine vollständige Synchronisierung von Nutzern und Gruppen aus einer Nicht-Google-Identität durchzuführen
zu erstellen.
Dieser Abschnitt bezieht sich auf Code-Snippets aus dem
IdentityConnecorSample.java
Beispiel. Dieses Beispiel liest Nutzer und Gruppe
aus zwei CSV-Dateien und synchronisiert sie mit Google-Identitäten.
Einstiegspunkt des Connectors implementieren
Der Einstiegspunkt für einen Connector ist der
main()
-Methode. Die Hauptaufgabe dieser Methode besteht darin, eine Instanz des
Application
und rufen ihre
start()
um den Connector auszuführen.
Vor dem Anruf
application.start()
,
verwenden Sie die
IdentityApplication.Builder
-Klasse zum Instanziieren der
Vorlage FullSyncIdentityConnector
. Für FullSyncIdentityConnector
akzeptiert ein
Repository
-Objekt, dessen Methoden Sie implementieren.
Das folgende Code-Snippet zeigt, wie die Methode main()
implementiert wird:
Im Hintergrund ruft das SDK die
initConfig()
nach den Aufrufen der Methode main()
des Connectors
Application.build
Die Methode initConfig()
führt die folgenden Aufgaben aus:
- Ruft die Methode
Configuation.isInitialized()
um sicherzustellen, dass derConfiguration
noch nicht initialisiert wurde. - Initialisiert ein
Configuration
-Objekt mit dem von Google bereitgestellten Schlüssel/Wert-Paar Paare. Jedes Schlüssel/Wert-Paar wird in einemConfigValue
innerhalb desConfiguration
-Objekts.
Repository
-Oberfläche implementieren
Der einzige Zweck des Repository
-Objekts besteht darin,
Synchronisierung von Repository-Identitäten mit Google-Identitäten Bei Verwendung
eine Vorlage haben, müssen Sie nur bestimmte Methoden innerhalb der
Repository
-Schnittstelle zum Erstellen eines Identitätsconnectors. Für die
FullTraversalConnector
verwenden, überschreiben Sie wahrscheinlich die folgenden Methoden:
Die
init()
. Wenn Sie ein Identitäts-Repository einrichten und initialisieren möchten, überschreiben Sie die Methode `init()`.Die
listUsers()
. Wenn Sie alle Nutzer im Identitäts-Repository mit Google-Nutzern synchronisieren möchten, überschreiben Sie die MethodelistUsers()
.Die
listGroups()
. So synchronisieren Sie alle Gruppen im Identitäts-Repository mit Google Groups: überschreiben Sie die MethodelistGroups()
.(optional) Das Feld
close()
. Wenn Sie eine Repository-Bereinigung ausführen müssen, überschreiben Sie denclose()
. . Diese Methode wird einmal beim Herunterfahren des Connectors aufgerufen.
Benutzerdefinierte Konfigurationsparameter abrufen
Im Rahmen der Konfiguration des Connectors müssen Sie alle
benutzerdefinierten Parameter aus dem
Configuration
-Objekt enthält. Diese Aufgabe wird normalerweise in einem
Repository
Kurs
init()
.
Die Configuration
-Klasse bietet mehrere Methoden zum Abrufen verschiedener Datentypen
aus einer Konfiguration. Bei jeder Methode wird ein
ConfigValue
-Objekt enthält. Anschließend verwenden Sie die Methode des ConfigValue
-Objekts.
get()
um den tatsächlichen Wert abzurufen.
Das folgende Snippet zeigt, wie userMappingCsvPath
und
groupMappingCsvPath
-Wert aus einem Configuration
-Objekt:
Um einen Parameter mit mehreren Werten abzurufen und zu parsen, verwenden Sie einen der
Typparser der Klasse Configuration
zum Parsen der Daten in separate Blöcke.
Im folgenden Snippet aus dem Connector für die Anleitung wird die Methode
getMultiValue
, um eine Liste der GitHub-Repository-Namen abzurufen:
Zuordnung für alle Nutzer abrufen
Überschreiben
listUsers()
um die Zuordnung für alle Nutzer aus Ihrem Identitäts-Repository abzurufen. Die
Bei der listUsers()
-Methode wird ein Prüfpunkt akzeptiert, der die letzte zu erstellende Identität darstellt
synchronisiert. Der Checkpoint kann verwendet werden, um die Synchronisierung fortzusetzen, sollte der Prozess
unterbrochen. Führen Sie diese Schritte für jeden Nutzer in Ihrem Repository aus in
die Methode listUsers()
:
- Eine Zuordnung abrufen, die aus der Google-Identität und der zugehörigen externen Person besteht Identität.
- Fügen Sie das Paar einem Iterator hinzu, der von der Methode
listUsers()
zurückgegeben wird.
Nutzerzuordnung abrufen
Im folgenden Code-Snippet wird veranschaulicht, wie Identitätszuweisungen abgerufen werden die in einer CSV-Datei gespeichert sind:
Nutzerzuordnung in einen Iterator packen
Die listUsers()
gibt ein Iterator
zurück, insbesondere ein
CheckpointCloseableIterable
von
IdentityUser
Objekte. Sie können die
CheckpointClosableIterableImpl.Builder
-Klasse, um einen Iterator zu erstellen und zurückzugeben. Das folgende Code-Snippet zeigt,
Um jede Zuordnung in eine Liste zu bündeln,
erstellen Sie den Iterator daraus.
Liste:
Gruppe abrufen
Überschreiben
listGroups()
, um alle Gruppen und deren Mitglieder aus Ihrer Identität abzurufen
zu erstellen. Die Methode listGroups()
akzeptiert einen Prüfpunkt, der den letzten
Identität zu synchronisieren. Mit dem Prüfpunkt kann die Synchronisierung fortgesetzt werden, falls das
dass der Prozess unterbrochen wird. Führen Sie diese Schritte für jeden Nutzer in Ihrem Repository aus.
Schritte in der listGroups()
-Methode:
- Gruppe und ihre Mitglieder abrufen
- Fügen Sie alle Gruppen und Mitglieder in einen Iterator ein, der vom
listGroups()
-Methode.
Gruppenidentität abrufen
Im folgenden Code-Snippet sehen Sie, wie die Gruppen und Mitglieder die in einer CSV-Datei gespeichert sind:
Gruppe und Mitglieder in einen Iterator packen
Die listGroups()
gibt ein Iterator
zurück, insbesondere ein
CheckpointCloseableIterable
von
IdentityGroup
Objekte.
Sie können die
CheckpointClosableIterableImpl.Builder
-Klasse zum Erstellen und Zurückgeben eines Iterators. Das folgende Code-Snippet zeigt,
um jede Gruppe und alle Mitglieder in einer Liste zu bündeln und den Iterator daraus zu erstellen.
Liste:
Nächste Schritte
Als Nächstes könnten Sie Folgendes tun:
- Optional: close() implementieren um Ressourcen vor dem Herunterfahren freizugeben.
- Optional: Inhaltsconnectors erstellen mithilfe des Content Connector SDK.