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 programistó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 REST API, zapoznaj się z informacjami o mapowaniu użytkowników w Directory API: User Accounts oraz z informacjami 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 dostarczonych przez Google parametrów konfiguracji, 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.sourceId
iapi.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.customerId
jako 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ść systemową 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 FullSyncIdentityConnector
klasę szablonu, której możesz użyć do synchronizowania 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
przykładu. 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
do utworzenia instancji 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 wywołaniu przez metodę main()
łącznika metody
Application.build
.
Metoda initConfig()
wykonuje te zadania:
- Wywołuje metodę
Configuation.isInitialized()
, aby upewnić się, że zmiennaConfiguration
nie została zainicjowana. - 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 synchronizacja 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 metodzie init()
klasy Repository
.
Klasa Configuration
ma kilka metod pobierania z konfiguracji różnych typów danych. Każda metoda zwraca obiekt ConfigValue
. Następnie użyj metody ConfigValue
obiektu
get()
do pobrania rzeczywistej wartości.
Ten 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 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ć 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()
:
- Uzyskaj 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żytkownika
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
zawierający obiekty 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:
Pobieranie 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 zapisanych w pliku CSV:
Spakuj grupę i jej członków w iteratorze.
Metoda listGroups()
zwraca obiekt Iterator
, a konkretnie obiekt CheckpointCloseableIterable
zawierający obiekty 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 utworzyć z niej iterator:
Następne kroki
Oto kilka kolejnych kroków, które możesz podjąć:
- (opcjonalnie) Zaimplementuj metodę close(), aby zwolnić wszystkie zasoby przed wyłączeniem.
- (opcjonalnie) Utwórz oprogramowanie sprzęgające treści za pomocą pakietu SDK Content Connector.