Domyślnie Google Cloud Search rozpoznaje tylko tożsamości Google w katalogu Google Cloud. Użyj oprogramowania sprzęgającego 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ści:
Pakiet SDK oprogramowania sprzęgającego tożsamości: najlepszy dla programistów w języku Java. Pakiet SDK to otoka interfejsu API typu REST, która umożliwia szybkie tworzenie oprogramowania sprzęgającego. Aby używać pakietu SDK, przeczytaj artykuł Tworzenie łącznika tożsamości za pomocą pakietu SDK łącznika tożsamości.
Interfejs API typu REST niskiego poziomu i biblioteki interfejsu API: najlepsze dla programistów, którzy nie używają języka Java. Aby utworzyć łącznik tożsamości za pomocą interfejsu API typu REST, przeczytaj artykuł Directory API: User Accounts (Interfejs Directory API: konta użytkowników) dotyczący mapowania użytkowników oraz dokumentację Google Cloud Identity dotyczącą mapowania 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
Dołącz te zależności do 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 konfiguracyjnego do określania parametrów, takich jak identyfikator repozytorium.
Zdefiniuj parametry jako klucz-wartość pary, takie jak
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 repozytorium i klucz prywatny wymagany do uzyskania dostępu.
- Łącznik tożsamości: zadeklaruj
api.identitySourceId, aby zidentyfikować swoje zewnętrzne źródło tożsamości. W przypadku synchronizacji użytkowników zadeklaruj teżapi.customerId(unikalny identyfikator konta Google Workspace).
Zadeklaruj inne parametry dostarczone przez Google tylko wtedy, gdy chcesz zastąpić ich wartości domyślne. Więcej informacji o generowaniu identyfikatorów i kluczy znajdziesz w artykule Parametry dostarczone przez Google.
W pliku konfiguracyjnym możesz też zdefiniować parametry specyficzne dla repozytorium.
Przekazywanie pliku konfiguracyjnego do oprogramowania sprzęgającego
Aby przekazać plik konfiguracyjny, ustaw właściwość systemową config. 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 z pełną synchronizacją za pomocą klasy szablonu
Pakiet SDK zawiera szablon FullSyncIdentityConnector, który umożliwia synchronizowanie wszystkich użytkowników i grup z repozytorium. W tej sekcji dowiesz się, jak go używać.
Ta sekcja odnosi się do kodu z przykładu IdentityConnectorSample.java, który odczytuje tożsamości z plików CSV.
Implementowanie punktu wejścia oprogramowania sprzęgającego
Punktem wejścia jest metoda main(). Tworzy ona instancję
Application
i wywołuje
start()
, aby uruchomić oprogramowanie sprzęgające.
Zanim wywołasz application.start(), użyj
IdentityApplication.Builder
aby utworzyć instancję szablonu FullSyncIdentityConnector.
Pakiet SDK wywołuje initConfig() po tym, jak metoda main() wywoła Application.build(). Metoda initConfig():
- Sprawdza, czy
Configurationnie jest jeszcze zainicjowana. - Inicjuje obiekt
Configurationza pomocą par klucz-wartość dostarczonych przez Google.
Implementowanie interfejsu repozytorium
Obiekt Repository synchronizuje tożsamości 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(): do synchronizowania wszystkich użytkowników.listGroups(): do synchronizowania wszystkich grup.- (Opcjonalnie)
close(): Do czyszczenia podczas zamykania.
Pobieranie niestandardowych parametrów konfiguracji
Pobierz parametry niestandardowe z obiektu Configuration, zwykle w metodzie init(). Ten fragment kodu pokazuje, jak pobrać ścieżki CSV:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednego z analizatorów typów klasy Configuration, aby podzielić dane na osobne części.
Ten fragment kodu z oprogramowania sprzęgającego samouczka używa metody
getMultiValue
do pobierania listy nazw repozytoriów GitHub:
Pobieranie mapowania wszystkich użytkowników
Zastąp listUsers(), aby pobrać mapowania użytkowników. Ta metoda akceptuje punkt kontrolny, aby wznowić synchronizację w przypadku przerwania. W przypadku każdego użytkownika:
- Pobierz mapowanie między tożsamością Google a tożsamością zewnętrzną.
- Spakuj parę do iteratora zwracanego przez
listUsers().
Pobieranie mapowania użytkownika
Ten fragment kodu pokazuje, jak pobrać mapowania tożsamości z pliku CSV:
Pakowanie mapowania użytkownika do iteratora
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. W przypadku każdej grupy:
- Pobierz grupę i jej członków.
- Spakuj je do iteratora zwracanego przez
listGroups().
Pobieranie tożsamości grupy
Ten fragment kodu pokazuje, jak pobrać grupy i członków z pliku CSV:
Pakowanie grupy i członków do iteratora
Metoda listGroups() zwraca CheckpointCloseableIterable obiektów
IdentityGroup.
Następne kroki
- (Opcjonalnie) Zaimplementuj
close()aby zwolnić zasoby. - (Opcjonalnie) Utwórz łącznik treści.