LDAP
您可以使用 LDAP 連接器設定一般 LDAP 伺服器。
支援的版本
這個連接器支援 LDAP 第 2 版和第 3 版。
事前準備
使用 LDAP 連接器前,請先完成下列工作:
- 在 Google Cloud 專案中:
- 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
- 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
- 將下列 IAM 角色授予要用於連接器的服務帳戶:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請建立服務帳戶。詳情請參閱「建立服務帳戶」。
- 啟用下列服務:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如要瞭解如何啟用服務,請參閱「啟用服務」。
如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。
設定連接器
連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:
- 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。
- 按一下「+ 建立新連線」,開啟「建立連線」頁面。
- 在「位置」部分中,選擇連線位置。
- 區域:從下拉式清單中選取位置。
如需所有支援的地區清單,請參閱「位置」一文。
- 點按「下一步」。
- 區域:從下拉式清單中選取位置。
- 在「連線詳細資料」部分,完成下列步驟:
- 連接器:從可用連接器的下拉式清單中選取「LDAP」。
- 連接器版本:從可用版本的下拉式清單中選取連接器版本。
- 在「連線名稱」欄位中,輸入連線執行個體的名稱。
連線名稱必須符合下列條件:
- 連線名稱可使用英文字母、數字或連字號。
- 字母必須為小寫。
- 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
- 連結名稱不得超過 49 個字元。
- 視需要輸入連線執行個體的「Description」(說明)。
- 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為
Error
。 - 服務帳戶:選取具備必要角色的服務帳戶。
- 視需要設定「連線節點設定」:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。
- 基準 DN:辨別名稱的基準部分,用於將結果限制在特定子樹狀結構。
- 驗證機制:連線至 LDAP 伺服器時要使用的驗證機制。
- 追蹤參照:是否要追蹤 LDAP 伺服器傳回的 LDAP 參照。
- 友善 GUID:是否以使用者可理解的格式傳回 GUID 屬性值。
- 友善 SID:是否以使用者可理解的格式傳回 SID 屬性值。
- LDAP 版本:用於連線至伺服器及與伺服器通訊的 LDAP 版本。
- 範圍:是否將搜尋範圍限制在整個子樹狀結構 (BaseDN 和所有後代)、單一層級 (BaseDN 和直接後代),或是基準物件 (僅限 BaseDN)。
- 選用:按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
- 點按「下一步」。
- 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料。
- 目的地類型:選取目的地類型。
- 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
- 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。
如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。
如要輸入其他目的地,請按一下「+新增目的地」。
- 點按「下一步」。
- 目的地類型:選取目的地類型。
-
在「Authentication」(驗證) 部分中,輸入驗證詳細資料。
- 選取「驗證類型」並輸入相關詳細資料。
LDAP 連線支援下列驗證類型:
- 使用者名稱和密碼
- 點按「下一步」。
如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。
- 選取「驗證類型」並輸入相關詳細資料。
- 檢查:檢查連線和驗證詳細資料。
- 點選「建立」。
設定驗證機制
LDAP 連接器支援基本驗證類型。如果目的地或 LDAP 執行個體是託管在 VM 上,或位於私人網路中,請建立端點附件。如要瞭解如何安裝及設定 LDAP,請參閱 LDAP 安裝。
-
使用者名稱和密碼
- 使用者名稱:連接器的使用者名稱
- 密碼:Secret Manager 密鑰,內含與連接器相關聯的密碼。
基本驗證連線類型
下表列出基本驗證連線類型的範例設定值。欄位名稱 | 詳細資料 |
---|---|
區域 | us-central1 |
連接器 | LDAP |
連接器版本 | 1 |
連線名稱 | google-ldap-basicauth-conn |
服務帳戶 | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
基準 DN | CN=Users,DC=NAME,DC=com |
驗證機制 | 簡單 |
LDAP 版本 | 3 |
範圍 | WHOLESUBTREE |
詳細程度 | 5 |
節點數量下限 | 2 |
節點數量上限 | 50 |
使用者名稱 | USER_NAME |
密碼 | 密碼 |
密鑰版本 | 1 |
實體、作業和動作
所有整合連接器都會為所連應用程式的物件提供抽象層。您只能透過這個抽象化程序存取應用程式的物件。抽象化會以實體、作業和動作的形式呈現。
- 實體: 實體可以視為已連結應用程式或服務中的物件,或是屬性集合。實體的定義因連接器而異。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。
不過,連接器可能不支援或沒有任何實體,在這種情況下,
Entities
清單會是空白。 - 作業: 作業是指您可以在實體上執行的活動。您可以對實體執行下列任一操作:
從可用清單中選取實體,系統會產生該實體可用的作業清單。如需作業的詳細說明,請參閱 Connectors 工作的實體作業。 不過,如果連接器不支援任何實體作業,系統就不會在
Operations
清單中列出這些不支援的作業。 - 動作: 動作是透過連接器介面提供給整合的第一類函式。動作可讓您變更一或多個實體,且因連接器而異。一般來說,動作會有一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,此時
Actions
清單會是空白。
動作
本節列出 LDAP 連接器支援的所有動作。
MoveToDN 動作
這項動作會將物件從一個 DN (辨別名稱) 移至另一個 DN。
MoveToDN 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
DN | 字串 | 是 | LDAP 伺服器上要移動的物件目前 DN。例如 CN=Google Cloud,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com 。 |
NewParentDN | 字串 | 是 | 物件的新上層 DN。例如 OU=Mysore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com 。 |
DownloadFile 動作的輸出參數
這項動作會傳回狀態 200 (OK),以及指出結果的回應內文。
如要瞭解如何設定 MoveToDN
動作,請參閱動作範例。
GetAttributes 動作
這項動作會取得 DN 的所有屬性名稱和值。
GetAttributes 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
DN | 字串 | 是 | 所需 LDAP 物件的辨別名稱。如未指定,系統會使用連線字串中的 BaseDN。 |
GetAttributes 動作的輸出參數
這項動作會傳回狀態 200 (OK),以及指出結果的回應內文。
如要瞭解如何設定 GetAttributes
動作,請參閱動作範例。
AddMembersToGroup 動作
這項操作會將使用者加入群組。
GetAttributes 動作的輸入參數
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
GroupId | 字串 | 是 | 要新增使用者的群組 ID。 |
UserDNs | 字串 | 是 | UserDN 匯總或臨時表格,其中包含要加入群組的使用者 DN。這個值應為使用者記錄的 DN。 |
AddMembersToGroup 動作的輸出參數
這項動作會傳回狀態 200 (OK),以及指出結果的回應內文。
如要瞭解如何設定 AddMembersToGroup
動作,請參閱動作範例。
動作範例
本節說明如何在這個連接器中執行部分動作。
範例 - 將物件從一個 DN 移至另一個 DN
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
MoveToDN
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "DN": "CN=Google Cloud,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com", "NewParentDN": "OU=Mysore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com" }
這個範例會將物件從一個 DN 移至另一個 DN。如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似以下內容:
[{ "Success": null, "result": "[ok]", "modified": "true", "rss:title": "The movement was successful.", "resultcode": "0" }]
範例 - 取得 DN 的屬性
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
GetAttributes
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "DN": "CN=Bangalore user,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com" }
這個範例會取得指定 DN 的屬性。如果動作成功,連接器工作 connectorOutputPayload
回應參數的值會類似以下內容:
[{ "AttributeName": "_op", "AttributeValue": "ldapadoGetAttributes" }, { "AttributeName": "usncreated", "AttributeValue": "36006" }, { "AttributeName": "countrycode", "AttributeValue": "0" }, { "AttributeName": "badpwdcount", "AttributeValue": "0" }, { "AttributeName": "dn", "AttributeValue": "" }, { "AttributeName": "dn", "AttributeValue": "CN=Bangalore user,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com" }, { "AttributeName": "whenchanged", "AttributeValue": "20230913125155.0Z" }, { "AttributeName": "objectclass", "AttributeValue": "top" }, { "AttributeName": "objectclass", "AttributeValue": "person" }, { "AttributeName": "objectclass", "AttributeValue": "organizationalPerson" }, { "AttributeName": "objectclass", "AttributeValue": "user" }, { "AttributeName": "primarygroupid", "AttributeValue": "513" }, { "AttributeName": "givenname", "AttributeValue": "Bangalore" }, { "AttributeName": "dscorepropagationdata", "AttributeValue": "16010101000001.0Z" }, { "AttributeName": "sn", "AttributeValue": "user" }, { "AttributeName": "useraccountcontrol", "AttributeValue": "512" }, { "AttributeName": "cn", "AttributeValue": "Bangalore user" }, { "AttributeName": "codepage", "AttributeValue": "0" }, { "AttributeName": "accountexpires", "AttributeValue": "9223372036854775807" }, { "AttributeName": "userprincipalname", "AttributeValue": "user-1@test-l }]
範例 - 將使用者加入群組
- 在「
Configure connector task
」對話方塊中,按一下Actions
。 - 選取
AddMembersToGroup
動作,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "GroupId": "1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com", "UserDNs": "[{\"DN\":\"CN=Google AI,CN=Users,DC=test-ldap,DC=com;CN=Guest,CN=Users,DC=test-ldap,DC=com\"}]" }
這個範例會將使用者 DN 新增至 ID 為 1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com
的群組。如果動作成功,連接器工作的回應參數 connectorOutputPayload
會包含類似下列的值:
[{ "Success": "True" }]
實體作業範例
範例 - 列出使用者
這個範例會列出 User
實體中的所有使用者。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取「
LIST
」作業,然後按一下「完成」。 - 您可以選擇篩選結果集。如要篩選結果集,請在「連線器」工作的「工作輸入」部分,根據需求設定 filterClause。
舉例來說,如果將篩選器子句設為
Id='1|CN=admin,CN=Users,DC=test-ldap,DC=com'
,系統只會列出 ID 符合這項條件的記錄。
範例 - 取得使用者記錄
這個範例會從 User
實體取得使用者詳細資料。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取「
GET
」作業,然後按一下「完成」。 - 在「連線器」工作的「工作輸入」部分,按一下「EntityId」,然後在「預設值」欄位中輸入
1|CN=admin,CN=Users,DC=test-ldap,DC=com
。其中
1|CN=admin,CN=Users,DC=test-ldap,DC=com
是User
實體的主鍵值之一。
範例 - 建立使用者記錄
這個範例會在 User
實體中建立使用者記錄。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取「
Create
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "RDN": "CN=MPATAI", "ObjectClass": "top;person;organizationalPerson;user" }
如果整合成功,連接器工作的
connectorOutputPayload
欄位會包含類似下列內容的值:{ "Id": "1|CN=MPATAI,CN=Users,DC=test-ldap,DC=com" }
範例 - 更新支援單
這個範例會更新 User
實體中指定的使用者記錄。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取「
Update
」作業,然後按一下「完成」。 - 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下
connectorInputPayload
,然後在Default Value
欄位中輸入類似下列的值:{ "PostalCode": "560040" }
- 按一下「entityId」,然後在「Default Value」欄位中輸入
1|CN=admin,CN=Users,DC=test-ldap,DC=com
。或者,您也可以將 filterClause 設為
1|CN=admin,CN=Users,DC=test-ldap,DC=com
,而非指定 entityId。如果整合成功,連接器工作的
connectorOutputPayload
欄位會包含類似下列內容的值:{ "Id": "1|CN=admin,CN=Users,DC=test-ldap,DC=com" }
範例 - 刪除使用者記錄
這個範例會從 User
實體刪除使用者記錄。
- 在「
Configure connector task
」對話方塊中,按一下Entities
。 - 從
Entity
清單中選取User
。 - 選取「
Delete
」作業,然後按一下「完成」。 - 在「連線器」工作的「Task Input」(工作輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入
1|CN=admin,CN=Users,DC=test-ldap,DC=com
。 - 或者,如果
User
實體有複合式主鍵,您可以設定 filterClause,而不是指定 entityId。例如:Id='1|CN=admin,CN=Users,DC=test-ldap,DC=com' and DN='CN=admin,CN=Users,DC=test-ldap,DC=com'
。
使用 Terraform 建立連線
您可以使用 Terraform 資源建立新連線。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要查看用於建立連線的 Terraform 範本範例,請參閱範本範例。
使用 Terraform 建立這項連線時,您必須在 Terraform 設定檔中設定下列變數:
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
base_dn | STRING | 是 | 辨別名稱的基本部分,用於將結果限制在特定子樹狀結構。 |
auth_mechanism | ENUM | 是 | 連至 LDAP 伺服器時要使用的驗證機制,支援的值包括:SIMPLE、DIGESTMD5、NEGOTIATE |
follow_referrals | BOOLEAN | 否 | 是否要追蹤 LDAP 伺服器傳回的 LDAP 參照。 |
friendly_guid | BOOLEAN | 否 | 是否以使用者可理解的格式傳回 GUID 屬性值。 |
friendly_sid | BOOLEAN | 否 | 是否要以使用者可解讀的格式傳回 SID 屬性值。 |
ldapversion | ENUM | 是 | 用於連線至伺服器並與伺服器通訊的 LDAP 版本。支援的值為:2、3 |
範圍 | ENUM | 是 | 是否要將搜尋範圍限制在整個子樹狀結構 (BaseDN 和所有子系)、單一層級 (BaseDN 和直接子系),或是基本物件 (僅限 BaseDN)。支援的值包括:WHOLESUBTREE、SINGLELEVEL、BASEOBJECT |
在整合中運用 LDAP 連線
建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。
- 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
- 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。