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 otoka interfejsu API 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 API: najlepsze rozwiązanie dla programistów, którzy nie używają języka Java. Aby utworzyć oprogramowanie sprzęgające tożsamości za pomocą interfejsu API 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 oprogramowania sprzęgającego tożsamości za pomocą pakietu SDK oprogramowania sprzęgającego 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 łączników. 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
Punkt wejścia to 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
do utworzenia instancji szablonu FullSyncIdentityConnector.
Pakiet SDK wywołuje funkcję initConfig() po wywołaniu metody main()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.
Pobieranie 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 pobierania 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.
Uzyskiwanie 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 oprogramowanie sprzęgające treści.