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)

      如要瞭解如何啟用服務,請參閱「啟用服務」。

    如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。

設定連接器

連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:

  1. Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「連線」頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「位置」部分中,選擇連線位置。
    1. 區域:從下拉式清單中選取位置。

      如需所有支援的地區清單,請參閱「位置」一文。

    2. 點按「下一步」
  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 連接器:從可用連接器的下拉式清單中選取「LDAP」
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 連線名稱可使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
      • 連結名稱不得超過 49 個字元。
    4. 視需要輸入連線執行個體的「Description」(說明)
    5. 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為 Error
    6. 服務帳戶:選取具備必要角色的服務帳戶。
    7. 視需要設定「連線節點設定」

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    8. 基準 DN:辨別名稱的基準部分,用於將結果限制在特定子樹狀結構。
    9. 驗證機制:連線至 LDAP 伺服器時要使用的驗證機制。
    10. 追蹤參照:是否要追蹤 LDAP 伺服器傳回的 LDAP 參照。
    11. 友善 GUID:是否以使用者可理解的格式傳回 GUID 屬性值。
    12. 友善 SID:是否以使用者可理解的格式傳回 SID 屬性值。
    13. LDAP 版本:用於連線至伺服器及與伺服器通訊的 LDAP 版本。
    14. 範圍:是否將搜尋範圍限制在整個子樹狀結構 (BaseDN 和所有後代)、單一層級 (BaseDN 和直接後代),或是基準物件 (僅限 BaseDN)。
    15. 選用:按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    16. 點按「下一步」
  5. 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料。
    1. 目的地類型:選取目的地類型
      • 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
      • 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。

      如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

      如要輸入其他目的地,請按一下「+新增目的地」

    2. 點按「下一步」
  6. 在「Authentication」(驗證) 部分中,輸入驗證詳細資料。
    1. 選取「驗證類型」並輸入相關詳細資料。

      LDAP 連線支援下列驗證類型:

      • 使用者名稱和密碼
    2. 如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。

    3. 點按「下一步」
  7. 檢查:檢查連線和驗證詳細資料。
  8. 點選「建立」

設定驗證機制

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

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 MoveToDN 動作,然後按一下「完成」
  3. 在「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"
    }
      
  4. 這個範例會將物件從一個 DN 移至另一個 DN。如果動作成功,連接器工作 connectorOutputPayload 回應參數的值會類似以下內容:

    [{
    "Success": null,
    "result": "[ok]",
    "modified": "true",
    "rss:title": "The movement was successful.",
    "resultcode": "0"
    }]

範例 - 取得 DN 的屬性

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 GetAttributes 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "DN": "CN=Bangalore user,OU=Bangalore,OU=India,OU=Domain_Users,DC=test-ldap,DC=com"
    }
  4. 這個範例會取得指定 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
      }]  
      

範例 - 將使用者加入群組

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 AddMembersToGroup 動作,然後按一下「完成」
  3. 在「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\"}]"
    }
  4. 這個範例會將使用者 DN 新增至 ID 為 1|CN=Cert Publishers,CN=Users,DC=test-ldap,DC=com 的群組。如果動作成功,連接器工作的回應參數 connectorOutputPayload 會包含類似下列的值:

    [{
      "Success": "True"
      }]

實體作業範例

範例 - 列出使用者

這個範例會列出 User 實體中的所有使用者。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 User
  3. 選取「LIST」作業,然後按一下「完成」
  4. 您可以選擇篩選結果集。如要篩選結果集,請在「連線器」工作的「工作輸入」部分,根據需求設定 filterClause

    舉例來說,如果將篩選器子句設為 Id='1|CN=admin,CN=Users,DC=test-ldap,DC=com',系統只會列出 ID 符合這項條件的記錄。

範例 - 取得使用者記錄

這個範例會從 User 實體取得使用者詳細資料。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 User
  3. 選取「GET」作業,然後按一下「完成」
  4. 在「連線器」工作的「工作輸入」部分,按一下「EntityId」,然後在「預設值」欄位中輸入 1|CN=admin,CN=Users,DC=test-ldap,DC=com

    其中 1|CN=admin,CN=Users,DC=test-ldap,DC=comUser 實體的主鍵值之一。

範例 - 建立使用者記錄

這個範例會在 User 實體中建立使用者記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 User
  3. 選取「Create」作業,然後按一下「完成」
  4. 在「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 實體中指定的使用者記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 User
  3. 選取「Update」作業,然後按一下「完成」
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
            "PostalCode": "560040"
          }
          
  5. 按一下「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 實體刪除使用者記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 User
  3. 選取「Delete」作業,然後按一下「完成」
  4. 在「連線器」工作的「Task Input」(工作輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 1|CN=admin,CN=Users,DC=test-ldap,DC=com
  5. 或者,如果 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 中建立及使用「連線器」工作,請參閱「連線器工作」。

向 Google Cloud 社群尋求協助

如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

後續步驟