Domyślnie Google Cloud Search rozpoznaje tylko tożsamości Google przechowywane w Google Cloud Directory (użytkownicy i grupy). Połączenia tożsamości służą do synchronizowania tożsamości Twojej firmy z tożsamościami Google używanymi przez Google Cloud Search.
Google udostępnia te opcje tworzenia łączników tożsamości:
Pakiet SDK łącznika tożsamości. Ta opcja jest przeznaczona dla programistów, którzy programują w języku Java. Pakiet SDK oprogramowania sprzęgającego tożsamości to opakowanie interfejsu API REST, które umożliwia szybkie tworzenie oprogramowania sprzęgającego. Aby utworzyć łącznik tożsamości za pomocą pakietu SDK, zapoznaj się z artykułem Tworzenie łącznika tożsamości za pomocą pakietu SDK Identity Connector.
interfejs API REST niskiego poziomu i biblioteki API; Te opcje są przeznaczone dla programistów, którzy nie programują w języku Java lub których kod źródłowy lepiej współpracuje z interfejsem REST API lub biblioteką. Aby utworzyć łącznik tożsamości za pomocą interfejsu API REST, zapoznaj się z artykułem Directory API: User Accounts (Interfejs Directory API: konta użytkowników) oraz dokumentacją Cloud Identity (dokumentacja Cloud Identity).
Tworzenie łącznika tożsamości za pomocą pakietu SDK łącznika tożsamości
Typowy łącznik tożsamości wykonuje te zadania:
- Skonfiguruj oprogramowanie sprzęgające.
- Pobierz wszystkich użytkowników z systemu tożsamości korporacyjnej i prześlij ich do Google w celu zsynchronizowania z tożsamościami Google.
- Pobierz wszystkie grupy z systemu tożsamości korporacyjnej i prześlij je do Google w celu zsynchronizowania z tożsamościami Google.
Konfigurowanie zależności
Aby korzystać z pakietu SDK, musisz uwzględnić w pliku kompilacji określone zależności. Aby wyświetlić zależności środowiska 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żdy łącznik ma plik konfiguracji zawierający parametry używane przez ten łącznik, takie jak identyfikator repozytorium. Parametry są definiowane jako pary klucz-wartość, np. api.sourceId=1234567890abcdef
.
Pakiet SDK Google Cloud Search zawiera kilka parametrów konfiguracji dostarczonych przez Google, które są używane przez wszystkie oprogramowania sprzęgające. W pliku konfiguracyjnym musisz zadeklarować te parametry dostarczane przez Google:
- W przypadku łącznika treści musisz zadeklarować parametry
api.sourceId
iapi.serviceAccountPrivateKeyFile
, ponieważ wskazują one lokalizację repozytorium i klucz prywatny potrzebny do uzyskania dostępu do repozytorium.
- W przypadku łącznika tożsamości musisz zadeklarować parametr
api.identitySourceId
, ponieważ wskazuje on lokalizację zewnętrznego źródła tożsamości. Jeśli synchronizujesz użytkowników, musisz też zadeklarowaćapi.customerId
jako unikalny identyfikator konta Google Workspace Twojej firmy.
O ile nie chcesz zastąpić domyślnych wartości innych parametrów dostarczanych przez Google, nie musisz ich deklarować w pliku konfiguracyjnym. Więcej informacji o parametrach konfiguracji udostępnianych przez Google, np. o generowaniu określonych identyfikatorów i kluczy, znajdziesz w artykule Parametry konfiguracji udostępniane przez Google.
Możesz też zdefiniować własne parametry repozytorium, które będą używane w pliku konfiguracyjnym.
Przekazywanie pliku konfiguracji do oprogramowania sprzęgającego
Ustaw właściwość systemową config
, aby przekazać plik konfiguracji do łącznika. Podczas uruchamiania łącznika możesz ustawić tę właściwość za pomocą argumentu -D
. Na przykład to polecenie uruchamia łącznik za pomocą pliku konfiguracji MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Jeśli ten argument jest nieobecny, pakiet SDK próbuje uzyskać dostęp do domyślnego pliku konfiguracji o nazwie connector-config.properties
.
Tworzenie pełnego łącznika tożsamości z użyciem klasy szablonu
Pakiet SDK łącznika tożsamości zawiera klasę szablonu FullSyncIdentityConnector
, której możesz użyć do zsynchronizowania wszystkich użytkowników i grup z repozytorium tożsamości z tożsamościami Google. Z tej sekcji dowiesz się, jak użyć szablonu FullSyncIdentityConnector
do pełnej synchronizacji użytkowników i grup z repozytorium tożsamości spoza Google.
Ta sekcja dokumentów odnosi się do fragmentów kodu z przykładu IdentityConnecorSample.java
. Ten przykład odczytuje tożsamości użytkowników i grup z 2 plików CSV i zsynchronizuje je z tożsamościami Google.
Implementacja punktu wejścia oprogramowania sprzęgającego
Punkt wejścia do łącznika to metoda main()
. Głównym zadaniem tej metody jest utworzenie instancji klasy Application
i wywołanie jej metody start()
, aby uruchomić oprogramowanie sprzęgające.
Zanim wywołasz funkcję application.start()
, użyj klasy IdentityApplication.Builder
, aby utworzyć instancję szablonu FullSyncIdentityConnector
. Funkcja FullSyncIdentityConnector
przyjmuje obiekt Repository
, którego metody zaimplementujesz.
Ten fragment kodu pokazuje, jak zastosować metodę main()
:
W tle pakiet SDK wywołuje metodę initConfig()
, gdy metoda main()
w konektorze wywołuje metodę Application.build
.
Metoda initConfig()
wykonuje te zadania:
- Wywołuje metodę
Configuation.isInitialized()
, aby sprawdzić, czy nie została zainicjowana metodaConfiguration
. - Inicjuje obiekt
Configuration
za pomocą par klucz-wartość dostarczonych przez Google. Każda para klucz-wartość jest przechowywana w obiekcieConfigValue
w obiekcieConfiguration
.
Zaimplementuj interfejs Repository
.
Jedynym celem obiektu Repository
jest zsynchronizowanie tożsamości repozytorium z tożsamościami Google. Aby utworzyć łącznik tożsamości, wystarczy zastąpić w interfejsie Repository
tylko niektóre metody. W przypadku
FullTraversalConnector
najprawdopodobniej zastąpisz te metody:
metoda
init()
. Aby przeprowadzić konfigurację i inicjalizację repozytorium tożsamości, zastąpij metodę init().metoda
listUsers()
. Aby zsynchronizować wszystkich użytkowników w repozytorium tożsamości z użytkownikami Google, zastąpij metodęlistUsers()
.metoda
listGroups()
. Aby zsynchronizować wszystkie grupy w repozytorium tożsamości z Google Groups, zastąpij metodęlistGroups()
.(Opcjonalnie) metoda
close()
. Jeśli musisz wyczyścić repozytorium, zastąpij metodęclose()
. Ta metoda jest wywoływana raz podczas zamykania łącznika.
Pobieranie parametrów konfiguracji niestandardowej
W ramach obsługi konfiguracji łącznika musisz pobrać wszystkie parametry niestandardowe z obiektu Configuration
. Zwykle jest to wykonywane w metodach klasy Repository
init()
.
Klasa Configuration
udostępnia kilka metod umożliwiających pobieranie różnych typów danych z konfiguracji. Każda metoda zwraca obiekt ConfigValue
. Następnie użyjesz metody get()
obiektu ConfigValue
, aby pobrać rzeczywistą wartość.
Ten fragment kodu pokazuje, jak pobrać wartości userMappingCsvPath
i groupMappingCsvPath
z obiektu Configuration
:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednego z analizatorów typu klasy Configuration
, aby przeanalizować dane na oddzielne fragmenty.
Ten fragment kodu z konektora w samouczku używa metody getMultiValue
do uzyskania listy nazw repozytoriów GitHub:
Pobieranie mapowania dla wszystkich użytkowników
Zastąp:
listUsers()
, aby pobrać mapowanie wszystkich użytkowników z repozytorium tożsamości. Metoda listUsers()
przyjmuje punkt kontrolny reprezentujący ostatnią zsynchronizowaną tożsamość. W przypadku przerwania procesu synchronizacji możesz użyć punktu kontrolnego, aby wznowić synchronizację. W przypadku każdego użytkownika w repozytorium wykonaj te czynności w metodzie listUsers()
:
- Uzyskaj mapowanie tożsamości Google i powiązanej z nią tożsamości zewnętrznej.
- Prześlij parę do licznika zwracanego przez metodę
listUsers()
.
Pobieranie mapowania użytkownika
Ten fragment kodu pokazuje, jak pobierać mapowania tożsamości zapisane w pliku CSV:
Pakowanie mapowania użytkownika w iterator
Metoda listUsers()
zwraca obiekt Iterator
, a w szczególności CheckpointCloseableIterable
obiektów IdentityUser
. Aby utworzyć i zwrócić iterator, możesz użyć klasy CheckpointClosableIterableImpl.Builder
. Poniższy fragment kodu pokazuje, jak zapakować każde mapowanie do listy, aby utworzyć z niej iterator:
Utwórz grupę
Zastąpij parametr listGroups()
, aby pobrać wszystkie grupy i ich członków z repozytorium tożsamości. Metoda listGroups()
przyjmuje punkt kontrolny reprezentujący ostatnią tożsamość do zsynchronizowania. W przypadku przerwania procesu możesz użyć punktu kontrolnego, aby wznowić synchronizację. W przypadku każdego użytkownika w repozytorium wykonaj te czynności w ramach metody listGroups()
:
- Pobierz grupę i jej członków.
- Spakuj każdą grupę i jej członków do licznika zwracanego przez metodę
listGroups()
.
Pobieranie tożsamości grupy
Ten fragment kodu pokazuje, jak pobierać grupy i ich członków z pliku CSV:
Spakuj grupę i jej członków do iteratora.
Metoda listGroups()
zwraca obiekt Iterator
, a w szczególności CheckpointCloseableIterable
obiektów IdentityGroup
.
Aby utworzyć i zwrócić iterator, możesz użyć klasy CheckpointClosableIterableImpl.Builder
. Ten fragment kodu pokazuje, jak zapakować każdą grupę i jej elementy do listy oraz utworzyć na jej podstawie iterator:
Następne kroki
Oto kilka kolejnych kroków, które możesz wykonać:
- (Opcjonalnie) Zaimplementuj metodę close(), aby zwolnić wszystkie zasoby przed wyłączeniem.
- (Opcjonalnie) Utwórz łącznik treści za pomocą pakietu SDK Content Connector.