По умолчанию Google Cloud Search распознает только идентификационные данные Google, хранящиеся в Google Cloud Directory (пользователей и группы). Соединители удостоверений используются для синхронизации удостоверений вашего предприятия с удостоверениями Google, используемыми Google Cloud Search.
Google предоставляет следующие варианты разработки соединителей удостоверений:
SDK Identity Connector. Этот вариант предназначен для разработчиков, программирующих на языке программирования Java. SDK Identity Connector — это оболочка REST API, позволяющая быстро создавать соединители. Чтобы создать соединитель удостоверения с помощью SDK, ознакомьтесь со статьей Создание соединителя удостоверений с помощью SDK Identity Connector .
Низкоуровневый REST API и библиотеки API. Эти варианты предназначены для разработчиков, которые, возможно, не программируют на Java или чья кодовая база лучше подходит для REST API или библиотеки. Чтобы создать соединитель идентификации с помощью REST API, обратитесь к API каталога: учетные записи пользователей для получения информации о сопоставлении пользователей и документации Cloud Identity для получения информации о сопоставлении групп.
Создайте соединитель удостоверений с помощью SDK Identity Connector.
Типичный соединитель удостоверений выполняет следующие задачи:
- Настройте разъем.
- Получите всех пользователей из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
- Получите все группы из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
Настройка зависимостей
Чтобы использовать SDK, вы должны включить определенные зависимости в файл сборки. Нажмите на вкладку ниже, чтобы просмотреть зависимости для вашей среды сборки:
Мавен
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Градл
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Создайте конфигурацию соединителя
У каждого соединителя есть файл конфигурации, содержащий параметры, используемые соединителем, например идентификатор вашего репозитория. Параметры определяются как пары ключ-значение , например api.sourceId= 1234567890abcdef
.
SDK Google Cloud Search содержит несколько предоставленных Google параметров конфигурации, используемых всеми соединителями. Вы должны объявить следующие параметры, предоставленные Google, в вашем файле конфигурации:
- Для соединителя контента необходимо объявить
api.sourceId
иapi.serviceAccountPrivateKeyFile
, поскольку эти параметры определяют расположение вашего репозитория и закрытый ключ, необходимый для доступа к репозиторию.
- Для соединителя удостоверений необходимо объявить
api.identitySourceId
, поскольку этот параметр определяет расположение вашего внешнего источника удостоверений. Если вы синхронизируете пользователей, вы также должны объявитьapi.customerId
в качестве уникального идентификатора учетной записи Google Workspace вашего предприятия.
Если вы не хотите переопределить значения по умолчанию для других параметров, предоставленных Google, вам не нужно объявлять их в файле конфигурации. Дополнительную информацию о параметрах конфигурации, предоставляемых Google, например о том, как генерировать определенные идентификаторы и ключи, см. в разделе Параметры конфигурации, предоставляемые Google .
Вы также можете определить свои собственные параметры, специфичные для репозитория, для использования в файле конфигурации.
Передайте файл конфигурации в коннектор
Настройте системное свойство config
для передачи файла конфигурации в соединитель. Вы можете установить это свойство, используя аргумент -D
при запуске коннектора. Например, следующая команда запускает соединитель с файлом конфигурации MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Если этот аргумент отсутствует, SDK пытается получить доступ к файлу конфигурации по умолчанию с именем connector-config.properties
.
Создайте соединитель удостоверений полной синхронизации с помощью класса шаблона.
SDK Identity Connector содержит класс шаблона FullSyncIdentityConnector
, который можно использовать для синхронизации всех пользователей и групп из репозитория удостоверений с удостоверениями Google. В этом разделе объясняется, как использовать шаблон FullSyncIdentityConnector
для полной синхронизации пользователей и групп из хранилища идентификационных данных, не относящегося к Google.
Этот раздел документации относится к фрагментам кода из примера IdentityConnecorSample.java
. В этом примере идентификаторы пользователей и групп считываются из двух файлов CSV и синхронизируются с идентификаторами Google.
Реализация точки входа соединителя
Точкой входа в коннектор является метод main()
. Основная задача этого метода — создать экземпляр класса Application
и вызвать его метод start()
для запуска соединителя.
Прежде чем вызывать application.start()
, используйте класс IdentityApplication.Builder
для создания экземпляра шаблона FullSyncIdentityConnector
. FullSyncIdentityConnector
принимает объект Repository
, методы которого вы будете реализовывать. Следующий фрагмент кода показывает, как реализовать метод main()
:
За кулисами SDK вызывает метод initConfig()
после того, как метод main()
вашего соединителя вызывает Application.build
. Метод initConfig()
выполняет следующие задачи:
- Вызывает метод
Configuation.isInitialized()
чтобы убедиться, чтоConfiguration
не была инициализирована. - Инициализирует объект
Configuration
с помощью пар ключ-значение, предоставленных Google. Каждая пара ключ-значение хранится в объектеConfigValue
внутри объектаConfiguration
.
Реализовать интерфейс Repository
Единственная цель объекта Repository
— выполнить синхронизацию идентификаторов репозитория с идентификаторами Google. При использовании шаблона вам нужно только переопределить определенные методы в интерфейсе Repository
, чтобы создать соединитель удостоверений. Для FullTraversalConnector
вы, скорее всего, переопределите следующие методы:
Метод
init()
. Чтобы выполнить настройку и инициализацию хранилища идентификационных данных, переопределите метод init().Метод
listUsers()
. Чтобы синхронизировать всех пользователей в репозитории удостоверений с пользователями Google, переопределите методlistUsers()
.Метод
listGroups()
. Чтобы синхронизировать все группы в репозитории идентификаторов с группами Google, переопределите методlistGroups()
.(необязательно) Метод
close()
. Если вам нужно выполнить очистку репозитория, переопределите методclose()
. Этот метод вызывается один раз во время завершения работы коннектора.
Получить пользовательские параметры конфигурации
В рамках обработки конфигурации вашего соединителя вам потребуется получить любые пользовательские параметры из объекта Configuration
. Эта задача обычно выполняется в методе init()
класса Repository
.
Класс Configuration
имеет несколько методов для получения различных типов данных из конфигурации. Каждый метод возвращает объект ConfigValue
. Затем вы будете использовать метод get()
объекта ConfigValue
для получения фактического значения. В следующем фрагменте показано, как получить значения userMappingCsvPath
и groupMappingCsvPath
из объекта Configuration
:
Чтобы получить и проанализировать параметр, содержащий несколько значений, используйте один из анализаторов типов класса Configuration
для анализа данных на отдельные фрагменты. В следующем фрагменте из соединителя учебника метод getMultiValue
используется для получения списка имен репозиториев GitHub:
Получить сопоставление для всех пользователей
Переопределите listUsers()
, чтобы получить сопоставление для всех пользователей из вашего хранилища идентификационных данных. Метод listUsers()
принимает контрольную точку, представляющую последний синхронизируемый идентификатор. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listUsers()
:
- Получите сопоставление, состоящее из идентификатора Google и связанного внешнего идентификатора.
- Упакуйте пару в итератор, возвращаемый методом
listUsers()
.
Получить сопоставление пользователей
В следующем фрагменте кода показано, как получить сопоставления идентификаторов, хранящиеся в файле CSV:
Упакуйте сопоставление пользователей в итератор
Метод listUsers()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityUser
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждое сопоставление в список и построить итератор из этого списка:
Получить группу
Переопределите listGroups()
, чтобы получить все группы и их участников из вашего хранилища идентификационных данных. Метод listGroups()
принимает контрольную точку, представляющую последний идентификатор, подлежащий синхронизации. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listGroups()
:
- Получите группу и ее участников.
- Упакуйте каждую группу и членов в итератор, возвращаемый методом
listGroups()
.
Получить идентификатор группы
В следующем фрагменте кода показано, как получить группы и участников, хранящиеся в файле CSV:
Упакуйте группу и участников в итератор.
Метод listGroups()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityGroup
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждую группу и участников в список и построить итератор из этого списка:
Следующие шаги
Вот несколько следующих шагов, которые вы можете предпринять:
- (необязательно) Реализуйте метод close() , чтобы освободить все ресурсы перед завершением работы.
- (необязательно) Создайте соединитель контента с помощью Content Connector SDK.
По умолчанию Google Cloud Search распознает только идентификационные данные Google, хранящиеся в Google Cloud Directory (пользователей и группы). Соединители удостоверений используются для синхронизации удостоверений вашего предприятия с удостоверениями Google, используемыми Google Cloud Search.
Google предоставляет следующие варианты разработки соединителей удостоверений:
SDK Identity Connector. Этот вариант предназначен для разработчиков, программирующих на языке программирования Java. SDK Identity Connector — это оболочка REST API, позволяющая быстро создавать соединители. Чтобы создать соединитель удостоверения с помощью SDK, ознакомьтесь со статьей Создание соединителя удостоверений с помощью SDK Identity Connector .
Низкоуровневый REST API и библиотеки API. Эти варианты предназначены для разработчиков, которые, возможно, не программируют на Java или чья кодовая база лучше подходит для REST API или библиотеки. Чтобы создать соединитель идентификации с помощью REST API, обратитесь к API каталога: учетные записи пользователей для получения информации о сопоставлении пользователей и документации Cloud Identity для получения информации о сопоставлении групп.
Создайте соединитель удостоверений с помощью SDK Identity Connector.
Типичный соединитель удостоверений выполняет следующие задачи:
- Настройте разъем.
- Получите всех пользователей из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
- Получите все группы из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
Настройка зависимостей
Чтобы использовать SDK, вы должны включить определенные зависимости в файл сборки. Нажмите на вкладку ниже, чтобы просмотреть зависимости для вашей среды сборки:
Мавен
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Градл
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Создайте конфигурацию соединителя
У каждого соединителя есть файл конфигурации, содержащий параметры, используемые соединителем, например идентификатор вашего репозитория. Параметры определяются как пары ключ-значение , например api.sourceId= 1234567890abcdef
.
SDK Google Cloud Search содержит несколько предоставленных Google параметров конфигурации, используемых всеми соединителями. Вы должны объявить следующие параметры, предоставленные Google, в вашем файле конфигурации:
- Для соединителя контента необходимо объявить
api.sourceId
иapi.serviceAccountPrivateKeyFile
, поскольку эти параметры определяют расположение вашего репозитория и закрытый ключ, необходимый для доступа к репозиторию.
- Для соединителя удостоверений необходимо объявить
api.identitySourceId
, поскольку этот параметр определяет расположение вашего внешнего источника удостоверений. Если вы синхронизируете пользователей, вы также должны объявитьapi.customerId
в качестве уникального идентификатора учетной записи Google Workspace вашего предприятия.
Если вы не хотите переопределить значения по умолчанию для других параметров, предоставленных Google, вам не нужно объявлять их в файле конфигурации. Дополнительную информацию о параметрах конфигурации, предоставляемых Google, например о том, как генерировать определенные идентификаторы и ключи, см. в разделе Параметры конфигурации, предоставляемые Google .
Вы также можете определить свои собственные параметры, специфичные для репозитория, для использования в файле конфигурации.
Передайте файл конфигурации в коннектор
Настройте системное свойство config
для передачи файла конфигурации в соединитель. Вы можете установить это свойство, используя аргумент -D
при запуске коннектора. Например, следующая команда запускает соединитель с файлом конфигурации MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Если этот аргумент отсутствует, SDK пытается получить доступ к файлу конфигурации по умолчанию с именем connector-config.properties
.
Создайте соединитель удостоверений полной синхронизации с помощью класса шаблона.
SDK Identity Connector содержит класс шаблона FullSyncIdentityConnector
, который можно использовать для синхронизации всех пользователей и групп из репозитория удостоверений с удостоверениями Google. В этом разделе объясняется, как использовать шаблон FullSyncIdentityConnector
для полной синхронизации пользователей и групп из хранилища идентификационных данных, не относящегося к Google.
Этот раздел документации относится к фрагментам кода из примера IdentityConnecorSample.java
. В этом примере идентификаторы пользователей и групп считываются из двух файлов CSV и синхронизируются с идентификаторами Google.
Реализация точки входа соединителя
Точкой входа в коннектор является метод main()
. Основная задача этого метода — создать экземпляр класса Application
и вызвать его метод start()
для запуска соединителя.
Прежде чем вызывать application.start()
, используйте класс IdentityApplication.Builder
для создания экземпляра шаблона FullSyncIdentityConnector
. FullSyncIdentityConnector
принимает объект Repository
, методы которого вы будете реализовывать. Следующий фрагмент кода показывает, как реализовать метод main()
:
За кулисами SDK вызывает метод initConfig()
после того, как метод main()
вашего соединителя вызывает Application.build
. Метод initConfig()
выполняет следующие задачи:
- Вызывает метод
Configuation.isInitialized()
чтобы убедиться, чтоConfiguration
не была инициализирована. - Инициализирует объект
Configuration
с помощью пар ключ-значение, предоставленных Google. Каждая пара ключ-значение хранится в объектеConfigValue
внутри объектаConfiguration
.
Реализовать интерфейс Repository
Единственная цель объекта Repository
— выполнить синхронизацию идентификаторов репозитория с идентификаторами Google. При использовании шаблона вам нужно только переопределить определенные методы в интерфейсе Repository
, чтобы создать соединитель удостоверений. Для FullTraversalConnector
вы, скорее всего, переопределите следующие методы:
Метод
init()
. Чтобы выполнить настройку и инициализацию хранилища идентификационных данных, переопределите метод init().Метод
listUsers()
. Чтобы синхронизировать всех пользователей в репозитории удостоверений с пользователями Google, переопределите методlistUsers()
.Метод
listGroups()
. Чтобы синхронизировать все группы в репозитории идентификаторов с группами Google, переопределите методlistGroups()
.(необязательно) Метод
close()
. Если вам нужно выполнить очистку репозитория, переопределите методclose()
. Этот метод вызывается один раз во время завершения работы коннектора.
Получить пользовательские параметры конфигурации
В рамках обработки конфигурации вашего соединителя вам потребуется получить любые пользовательские параметры из объекта Configuration
. Эта задача обычно выполняется в методе init()
класса Repository
.
Класс Configuration
имеет несколько методов для получения различных типов данных из конфигурации. Каждый метод возвращает объект ConfigValue
. Затем вы будете использовать метод get()
объекта ConfigValue
для получения фактического значения. В следующем фрагменте показано, как получить значения userMappingCsvPath
и groupMappingCsvPath
из объекта Configuration
:
Чтобы получить и проанализировать параметр, содержащий несколько значений, используйте один из анализаторов типов класса Configuration
для анализа данных на отдельные фрагменты. В следующем фрагменте из соединителя учебника метод getMultiValue
используется для получения списка имен репозиториев GitHub:
Получить сопоставление для всех пользователей
Переопределите listUsers()
, чтобы получить сопоставление для всех пользователей из вашего хранилища идентификационных данных. Метод listUsers()
принимает контрольную точку, представляющую последний синхронизируемый идентификатор. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listUsers()
:
- Получите сопоставление, состоящее из идентификатора Google и связанного внешнего идентификатора.
- Упакуйте пару в итератор, возвращаемый методом
listUsers()
.
Получить сопоставление пользователей
В следующем фрагменте кода показано, как получить сопоставления идентификаторов, хранящиеся в файле CSV:
Упакуйте сопоставление пользователей в итератор
Метод listUsers()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityUser
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждое сопоставление в список и построить итератор из этого списка:
Получить группу
Переопределите listGroups()
, чтобы получить все группы и их участников из вашего хранилища идентификационных данных. Метод listGroups()
принимает контрольную точку, представляющую последний идентификатор, подлежащий синхронизации. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listGroups()
:
- Получите группу и ее участников.
- Упакуйте каждую группу и членов в итератор, возвращаемый методом
listGroups()
.
Получить идентификатор группы
В следующем фрагменте кода показано, как получить группы и участников, хранящиеся в файле CSV:
Упакуйте группу и участников в итератор.
Метод listGroups()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityGroup
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждую группу и участников в список и построить итератор из этого списка:
Следующие шаги
Вот несколько следующих шагов, которые вы можете предпринять:
- (необязательно) Реализуйте метод close() , чтобы освободить все ресурсы перед завершением работы.
- (необязательно) Создайте соединитель контента с помощью Content Connector SDK.
По умолчанию Google Cloud Search распознает только идентификационные данные Google, хранящиеся в Google Cloud Directory (пользователей и группы). Соединители удостоверений используются для синхронизации удостоверений вашего предприятия с удостоверениями Google, используемыми Google Cloud Search.
Google предоставляет следующие варианты разработки соединителей удостоверений:
SDK Identity Connector. Этот вариант предназначен для разработчиков, программирующих на языке программирования Java. SDK Identity Connector — это оболочка REST API, позволяющая быстро создавать соединители. Чтобы создать соединитель удостоверения с помощью SDK, ознакомьтесь со статьей Создание соединителя удостоверений с помощью SDK Identity Connector .
Низкоуровневый REST API и библиотеки API. Эти варианты предназначены для разработчиков, которые, возможно, не программируют на Java или чья кодовая база лучше подходит для REST API или библиотеки. Чтобы создать соединитель идентификации с помощью REST API, обратитесь к API каталога: учетные записи пользователей для получения информации о сопоставлении пользователей и документации Cloud Identity для получения информации о сопоставлении групп.
Создайте соединитель удостоверений с помощью SDK Identity Connector.
Типичный соединитель удостоверений выполняет следующие задачи:
- Настройте разъем.
- Получите всех пользователей из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
- Получите все группы из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
Настройка зависимостей
Чтобы использовать SDK, вы должны включить определенные зависимости в файл сборки. Нажмите на вкладку ниже, чтобы просмотреть зависимости для вашей среды сборки:
Мавен
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Градл
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Создайте конфигурацию соединителя
У каждого соединителя есть файл конфигурации, содержащий параметры, используемые соединителем, например идентификатор вашего репозитория. Параметры определяются как пары ключ-значение , например api.sourceId= 1234567890abcdef
.
SDK Google Cloud Search содержит несколько предоставленных Google параметров конфигурации, используемых всеми соединителями. Вы должны объявить следующие параметры, предоставленные Google, в вашем файле конфигурации:
- Для соединителя контента необходимо объявить
api.sourceId
иapi.serviceAccountPrivateKeyFile
, поскольку эти параметры определяют расположение вашего репозитория и закрытый ключ, необходимый для доступа к репозиторию.
- Для соединителя удостоверений необходимо объявить
api.identitySourceId
, поскольку этот параметр определяет расположение вашего внешнего источника удостоверений. Если вы синхронизируете пользователей, вы также должны объявитьapi.customerId
в качестве уникального идентификатора учетной записи Google Workspace вашего предприятия.
Если вы не хотите переопределить значения по умолчанию для других параметров, предоставленных Google, вам не нужно объявлять их в файле конфигурации. Дополнительную информацию о параметрах конфигурации, предоставляемых Google, например о том, как генерировать определенные идентификаторы и ключи, см. в разделе Параметры конфигурации, предоставляемые Google .
Вы также можете определить свои собственные параметры, специфичные для репозитория, для использования в файле конфигурации.
Передайте файл конфигурации в коннектор
Настройте системное свойство config
для передачи файла конфигурации в соединитель. Вы можете установить это свойство, используя аргумент -D
при запуске коннектора. Например, следующая команда запускает соединитель с файлом конфигурации MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Если этот аргумент отсутствует, SDK пытается получить доступ к файлу конфигурации по умолчанию с именем connector-config.properties
.
Создайте соединитель удостоверений полной синхронизации с помощью класса шаблона.
SDK Identity Connector содержит класс шаблона FullSyncIdentityConnector
, который можно использовать для синхронизации всех пользователей и групп из репозитория удостоверений с удостоверениями Google. В этом разделе объясняется, как использовать шаблон FullSyncIdentityConnector
для полной синхронизации пользователей и групп из хранилища идентификационных данных, не относящегося к Google.
Этот раздел документации относится к фрагментам кода из примера IdentityConnecorSample.java
. В этом примере идентификаторы пользователей и групп считываются из двух файлов CSV и синхронизируются с идентификаторами Google.
Реализация точки входа соединителя
Точкой входа в коннектор является метод main()
. Основная задача этого метода — создать экземпляр класса Application
и вызвать его метод start()
для запуска соединителя.
Прежде чем вызывать application.start()
, используйте класс IdentityApplication.Builder
для создания экземпляра шаблона FullSyncIdentityConnector
. FullSyncIdentityConnector
принимает объект Repository
, методы которого вы будете реализовывать. Следующий фрагмент кода показывает, как реализовать метод main()
:
За кулисами SDK вызывает метод initConfig()
после того, как метод main()
вашего соединителя вызывает Application.build
. Метод initConfig()
выполняет следующие задачи:
- Вызывает метод
Configuation.isInitialized()
чтобы убедиться, чтоConfiguration
не была инициализирована. - Инициализирует объект
Configuration
с помощью пар ключ-значение, предоставленных Google. Каждая пара ключ-значение хранится в объектеConfigValue
внутри объектаConfiguration
.
Реализовать интерфейс Repository
Единственная цель объекта Repository
— выполнить синхронизацию идентификаторов репозитория с идентификаторами Google. При использовании шаблона вам нужно только переопределить определенные методы в интерфейсе Repository
, чтобы создать соединитель удостоверений. Для FullTraversalConnector
вы, скорее всего, переопределите следующие методы:
Метод
init()
. Чтобы выполнить настройку и инициализацию хранилища идентификационных данных, переопределите метод init().Метод
listUsers()
. Чтобы синхронизировать всех пользователей в репозитории удостоверений с пользователями Google, переопределите методlistUsers()
.Метод
listGroups()
. Чтобы синхронизировать все группы в репозитории идентификаторов с группами Google, переопределите методlistGroups()
.(необязательно) Метод
close()
. Если вам нужно выполнить очистку репозитория, переопределите методclose()
. Этот метод вызывается один раз во время завершения работы коннектора.
Получить пользовательские параметры конфигурации
В рамках обработки конфигурации вашего соединителя вам потребуется получить любые пользовательские параметры из объекта Configuration
. Эта задача обычно выполняется в методе init()
класса Repository
.
Класс Configuration
имеет несколько методов для получения различных типов данных из конфигурации. Каждый метод возвращает объект ConfigValue
. Затем вы будете использовать метод get()
объекта ConfigValue
для получения фактического значения. В следующем фрагменте показано, как получить значения userMappingCsvPath
и groupMappingCsvPath
из объекта Configuration
:
Чтобы получить и проанализировать параметр, содержащий несколько значений, используйте один из анализаторов типов класса Configuration
для анализа данных на отдельные фрагменты. В следующем фрагменте из соединителя учебника метод getMultiValue
используется для получения списка имен репозиториев GitHub:
Получить сопоставление для всех пользователей
Переопределите listUsers()
, чтобы получить сопоставление для всех пользователей из вашего хранилища идентификационных данных. Метод listUsers()
принимает контрольную точку, представляющую последний синхронизируемый идентификатор. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listUsers()
:
- Получите сопоставление, состоящее из идентификатора Google и связанного внешнего идентификатора.
- Упакуйте пару в итератор, возвращаемый методом
listUsers()
.
Получить сопоставление пользователей
В следующем фрагменте кода показано, как получить сопоставления идентификаторов, хранящиеся в файле CSV:
Упакуйте сопоставление пользователей в итератор
Метод listUsers()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityUser
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждое сопоставление в список и построить итератор из этого списка:
Получить группу
Переопределите listGroups()
, чтобы получить все группы и их участников из вашего хранилища идентификационных данных. Метод listGroups()
принимает контрольную точку, представляющую последний идентификатор, подлежащий синхронизации. Контрольную точку можно использовать для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните следующие шаги в методе listGroups()
:
- Получите группу и ее участников.
- Упакуйте каждую группу и членов в итератор, возвращаемый методом
listGroups()
.
Получить идентификатор группы
В следующем фрагменте кода показано, как получить группы и участников, хранящиеся в файле CSV:
Упакуйте группу и участников в итератор.
Метод listGroups()
возвращает Iterator
, в частности CheckpointCloseableIterable
, объектов IdentityGroup
. Вы можете использовать класс CheckpointClosableIterableImpl.Builder
для создания и возврата итератора. В следующем фрагменте кода показано, как упаковать каждую группу и участников в список и построить итератор из этого списка:
Следующие шаги
Вот несколько следующих шагов, которые вы можете предпринять:
- (необязательно) Реализуйте метод close() , чтобы освободить все ресурсы перед завершением работы.
- (необязательно) Создайте соединитель контента с помощью Content Connector SDK.
По умолчанию Google Cloud Search распознает только идентификационные данные Google, хранящиеся в Google Cloud Directory (пользователей и группы). Соединители удостоверений используются для синхронизации удостоверений вашего предприятия с удостоверениями Google, используемыми Google Cloud Search.
Google предоставляет следующие варианты разработки соединителей удостоверений:
SDK Identity Connector. Этот вариант предназначен для разработчиков, программирующих на языке программирования Java. SDK Identity Connector — это оболочка REST API, позволяющая быстро создавать соединители. Чтобы создать соединитель удостоверения с помощью SDK, ознакомьтесь со статьей Создание соединителя удостоверений с помощью SDK Identity Connector .
Низкоуровневый REST API и библиотеки API. Эти варианты предназначены для разработчиков, которые, возможно, не программируют на Java или чья кодовая база лучше подходит для REST API или библиотеки. Чтобы создать соединитель идентификации с помощью REST API, обратитесь к API каталога: учетные записи пользователей для получения информации о сопоставлении пользователей и документации Cloud Identity для получения информации о сопоставлении групп.
Создайте соединитель удостоверений с помощью SDK Identity Connector.
Типичный соединитель удостоверений выполняет следующие задачи:
- Настройте разъем.
- Получите всех пользователей из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
- Получите все группы из вашей корпоративной системы идентификации и отправьте их в Google для синхронизации с идентификаторами Google.
Настройка зависимостей
Чтобы использовать SDK, вы должны включить определенные зависимости в файл сборки. Нажмите на вкладку ниже, чтобы просмотреть зависимости для вашей среды сборки:
Мавен
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Градл
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Создайте конфигурацию соединителя
У каждого соединителя есть файл конфигурации, содержащий параметры, используемые соединителем, например идентификатор вашего репозитория. Параметры определяются как пары ключ-значение , например api.sourceId= 1234567890abcdef
.
SDK Google Cloud Search содержит несколько предоставленных Google параметров конфигурации, используемых всеми соединителями. Вы должны заявить о следующих параметрах Google-поставленных в файле конфигурации:
- Для разъема контента вы должны объявить
api.sourceId
иapi.serviceAccountPrivateKeyFile
, поскольку эти параметры идентифицируют местоположение вашего репозитория и личный ключ, необходимый для доступа к репозиторию.
- Для разъема идентификации вы должны объявить
api.identitySourceId
, поскольку этот параметр идентифицирует местоположение вашего внешнего источника идентификации. Если вы синхронизируете пользователей, вы также должны объявитьapi.customerId
как уникальный идентификатор для учетной записи вашего предприятия Google Workspace.
Если вы не хотите переопределить значения по умолчанию других поставленных в Google параметров, вам не нужно объявлять их в вашем файле конфигурации. Для получения дополнительной информации о параметрах конфигурации, поставленных в Google, например, как генерировать определенные идентификаторы и ключи, см.
Вы также можете определить свои собственные параметры, специфичные для репозитория для использования в вашем файле конфигурации.
Передайте файл конфигурации в соединитель
Установите config
свойства системы для передачи файла конфигурации в ваш соединитель. Вы можете установить свойство, используя аргумент -D
при запуске разъема. Например, следующая команда запускает разъем с файлом конфигурации MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Если этот аргумент отсутствует, SDK пытается получить доступ к файлу конфигурации по умолчанию с именем connector-config.properties
.
Создайте полную синхронизированную идентификационную разъем, используя класс шаблона
SDK Connector Identity содержит класс шаблонов FullSyncIdentityConnector
, который вы можете использовать для синхронизации всех пользователей и групп из репозитория идентификации с Google Identities. В этом разделе объясняется, как использовать шаблон FullSyncIdentityConnector
для выполнения полной синхронизации пользователей и групп из не идентификационного репозитория без Google.
Этот раздел документов относится к фрагментам кода из образца IdentityConnecorSample.java
. Этот образец считывает идентификаторы пользователей и группы из двух файлов CSV и синхронизирует их с Google Identities.
Реализуйте точку входа разъема
Точка входа в разъем - это метод main()
. Основная задача этого метода состоит в том, чтобы создать экземпляр класса Application
и вызыв его метод start()
для запуска разъема.
Перед вызовом application.start()
используйте класс IdentityApplication.Builder
, чтобы создать экземплярный шаблон FullSyncIdentityConnector
. FullSyncIdentityConnector
принимает объект Repository
, методы которых вы будете реализовать. Следующий фрагмент кода показывает, как реализовать метод main()
:
За кулисами SDK вызывает метод initConfig()
после того, как ваш метод Connector main()
вызывает Application.build
. Метод initConfig()
выполняет следующие задачи:
- Вызывает метод
Configuation.isInitialized()
чтобы гарантировать, чтоConfiguration
не была инициализирована. - Инициализируют объект
Configuration
с парами клавиш, поставляемых Google. Каждая пара ключей хранится в объектеConfigValue
в объектеConfiguration
.
Реализовать интерфейс Repository
Единственной целью объекта Repository
является выполнение синхронизации идентичностей репозитория с идентификацией Google. При использовании шаблона вам нужно только переопределить определенные методы в интерфейсе Repository
, чтобы создать идентификационный разъем. Для FullTraversalConnector
вы, вероятно, переопределите следующие методы:
Метод
init()
. Чтобы выполнить любую настройку и инициализацию репозитория идентификатора, переопределите метод `init ().Метод
listUsers()
. Чтобы синхронизировать всех пользователей в репозитории идентификации с пользователями Google, переопределите методlistUsers()
.Метод
listGroups()
. Чтобы синхронизировать все группы в репозитории идентификации с группами Google, переопределите методlistGroups()
.(Необязательно) Метод
close()
. Если вам нужно выполнить очистку репозитория, переопределите методclose()
. Этот метод вызывается один раз во время выключения разъема.
Получить пользовательские параметры конфигурации
В рамках обращения с конфигурацией вашего соединителя вам нужно будет получить любые пользовательские параметры из объекта Configuration
. Эта задача обычно выполняется в методе init()
класса Repository
.
Класс Configuration
имеет несколько методов получения различных типов данных из конфигурации. Каждый метод возвращает объект ConfigValue
. Затем вы будете использовать метод ConfigValue
объекта get()
для извлечения фактического значения. Следующий фрагмент показывает, как получить значение userMappingCsvPath
и groupMappingCsvPath
из объекта Configuration
:
Чтобы получить и проанализировать параметр, содержащий несколько значений, используйте один из анализаторов типа класса Configuration
, чтобы разобрать данные в отдельные куски. Следующий фрагмент из учебного разъема использует метод getMultiValue
, чтобы получить список имен репозиторий GitHub:
Получите картирование для всех пользователей
Переопределить listUsers()
, чтобы получить отображение для всех пользователей из вашего репозитория идентификации. Метод listUsers()
принимает контрольную точку, представляющую последнюю идентичность, которая должна синхронизироваться. Контрольная точка может быть использована для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните эти шаги в методе listUsers()
:
- Получите отображение, состоящее из идентичности Google и связанной с ними внешней идентичности.
- Упакуйте пару в итератор, возвращенный методом
listUsers()
.
Получите отображение пользователя
Следующий фрагмент кода демонстрирует, как получить отображения идентификации, хранящихся в файле CSV:
Упаковать пользователь, отображающий в итератор
Метод listUsers()
возвращает Iterator
, в частности, CheckpointCloseableIterable
объектов IdentityUser
. Вы можете использовать CheckpointClosableIterableImpl.Builder
Class для построения и возврата итератора. Следующий фрагмент кода показывает, как упаковать каждое сопоставление в список. Создайте итератор из этого списка:
Получите группу
Переопределите listGroups()
, чтобы извлечь все группы и их членов из вашего репозитория личности. Метод listGroups()
принимает контрольную точку, представляющую последнюю идентичность, которая должна быть синхронизирована. Контрольная точка может быть использована для возобновления синхронизации в случае прерывания процесса. Для каждого пользователя в вашем репозитории вы выполните эти шаги в методе listGroups()
:
- Получить группу и ее членов.
- Упакуйте каждую группу и участники в итератор, возвращенный методом
listGroups()
.
Получить личность группы
Следующий фрагмент кода демонстрирует, как извлечь группы и участники, хранящиеся в файле CSV:
Упаковать группу и участников в итератор
Метод listGroups()
возвращает Iterator
, в частности, CheckpointCloseableIterable
объектов IdentityGroup
. Вы можете использовать CheckpointClosableIterableImpl.Builder
Class для построения и возврата итератора. Следующий фрагмент кода показывает, как упаковать каждую группу и участники в список и построить итератор из этого списка:
Следующие шаги
Вот несколько следующих шагов, которые вы можете предпринять:
- (Необязательно) Реализуйте метод Close () для выпуска любых ресурсов перед выключением.
- (Необязательно) Создайте контент разъема, используя Content Connector SDK.