デフォルトでは、Google Cloud Search は Google Cloud Directory(ユーザーとグループ)に保存されている Google ID のみを認識します。ID コネクタは、 企業の ID を Google Cloud Search で使用される Google ID と同期できます。
Google は、ID コネクタを開発するための以下のオプションを提供しています。
Identity Connector SDK。このオプションは、Java や SDK などの 記述できます。Identity Connector SDK は、コネクタをすばやく作成するための REST API を簡単に使えるようにしたラッパーです。この SDK で ID コネクタを作成する場合は、Identity Connector SDK を使用して ID コネクタを作成するをご覧ください。
低レベル REST API と API ライブラリ。これらのオプションは、Java でプログラミングしていないデベロッパーや、コードベースが REST API やライブラリに問題なく対応できるデベロッパー向けです。REST API を使用して ID コネクタを作成するには、このモジュールの から Directory API: ユーザー アカウント: ユーザーとリソースのマッピングと Cloud Identity のドキュメント: 説明します。
Identity Connector SDK を使用して ID コネクタを作成する
ID コネクタによって行われる標準的なタスクは、次のとおりです。
- コネクタを構成します。
- 企業 ID システムからすべてのユーザーを取得し、Google ID との同期のために Google に送信します。
- 企業 ID システムからすべてのグループを取得し、Google ID との同期のために Google に送信します。
依存関係を設定する
SDK を使用するには、ビルドファイルに特定の依存関係を含める必要があります。使用するビルド環境の依存関係を表示するには、以下のタブをクリックします。
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'
コネクタ構成を作成する
コネクタごとに対応する構成ファイルが存在し、コネクタはそこに含まれているパラメータ(お客様のリポジトリの ID など)を使用します。パラメータは次のように定義されます。
Key-Value ペア:
api.sourceId=1234567890abcdef
。
Google Cloud Search SDK には、すべてのコネクタで使用される Google 提供構成パラメータが複数含まれています。以下の Google 提供パラメータをお客様の構成ファイル内で宣言してください。
- コンテンツ コネクタの場合は、
api.sourceId
とapi.serviceAccountPrivateKeyFile
(これらのパラメータはロケーションを識別するため) 秘密鍵の情報が含まれています。
- ID コネクタの場合は、次のように
api.identitySourceId
を宣言する必要があります。 パラメータは、外部の ID ソースの場所を指定します。もし ユーザーを同期するには、api.customerId
を 企業用の Google Workspace アカウントを作成します。
他の Google 提供のデフォルト値をオーバーライドする場合以外は、 それらのパラメータを構成ファイルで宣言する必要はありません。 Google 提供の構成パラメータについて詳しくは、 詳細については、このモジュールの Google 提供の構成パラメータ。
独自のリポジトリ パラメータを定義して、お客様の構成ファイル内で使用することもできます。
構成ファイルをコネクタに渡す
システム プロパティ config
を設定して、構成ファイルを
あります起動時に -D
引数を使用してプロパティを設定できます。
表示されます。たとえば、次のコマンドはコネクタを起動します。
MyConfig.properties
構成ファイルに置き換えます。
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
この引数がない場合、SDK はデフォルト構成にアクセスしようとします。
connector-config.properties
という名前のファイル。
テンプレート クラスを使用して完全同期 ID コネクタを作成する
Identity Connector SDK には FullSyncIdentityConnector
テンプレート クラスが含まれています。
ID アカウントからすべてのユーザーとグループを同期できます。
Google ID でリポジトリに保存します。このセクションでは、
Google 以外の ID からユーザーとグループを完全に同期するための FullSyncIdentityConnector
テンプレート
できます。
このドキュメントのこのセクションは、
IdentityConnecorSample.java
のサンプル。このサンプルでは、2 つの CSV ファイルからユーザー ID とグループ ID を読み取り、Google ID と同期します。
コネクタのエントリ ポイントを実装する
コネクタのエントリ ポイントは、
main()
メソッドを使用します。このメソッドの主なタスクは、
Application
そのクラスの情報を
start()
メソッドを使用してコネクタを実行します。
電話をかける前に
application.start()
使用
IdentityApplication.Builder
クラスをインスタンス化して
FullSyncIdentityConnector
テンプレート。FullSyncIdentityConnector
は、
Repository
そのオブジェクトを指定します。
次のコード スニペットは、main()
メソッドの実装方法を示しています。
SDK はバックグラウンドで
initConfig()
メソッド(コネクタの main()
メソッド呼び出し後の)
Application.build
。
initConfig()
メソッドは、次のタスクを実行します。
- このメソッドを呼び出して、
Configuation.isInitialized()
メソッドをConfiguration
初期化されていないことを確認します。 - Google 提供の Key-Value で
Configuration
オブジェクトを初期化します。 あります。各 Key-Value ペアはConfigValue
Configuration
オブジェクト内のオブジェクト。
Repository
インターフェースを実装する
Repository
オブジェクトの唯一の目的は、
リポジトリ ID と Google ID の同期。使用する場合
テンプレート内でオーバーライドする必要があるのは、
ID コネクタを作成するための Repository
インターフェース。対象:
FullTraversalConnector
次のメソッドをオーバーライドすることになります。
「
init()
メソッドを呼び出します。ID リポジトリを設定して初期化するには、init() メソッドをオーバーライドします。「
listUsers()
メソッドを呼び出します。ID リポジトリ内のすべてのユーザーを Google ユーザーと同期するには、オーバーライドしますlistUsers()
メソッドを使用します。「
listGroups()
メソッドを呼び出します。ID リポジトリ内のすべてのグループを Google グループと同期するには、次の操作を行います。listGroups()
メソッドをオーバーライドする。(省略可)
close()
メソッドを呼び出します。リポジトリのクリーンアップを行う必要がある場合は、close()
をオーバーライドします。 メソッドを呼び出します。このメソッドは、コネクタのシャットダウン時に 1 回呼び出されます。
カスタム構成パラメータを取得する
コネクタの構成を扱う際に、コネクタの
カスタムパラメータの
Configuration
渡されます。このタスクは通常、
Repository
クラスの
init()
メソッドを呼び出します。
Configuration
クラスには、さまざまなデータ型を取得するためのメソッドがいくつかあります。
構成から分離できます。各メソッドは
ConfigValue
渡されます。次に、ConfigValue
オブジェクトの
get()
メソッドを使用して実際の値を取得できます。
次のスニペットは、userMappingCsvPath
を取得する方法と、
Configuration
オブジェクトからの groupMappingCsvPath
値:
複数の値を含むパラメータを取得して解析するには、
Configuration
クラスの型パーサー: データを個別のチャンクに解析します。
チュートリアル コネクタからの次のスニペットでは、
getMultiValue
メソッドを使用して、GitHub リポジトリ名のリストを取得します。
すべてのユーザーのマッピングを取得する
オーバーライド
listUsers()
ID リポジトリからすべてのユーザーのマッピングを取得します。「
listUsers()
メソッドは、最後の ID を表すチェックポイントを受け取ります。
同期します。チェックポイントは、プロセスが中断された場合に同期を再開する目的で使用できます。リポジトリ内のユーザーごとに、次の手順を実行します。
listUsers()
メソッドを使用します。
- Google ID および関連する外部 ID からなるマッピングを取得します。
- ペアを
listUsers()
メソッドから返されるイテレータにパッケージ化します。
ユーザー マッピングを取得する
以下のコード スニペットは、CSV ファイルに保存されている ID マッピングを取得する方法を示しています。
イテレータにユーザー マッピングをパッケージ化する
listUsers()
メソッドは Iterator
を返します。具体的には、
CheckpointCloseableIterable
、
/
IdentityUser
説明します。こちらの
CheckpointClosableIterableImpl.Builder
イテレータを作成して返すことができます。以下のコード スニペットは、各マッピングをリストにパッケージ化して、そのリストからイテレータを構築する方法を示しています。
グループを取得する
オーバーライド
listGroups()
ID からすべてのグループとそのメンバーを取得できます。
できます。listGroups()
メソッドは、最後の状態を表すチェックポイントを
指定します。チェックポイントは、プロセスが中断された場合に同期を再開する目的で使用できます。リポジトリ内のユーザーごとに、以下の操作を行います。
listGroups()
メソッドのステップ:
- グループとそのメンバーを取得します。
- 各グループとメンバーを
listGroups()
メソッドを使用します。
グループ ID を取得する
以下のコード スニペットは、CSV ファイルに保存されているグループとメンバーを取得する方法を示しています。
グループとメンバーをイテレータにパッケージ化する
listGroups()
メソッドは Iterator
を返します。具体的には、
CheckpointCloseableIterable
、
/
IdentityGroup
説明します。
こちらの
CheckpointClosableIterableImpl.Builder
イテレータを作成して返すことができます。次のコード スニペットは、
各グループとメンバーをリストにパッケージ化し、そこからイテレータを作成する
list:
次のステップ
必要に応じて次の手順を行います。
- (オプション)シャットダウンの前にリソースをすべて解放する close() メソッドを実装する。
- (オプション)Content Connector SDK を使用してコンテンツ コネクタを作成する。