Standardmäßig werden von Google Cloud Search nur Google-Identitäten im Google Cloud-Verzeichnis erkannt. Mit Identitätsconnectors können Sie Unternehmensidentitäten mit den Google-Identitäten synchronisieren, die von Cloud Search verwendet werden.
Google bietet Ihnen die folgenden Möglichkeiten, Identitätsconnectors zu entwickeln:
Das Identity Connector SDK: Diese Option eignet sich am besten für Java-Entwickler. Das SDK ist ein Wrapper für die REST API, mit dem Sie schnell Connectors erstellen können. Informationen zur Verwendung des SDK finden Sie unter Mit dem Identity Connector SDK einen Identitätsconnector erstellen.
Eine Low-Level-REST API und API-Bibliotheken: Am besten für Programmierer, die nicht mit Java arbeiten. Wenn Sie mithilfe der REST API einen Identitätsconnector erstellen möchten, sollten Sie den Directory API-Leitfaden zu Nutzerkonten und die Dokumentation zu Google Cloud Identity lesen. Darin erhalten Sie mehr Informationen zur Zuordnung von Nutzern und Gruppen.
Mit dem Identity Connector SDK einen Identitätsconnector erstellen
Für einen normalen Identitätsconnector führen Sie die folgenden Schritte aus:
- Konfiguriert den Connector.
- Ruft Nutzer aus Ihrem Identitätssystem ab und sendet sie an Google.
- 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'
Connectorkonfiguration 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 identifizieren Ihr Repository und den für den Zugriff erforderlichen privaten Schlüssel.
- Identitätsconnector: Deklarieren Sie
api.identitySourceId, um Ihre externe Identitätsquelle zu identifizieren. Für die Nutzersynchronisierung müssen Sie auchapi.customerId(die eindeutige ID für Ihr Google Workspace-Konto) deklarieren.
Andere von Google bereitgestellte Parameter müssen nur deklariert werden, wenn Sie ihre Standardwerte überschreiben möchten. 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 beim Starten des Connectors das Argument -D. 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 erläutert, wie Sie das Tool verwenden.
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(). Dabei wird eine Application-Instanz erstellt und start() aufgerufen, um den Connector auszuführen.
Verwenden Sie IdentityApplication.Builder, um die Vorlage FullSyncIdentityConnector zu instanziieren, bevor Sie application.start() aufrufen.
Das SDK ruft initConfig() auf, nachdem Application.build() von der Methode main() aufgerufen wurde. Die Methode initConfig():
- Stellt sicher, dass
Configurationnoch nicht initialisiert wurde. - Initialisiert das
Configuration-Objekt mit den von Google bereitgestellten Schlüssel/Wert-Paaren.
Repository-Schnittstelle 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 die Einrichtung und Initialisierung.listUsers(): Alle Nutzer synchronisieren.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 CSV-Pfade abgerufen werden:
Wenn Sie einen Parameter abrufen und parsen möchten, der mehrere Werte enthält, verwenden Sie einen Typ-Parser der Klasse Configuration, um die Daten in einzelne Blöcke zu parsen.
Das folgende Snippet aus dem Connectorbeispiel des Tutorials zeigt, wie Sie mithilfe der Methode getMultiValue eine Liste mit Namen von GitHub-Repositories erhalten:
Zuordnung für alle Nutzer abrufen
Überschreiben Sie listUsers(), um Nutzerzuordnungen abzurufen. An diese Methode kann ein Prüfpunkt übergeben werden, um die Synchronisierung nach einer Unterbrechung fortzusetzen. Für jeden Nutzer:
- Die Zuordnung zwischen der Google-Identität und der externen Identität abrufen
- Fügen Sie dieses Paar dem Iterator hinzu, der von
listUsers()zurückgegeben wird.
Nutzerzuordnung abrufen
In diesem Snippet sehen Sie, wie Identitätszuordnungen aus einer CSV-Datei abgerufen werden:
Nutzerzuordnung in einen Iterator packen
Die Methode listUsers() gibt einen CheckpointCloseableIterable von IdentityUser-Objekten zurück.
Gruppe abrufen
Überschreiben Sie listGroups(), um Gruppen und deren Mitglieder abzurufen. Diese Methode akzeptiert einen Prüfpunkt. Für jede Gruppe:
- Rufen Sie die Gruppe und ihre Mitglieder ab.
- Fügen Sie sie dem Iterator hinzu, der von
listGroups()zurückgegeben wird.
Gruppenidentität abrufen
In diesem Snippet wird gezeigt, wie Gruppen und Mitglieder aus einer CSV-Datei abgerufen werden:
Gruppen samt Mitgliedern in einen Iterator packen
Die Methode listGroups() gibt eine CheckpointCloseableIterable von IdentityGroup-Objekten zurück.
Nächste Schritte
- Optional: Implementieren Sie
close(), um Ressourcen freizugeben. - Optional: Inhaltsconnector erstellen