Domyślnie Google Cloud Search rozpoznaje tylko tożsamości Google przechowywane w katalogu Google Cloud (użytkowników i grupy). Łączniki tożsamości służą do synchronizowania tożsamości przedsiębiorstwa 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 otoczka interfejsu API REST, która 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 łącznika tożsamości.
Interfejs API REST niskiego poziomu i biblioteki interfejsów API. Te opcje są przeznaczone dla deweloperów, którzy nie programują w języku Java lub których baza kodu lepiej obsługuje interfejs API REST lub bibliotekę. Aby utworzyć oprogramowanie sprzęgające tożsamości za pomocą interfejsu API REST, zapoznaj się z informacjami o mapowaniu użytkowników w Directory API: User Accounts i o mapowaniu grup w dokumentacji Cloud Identity.
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:
- Skonfiguruj oprogramowanie sprzęgające.
- Pobierz wszystkich użytkowników z systemu tożsamości przedsiębiorstwa i wyślij ich do Google w celu zsynchronizowania z tożsamościami Google.
- Pobierz wszystkie grupy z systemu tożsamości przedsiębiorstwa i wyślij je do Google w celu synchronizacji 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. Kliknij kartę poniżej, aby wyświetlić zależności dla ś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 konfiguracyjny zawierający parametry używane przez łącznik, takie jak identyfikator repozytorium. Parametry są zdefiniowane jako pary klucz-wartość, np.api.sourceId=1234567890abcdef.
Pakiet SDK Google Cloud Search zawiera kilka parametrów konfiguracyjnych dostarczonych przez Google, które są używane przez wszystkie oprogramowania sprzęgające. W pliku konfiguracyjnym musisz zadeklarować te parametry dostarczone przez Google:
- W przypadku łącznika treści musisz zadeklarować parametry
api.sourceIdiapi.serviceAccountPrivateKeyFile, ponieważ identyfikują one lokalizację repozytorium i klucza prywatnego potrzebnego do uzyskania dostępu do repozytorium.
- W przypadku łącznika tożsamości musisz zadeklarować
api.identitySourceId, ponieważ ten parametr określa lokalizację zewnętrznego źródła tożsamości. Jeśli synchronizujesz użytkowników, musisz też zadeklarowaćapi.customerIdjako unikalny identyfikator konta Google Workspace Twojej firmy.
Jeśli nie chcesz zastępować domyślnych wartości innych parametrów dostarczonych przez Google, nie musisz deklarować ich w pliku konfiguracyjnym. Więcej informacji o parametrach konfiguracyjnych dostarczanych przez Google, np. o tym, jak generować określone identyfikatory i klucze, znajdziesz w artykule Parametry konfiguracyjne dostarczane przez Google.
Możesz też zdefiniować własne parametry specyficzne dla repozytorium, które będą używane w pliku konfiguracyjnym.
Przekazywanie pliku konfiguracji do oprogramowania sprzęgającego
Ustaw właściwość systemu config, aby przekazać plik konfiguracji do łącznika. Usługę możesz ustawić za pomocą argumentu -D podczas uruchamiania
złącza. Na przykład to polecenie uruchamia łącznik
z plikiem konfiguracyjnym MyConfig.properties:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Jeśli tego argumentu brakuje, pakiet SDK próbuje uzyskać dostęp do domyślnego pliku konfiguracyjnego o nazwie connector-config.properties.
Tworzenie łącznika tożsamości pełnej synchronizacji za pomocą klasy szablonu
Pakiet SDK łącznika tożsamości zawiera FullSyncIdentityConnectorklasę szablonu
umożliwiającą synchronizację wszystkich użytkowników i grup z repozytorium tożsamości z tożsamościami Google. W tej sekcji wyjaśniamy, jak za pomocą szablonuFullSyncIdentityConnector przeprowadzić pełną synchronizację użytkowników i grup z repozytorium tożsamości innego niż Google.
Ta sekcja dokumentacji odnosi się do fragmentów kodu z IdentityConnecorSample.java. Ten przykład odczytuje tożsamości użytkowników i grup z 2 plików CSV i synchronizuje je z tożsamościami Google.
Wdrażanie punktu wejścia oprogramowania sprzęgającego
Punktem wejścia do łącznika jest metoda main(). Głównym zadaniem tej metody jest utworzenie instancji klasy
Application
i wywołanie jej metody
start()
w celu uruchomienia oprogramowania sprzęgającego.
Przed wywołaniem funkcji
application.start()
użyj klasy
IdentityApplication.Builder, aby utworzyć instancję szablonu
FullSyncIdentityConnector. Metoda FullSyncIdentityConnector przyjmuje obiekt Repository, którego metody będziesz implementować.
Poniższy fragment kodu pokazuje, jak wdrożyć metodę main():
W tle pakiet SDK wywołuje metodę initConfig() po tym, jak metoda main() łącznika wywoła metodę Application.build.
Metoda initConfig() wykonuje te zadania:
- Wywołuje metodę
Configuation.isInitialized(), aby upewnić się, że zmiennaConfigurationnie została zainicjowana. - Inicjuje obiekt
Configurationza pomocą par klucz-wartość dostarczonych przez Google. Każda para klucz-wartość jest przechowywana w obiekcieConfigValuew obiekcieConfiguration.
Zaimplementuj interfejs Repository.
Obiekt Repository służy wyłącznie do synchronizowania tożsamości repozytorium z tożsamościami Google. Jeśli używasz szablonu, wystarczy zastąpić niektóre metody w interfejsie Repository, aby utworzyć łącznik tożsamości. W przypadku
FullTraversalConnector
prawdopodobnie zastąpisz te metody:
Metoda
init(). Aby przeprowadzić konfigurację i inicjalizację repozytorium tożsamości, zastąp metodę `init()`.Metoda
listUsers(). Aby zsynchronizować wszystkich użytkowników w repozytorium tożsamości z użytkownikami Google, zastąp metodęlistUsers().Metoda
listGroups(). Aby zsynchronizować wszystkie grupy w repozytorium tożsamości z Grupami Google, zastąp metodęlistGroups().(opcjonalnie) Metoda
close(). Jeśli musisz wyczyścić repozytorium, zastąp metodęclose(). Ta metoda jest wywoływana raz podczas zamykania oprogramowania sprzęgającego.
Pobieranie parametrów konfiguracji niestandardowej
W ramach obsługi konfiguracji konektora musisz pobrać wszystkie parametry niestandardowe z obiektu Configuration. To zadanie jest zwykle wykonywane w Repository
metodzie init()
klasy.
Klasa Configuration ma kilka metod pobierania z konfiguracji różnych typów danych. Każda metoda zwraca obiekt ConfigValue. Następnie użyj metody get() obiektu ConfigValue, aby pobrać rzeczywistą wartość.
Poniższy fragment kodu pokazuje, jak pobrać wartość userMappingCsvPath i groupMappingCsvPath z obiektu Configuration:
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 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ć mapowanie wszystkich użytkowników z repozytorium tożsamości. Metoda listUsers() akceptuje punkt kontrolny reprezentujący ostatnią tożsamość, która ma zostać zsynchronizowana. Punkt kontrolny może służyć do wznowienia synchronizacji w przypadku przerwania procesu. W przypadku każdego użytkownika w repozytorium wykonasz te czynności w metodzie listUsers():
- Pobierz mapowanie składające się z tożsamości Google i powiązanej z nią tożsamości zewnętrznej.
- Zapakuj parę w iterator zwrócony przez metodę
listUsers().
Pobieranie mapowania użytkowników
Poniższy fragment kodu pokazuje, jak pobrać mapowania tożsamości przechowywane w pliku CSV:
Spakuj mapowanie użytkowników do iteratora.
Metoda listUsers() zwraca obiekt Iterator, a konkretnie obiekt CheckpointCloseableIterable obiektów IdentityUser. Możesz użyć klasy
CheckpointClosableIterableImpl.Builder
do utworzenia i zwrócenia iteratora. Poniższy fragment kodu pokazuje, jak spakować każde mapowanie do listy i utworzyć z niej iterator:
Uzyskiwanie grupy
Zastąp
listGroups()
aby pobrać wszystkie grupy i ich członków z repozytorium tożsamości. Metoda listGroups() akceptuje punkt kontrolny reprezentujący ostatnią tożsamość do zsynchronizowania. Punkt kontrolny może służyć do wznowienia synchronizacji w przypadku przerwania procesu. W przypadku każdego użytkownika w repozytorium wykonasz te czynności w metodzie listGroups():
- Pobierz grupę i jej członków.
- Zapakuj każdą grupę i jej członków w iterator zwrócony przez metodę
listGroups().
Pobieranie tożsamości grupy
Poniższy fragment kodu pokazuje, jak pobrać grupy i członków przechowywanych w pliku CSV:
Spakuj grupę i jej członków w iteratorze.
Metoda listGroups() zwraca obiekt Iterator, a konkretnie obiekt CheckpointCloseableIterable obiektów IdentityGroup.
Możesz użyć klasy
CheckpointClosableIterableImpl.Builder
do utworzenia i zwrócenia iteratora. Poniższy fragment kodu pokazuje, jak spakować każdą grupę i jej członków na listę i z niej utworzyć iterator:
Następne kroki
Oto kilka kolejnych kroków, które możesz podjąć:
- (opcjonalnie) Zaimplementuj metodę close(), aby zwolnić zasoby przed wyłączeniem.
- (opcjonalnie) Utwórz oprogramowanie sprzęgające treści za pomocą pakietu SDK Content Connector.