根據預設,Google Cloud Search 只能辨識儲存在 Google 身分的 Google 身分 Google Cloud Directory (使用者和群組)。識別資訊連接器 將貴公司的身分與 Google Cloud Search 所用的 Google 身分同步處理。
Google 提供下列識別資訊連接器的開發選項:
Identity Connector SDK。這個選項適合程式設計的開發人員 還是 Java 程式設計語言Identity Connector SDK 是包裝函式 ,可讓您快速建立連接器。如要建立 識別身分連接器 使用 Identity Connector SDK 建立識別資訊連接器。
低階 REST API 和 API 程式庫。這些選項適用於 可能沒有以 Java 編寫程式 或程式碼集更適合 REST API 或程式庫如要使用 REST API 建立識別資訊連接器,請參閱 到 Directory API:使用者帳戶 即可瞭解地圖使用者 以下項目的 Cloud Identity 說明文件: 有關對應群組的資訊。
使用 Identity Connector SDK 建立識別資訊連接器
一般識別資訊連接器會執行下列工作:
- 設定連接器。
- 從企業身分識別系統擷取所有使用者,並傳送至 Google 用於同步處理 Google 身分。
- 從企業身分識別系統擷取所有群組,然後傳送至 Google 用於同步處理 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參數的定義為
鍵/值的組合,例如
api.sourceId=1234567890abcdef
。
Google Cloud Search SDK 包含多項 Google 提供的設定 參數。您必須宣告下列項目 Google 在設定檔中提供的參數:
- 如果是內容連接器,您必須宣告
api.sourceId
和api.serviceAccountPrivateKeyFile
,因為這些參數能指出位置 以及存取存放區所需的私密金鑰
- 對於識別資訊連接器,您必須將
api.identitySourceId
宣告為 參數識別外部識別資訊來源的位置。如果您是 同步處理使用者,您也必須宣告api.customerId
為 貴公司的 Google Workspace 帳戶。
除非您想覆寫其他 Google 提供的預設值 參數,因此您不需要在設定檔中宣告這些參數。 如要進一步瞭解 Google 提供的設定參數,例如 想要瞭解如何產生特定 ID 和鍵 Google 提供的設定參數。
您也可以定義自己的存放區專屬參數,以便用於 設定檔
將設定檔傳送至連接器
設定系統屬性 config
,將設定檔傳送至
。您可以在啟動時使用 -D
引數設定屬性
與連接器建立連結。舉例來說,下列指令會啟動連接器
使用 MyConfig.properties
設定檔:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
如果缺少這個引數,SDK 會嘗試存取預設設定
名為 connector-config.properties
的檔案。
使用範本類別建立完整的同步處理識別資訊連接器
Identity Connector SDK 包含 FullSyncIdentityConnector
範本類別
可用來同步處理識別資訊中的所有使用者和群組
Google 身分的存放區本節將說明如何使用
FullSyncIdentityConnector
範本:從非 Google 身分執行完整的使用者和群組同步處理
Cloud Storage 也提供目錄同步處理功能
在這一節,說明文件中的
IdentityConnecorSample.java
範例。此樣本讀取了使用者和群組
並將身分資訊與 Google 身分同步處理。
實作連接器的進入點
連接器的進入點是
main()
方法。這個方法的主要工作是建立
Application
敬上
並叫用其類別
start()
。
方法來執行連接器。
通話前
application.start()
、
請使用
IdentityApplication.Builder
。
類別,將
FullSyncIdentityConnector
範本。FullSyncIdentityConnector
接受
Repository
用於實作其方法的物件
下列程式碼片段說明如何實作 main()
方法:
SDK 會在背景呼叫
initConfig()
敬上
方法出現在連接器的 main()
方法呼叫之後
Application.build
。
initConfig()
方法會執行下列工作:
- 呼叫
Configuation.isInitialized()
敬上 方法,確保Configuration
。 事件尚未初始化 - 使用 Google 提供的鍵/值初始化
Configuration
物件 配對。每個鍵/值組合都儲存在ConfigValue
敬上 物件中Configuration
物件內。
導入 Repository
介面
Repository
物件的唯一用途是執行
將存放區身分同步至 Google 身分使用
範本,您只需覆寫
建立識別資訊連接器的 Repository
介面。對於
FullTraversalConnector
敬上
,您可能會覆寫以下方法:
init()
敬上 方法。如要設定和初始化任何身分存放區,請覆寫 `init() 方法listUsers()
敬上 方法。如要將識別資訊存放區中的所有使用者與 Google 使用者同步處理,請覆寫listUsers()
方法。listGroups()
敬上 方法。如要將識別資訊存放區中的所有群組與 Google 群組同步處理, 覆寫listGroups()
方法。(選用)
close()
敬上 方法。如果您需要執行存放區清理工作,請覆寫close()
方法。在連接器關閉期間,此方法會呼叫一次。
取得自訂設定參數
在處理連接器設定的過程中,您必須
自訂參數
Configuration
敬上
物件。這項工作通常會在
Repository
敬上
類別的
init()
。
方法。
Configuration
類別提供多種取得不同資料類型的方法
從設定中移除每個方法都會傳回
ConfigValue
敬上
物件。然後,您將會使用 ConfigValue
物件的
get()
方法來擷取實際值。
下列程式碼片段說明如何擷取 userMappingCsvPath
和
Configuration
物件的 groupMappingCsvPath
值:
如要取得並剖析含有數個值的參數,請使用
Configuration
類別的類型剖析器來將資料剖析為獨立的區塊。
下列程式碼片段取自教學課程連接器
getMultiValue
敬上
方法來取得 GitHub 存放區名稱清單:
取得所有使用者對應關係
覆寫
listUsers()
敬上
從身分存放區擷取所有使用者的對應關係。
listUsers()
方法接受查核點,以代表要做為最後一個身分
已同步。如果程序順利執行,您可以使用查核點繼續執行同步程序。
已中斷。您將為存放區中的每位使用者執行這些步驟
listUsers()
方法:
- 取得包含 Google 身分和相關外部的對應關係 識別個人身分
- 將配對封裝至
listUsers()
方法傳回的疊代器中。
取得使用者對應
下列程式碼片段說明如何擷取識別資訊對應檔 儲存在 CSV 檔案中:
將使用者對應關係封裝至疊代器中
listUsers()
這個方法會傳回 Iterator
,特別是
CheckpointCloseableIterable
,
/
IdentityUser
如需儲存大量結構化物件
建議使用 Cloud Bigtable您可以使用
CheckpointClosableIterableImpl.Builder
敬上
類別,建構並傳回疊代器。下列程式碼片段顯示
將每個對應關係封裝到清單
清單:
取得群組
覆寫
listGroups()
敬上
從您的身分識別擷取所有群組及其成員
Cloud Storage 也提供目錄同步處理功能listGroups()
方法接受代表最後一個
才能同步處理身分識別資訊檢查點可用來繼續同步處理,
程序中斷。您將對存放區中的每位使用者執行以下作業
listGroups()
方法中的步驟:
- 取得群組及其成員。
- 將每個群組和成員封裝成由
listGroups()
方法。
取得群組身分
下列程式碼片段說明如何擷取群組和成員 儲存在 CSV 檔案中:
將群組和成員封裝成疊代器
listGroups()
這個方法會傳回 Iterator
,特別是
CheckpointCloseableIterable
,
/
IdentityGroup
如需儲存大量結構化物件
建議使用 Cloud Bigtable
您可以使用
CheckpointClosableIterableImpl.Builder
敬上
類別,建構並傳回疊代器。下列程式碼片段顯示
將每個群組和成員封裝成清單,並據此建構疊代器
清單:
後續步驟
以下是您可能採取的後續步驟: