Standardmäßig werden von Google Cloud Search nur Google-Identitäten im Google Cloud-Verzeichnis erkannt. Verwenden Sie Identitätsconnectors , um Unternehmensidentitäten mit den Google-Identitäten zu synchronisieren, die von Cloud Search verwendet werden.
Google bietet Ihnen die folgenden Möglichkeiten, Identitätsconnectors zu entwickeln:
Das Identity Connector SDK: Am besten für Java-Programmierer geeignet. Das SDK ist ein Wrapper für die REST API, mit dem Sie Connectors schnell erstellen können. Informationen zur Verwendung des SDK finden Sie unter siehe Mit dem Identity Connector SDK einen Identitätsconnector erstellen.
Eine Low-Level-REST API und API-Bibliotheken: Am besten für Programmierer geeignet, die nicht mit Java arbeiten. Informationen zum Erstellen eines Identitätsconnectors mit der REST API finden Sie unter Directory API: User Accounts (Directory API: Nutzerkonten) zum Zuordnen von Nutzern und in derGoogle Cloud Identity-Dokumentation zum Zuordnen von Gruppen.
Mit dem Identity Connector SDK einen Identitätsconnector erstellen
Ein typischer Identitätsconnector führt die folgenden Aufgaben aus:
- Er konfiguriert den Connector.
- Er ruft Nutzer aus Ihrem Identitätssystem ab und sendet sie an Google.
- Er ruft Gruppen aus Ihrem Identitätssystem ab und sendet sie an Google.
Abhängigkeiten einrichten
Fügen Sie diese Abhängigkeiten in Ihre Build-Datei ein.
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 verwendet eine Konfigurationsdatei für Parameter wie Ihre Repository-ID.
Definieren Sie Parameter als Schlüssel/Wert Paare, z. B.
api.sourceId=1234567890abcdef.
Das Google Cloud Search SDK enthält von Google bereitgestellte Parameter für alle Connectors. Sie müssen Folgendes in Ihrer Konfigurationsdatei deklarieren:
- Inhaltsconnector: Deklarieren Sie
api.sourceIdundapi.serviceAccountPrivateKeyFile. Diese Parameter geben Ihr Repository und den für den Zugriff erforderlichen privaten Schlüssel an.
- Identitätsconnector: Deklarieren Sie
api.identitySourceId, um Ihre externe Identitätsquelle anzugeben. Für die Nutzersynchronisierung deklarieren Sie auchapi.customerId(die eindeutige ID für Ihr Google Workspace-Konto).
Deklarieren Sie andere von Google bereitgestellte Parameter nur, um ihre Standardwerte zu überschreiben. Weitere Informationen zum Generieren von IDs und Schlüsseln finden Sie unter Von Google bereitgestellte Parameter.
Sie können auch Repository-spezifische Parameter in Ihrer Konfigurationsdatei definieren.
Konfigurationsdatei an den Connector übergeben
Legen Sie das Systemattribut config fest, um die Konfigurationsdatei zu übergeben. Verwenden Sie das Argument -D, wenn Sie den Connector starten. Beispiel:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Wenn Sie dieses Argument weglassen, versucht das SDK, eine Datei mit dem Namen connector-config.properties im lokalen Verzeichnis zu verwenden.
Mit einer Vorlagenklasse einen Identitätsconnector für eine vollständige Synchronisierung erstellen
Das SDK enthält die Vorlage FullSyncIdentityConnector, mit der Sie alle Nutzer und Gruppen aus Ihrem Repository synchronisieren können. In diesem Abschnitt wird die Verwendung der Vorlage erläutert.
Dieser Abschnitt bezieht sich auf Code aus dem Beispiel IdentityConnectorSample.java, in dem Identitäten aus CSV-Dateien gelesen werden.
Einstiegspunkt des Connectors implementieren
Der Einstiegspunkt ist die Methode main(). Sie erstellt eine
Application
Instanz und ruft
start()
auf, um den Connector auszuführen.
Verwenden Sie
IdentityApplication.Builder
um die FullSyncIdentityConnector Vorlage zu instanziieren, bevor Sie application.start() aufrufen.
Das SDK ruft initConfig() auf, nachdem Ihre Methode main() Application.build() aufgerufen hat. Die Methode initConfig():
- Stellt sicher, dass die
Configurationnicht bereits initialisiert wurde. - Initialisiert das
Configuration-Objekt mit von Google bereitgestellten Schlüssel/Wert-Paaren.
Repository-Oberfläche implementieren
Das Repository-Objekt synchronisiert Repository-Identitäten mit Google-Identitäten. Wenn Sie eine Vorlage verwenden, müssen Sie nur bestimmte Methoden überschreiben. Überschreiben Sie für FullSyncIdentityConnector die folgenden Methoden:
init(): Für Einrichtung und Initialisierung.listUsers(): Zum Synchronisieren aller Nutzer.listGroups(): Zum Synchronisieren aller Gruppen.- Optional:
close(): Für die Bereinigung beim Herunterfahren.
Benutzerdefinierte Konfigurationsparameter abrufen
Rufen Sie benutzerdefinierte Parameter aus dem Configuration-Objekt ab, in der Regel in der Methode init(). Das folgende Snippet zeigt, wie Sie CSV-Pfade abrufen:
Wenn Sie einen Parameter mit mehreren Werten abrufen und parsen möchten, verwenden Sie einen der Typparser der Klasse Configuration, um die Daten in separate Teile zu parsen.
Das folgende Snippet aus dem Connectorbeispiel des Tutorials zeigt, wie Sie mithilfe der
getMultiValue
Methode eine Liste mit Namen von GitHub-Repositories erhalten:
Zuordnung für alle Nutzer abrufen
Überschreiben Sie listUsers(), um Nutzerzuordnungen abzurufen. Diese Methode akzeptiert einen Prüfpunkt, um die Synchronisierung bei einer Unterbrechung fortzusetzen. Für jeden Nutzer:
- Rufen Sie die Zuordnung zwischen der Google-Identität und der externen Identität ab.
- Packen Sie das Paar in den Iterator, der von
listUsers()zurückgegeben wird.
Nutzerzuordnung abrufen
In diesem Snippet wird gezeigt, wie Sie Identitätszuordnungen aus einer CSV-Datei abrufen:
Nutzerzuordnung in einen Iterator packen
Die listUsers() Methode gibt ein
CheckpointCloseableIterable
von
IdentityUser
Objekten zurück.
Gruppe abrufen
Überschreiben Sie listGroups(), um Gruppen und ihre Mitglieder abzurufen. Diese Methode akzeptiert einen Prüfpunkt. Für jede Gruppe:
- Rufen Sie die Gruppe und ihre Mitglieder ab.
- Packen Sie sie in den Iterator, der von
listGroups()zurückgegeben wird.
Gruppenidentität abrufen
In diesem Snippet wird gezeigt, wie Sie Gruppen und Mitglieder aus einer CSV-Datei abrufen:
Gruppe und Mitglieder in einen Iterator packen
Die Methode listGroups() gibt ein CheckpointCloseableIterable von
IdentityGroup
Objekten zurück.
Nächste Schritte
- Optional: Implementieren Sie
close(), um Ressourcen freizugeben. - Optional: Erstellen Sie einen Inhaltsconnector.