Domyślnie Google Cloud Search rozpoznaje tylko tożsamości Google w katalogu Google Cloud. Użyj łączników tożsamości, aby zsynchronizować tożsamości firmowe z tożsamościami Google, których używa Cloud Search.
Google udostępnia te opcje tworzenia oprogramowania sprzęgającego tożsamość:
Pakiet SDK Identity Connector: najlepszy dla programistów Java. Pakiet SDK to otoczka interfejsu API typu REST, która umożliwia szybkie tworzenie oprogramowania sprzęgającego. Aby użyć pakietu SDK, zapoznaj się z artykułem Tworzenie łącznika tożsamości za pomocą pakietu SDK łącznika tożsamości.
Interfejs REST API niskiego poziomu i biblioteki interfejsu API: najlepsze rozwiązanie dla programistów, którzy nie używają języka Java. Aby utworzyć łącznik tożsamości za pomocą interfejsu API (typu) REST, zapoznaj się z artykułem Directory API: User Accounts, w którym znajdziesz informacje o mapowaniu użytkowników, oraz z dokumentacją Google Cloud Identity, w której znajdziesz informacje o mapowaniu grup.
Tworzenie łącznika tożsamości za pomocą pakietu SDK łącznika tożsamości
Typowy łącznik tożsamości wykonuje te zadania:
- Konfiguruje oprogramowanie sprzęgające.
- Pobiera użytkowników z systemu tożsamości i wysyła ich do Google.
- Pobiera grupy z systemu tożsamości i wysyła je do Google.
Konfigurowanie zależności
Uwzględnij te zależności w pliku kompilacji.
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'
Tworzenie konfiguracji oprogramowania sprzęgającego
Każde oprogramowanie sprzęgające używa pliku konfiguracji do określania parametrów, takich jak identyfikator repozytorium.
Zdefiniuj parametry jako pary klucz-wartość, np. api.sourceId=1234567890abcdef.
Pakiet Google Cloud Search SDK zawiera parametry dostarczone przez Google dla wszystkich oprogramowań sprzęgających. W pliku konfiguracyjnym musisz zadeklarować te elementy:
- Łącznik treści: zadeklaruj
api.sourceIdiapi.serviceAccountPrivateKeyFile. Określają one Twoje repozytorium i klucz prywatny potrzebny do uzyskania dostępu.
- Łącznik tożsamości: zadeklaruj
api.identitySourceId, aby zidentyfikować zewnętrzne źródło tożsamości. W przypadku synchronizacji użytkowników zadeklaruj teżapi.customerId(unikalny identyfikator konta Google Workspace).
Deklaruj inne parametry dostarczane przez Google tylko wtedy, gdy chcesz zastąpić ich wartości domyślne. Szczegółowe informacje o generowaniu identyfikatorów i kluczy znajdziesz w sekcji Parametry dostarczane przez Google.
W pliku konfiguracyjnym możesz też zdefiniować parametry specyficzne dla repozytorium.
Przekazywanie pliku konfiguracji do oprogramowania sprzęgającego
Ustaw właściwość systemową config, aby przekazać plik konfiguracji. Podczas uruchamiania oprogramowania sprzęgającego użyj argumentu -D. Na przykład:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Jeśli pominiesz ten argument, pakiet SDK spróbuje użyć pliku o nazwie
connector-config.properties w katalogu lokalnym.
Tworzenie łącznika tożsamości pełnej synchronizacji za pomocą klasy szablonu
Pakiet SDK zawiera szablon FullSyncIdentityConnector do synchronizowania wszystkich użytkowników i grup z repozytorium. W tej sekcji dowiesz się, jak z niej korzystać.
Ta sekcja odnosi się do kodu z przykładowego pliku IdentityConnectorSample.java, który odczytuje tożsamości z plików CSV.
Wdrażanie punktu wejścia oprogramowania sprzęgającego
Punktem wejścia jest metoda main(). Tworzy instancję Application i wywołuje start(), aby uruchomić oprogramowanie sprzęgające.
Przed wywołaniem funkcji application.start() użyj funkcji IdentityApplication.Builder, aby utworzyć instancję szablonu FullSyncIdentityConnector.
Pakiet SDK wywołuje funkcję initConfig() po wywołaniu przez metodę main() funkcji Application.build(). Metoda initConfig():
- Sprawdza, czy element
Configurationnie został jeszcze zainicjowany. - Inicjuje obiekt
Configurationza pomocą par klucz-wartość dostarczonych przez Google.
Implementowanie interfejsu Repository
Repository synchronizuje tożsamości z repozytorium z tożsamościami Google. Gdy używasz szablonu, musisz zastąpić tylko niektóre metody. W przypadku
FullSyncIdentityConnector zastąp te metody:
init(): do konfiguracji i inicjowania.listUsers(): synchronizacja wszystkich użytkowników.listGroups(): synchronizuje wszystkie grupy.- (Opcjonalnie)
close(): do czyszczenia podczas zamykania.
Uzyskiwanie parametrów konfiguracji niestandardowej
Pobierz parametry niestandardowe z obiektu Configuration, zwykle w metodzie init(). Poniższy fragment kodu pokazuje, jak pobrać ścieżki do plików CSV:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednego z parserów typów klasy
Configuration, aby podzielić dane na odrębne części.
Poniższy fragment kodu z konektora samouczka używa metody getMultiValue do pobrania listy nazw repozytoriów GitHub:
Pobieranie mapowania dla wszystkich użytkowników
Zastąp listUsers(), aby pobrać mapowania użytkowników. Ta metoda akceptuje punkt kontrolny, aby wznowić synchronizację w przypadku przerwania. Dla każdego użytkownika:
- Uzyskaj mapowanie między tożsamością Google a tożsamością zewnętrzną.
- Zapakuj parę do iteratora zwróconego przez
listUsers().
Pobieranie mapowania użytkowników
Ten fragment kodu pokazuje, jak pobrać mapowania tożsamości z pliku CSV:
Pakowanie mapowania użytkowników w iterator
Metoda listUsers() zwraca CheckpointCloseableIterable obiektów IdentityUser.
Pobieranie grupy
Zastąp listGroups(), aby pobrać grupy i ich członków. Ta metoda akceptuje punkt kontrolny. Dla każdej grupy:
- Pobierz grupę i jej członków.
- Zapakuj je w iterator zwrócony przez
listGroups().
Pobieranie tożsamości grupy
Ten fragment kodu pokazuje, jak pobrać grupy i członków z pliku CSV:
Spakuj grupę i jej członków w iteratorze.
Metoda listGroups() zwraca CheckpointCloseableIterable obiektów IdentityGroup.
Następne kroki
- (Opcjonalnie) Zaimplementuj
close()aby zwolnić zasoby. - (Opcjonalnie) Utwórz łącznik treści.