本文介紹OpenLDAP的配置和常見用法。
OpenLDAP基礎介紹
簡介
OpenLDAP是LDAP(輕量型目錄存取通訊協定)的開源實現,常用於管理企業內的使用者、電腦、網路等資源。由於被廣泛使用,OpenLDAP也常被簡稱為LDAP。
基於網路端點能力,您無需開放公網連接埠即可實現LDAP的資料同步和委託認證。
綁定OpenLDAP
在身份提供方中,單擊綁定OpenLDAP,即可開始綁定OpenLDAP流程。
第一步:串連OpenLDAP
在第一步中,您需要在IDaaS中填寫以下資訊:
顯示名稱:使用者在登入、使用IDaaS時可能看到。
網路端點:如果您希望只有IDaaS可以請求該LDAP,請在伺服器中配置IP白名單。共用端點使用共用的、固定的公網出口IP,專屬端點使用專屬的、自訂的私網出口IP和公網出口IP。通過專屬端點,IDaaS可以通過私網訪問您的阿里雲VPC,從而免開公網連接埠訪問您的LDAP,詳見:網路端點。
伺服器位址:LDAP所在的伺服器位址,LDAP預設使用389連接埠,如127.0.0.1:389。開啟ldaps或StartTLS時一般使用636連接埠。
ldaps/StartTLS:開啟後可以大幅提高串連的安全性,推薦開啟。請在LDAP安全性配置中瞭解如何開啟。
管理員賬戶:IDaaS使用該LDAP管理員賬戶讀取LDAP資訊來完成資料同步或委託認證,該賬戶需要至少擁有讀取許可權,需使用DN格式(cn=admin,ou=技術部,dc=example,dc=com)。
管理員密碼:該賬戶的登入密碼。
第二步:選擇情境
在第二步中,選擇希望和LDAP實現的情境能力。
能力說明
同步方向:同步來源所選的LDAP的使用者/組織資料將會匯入到IDaaS的這個節點之下。來源節點需要填寫LDAP節點的DN,LDAP根節點的DN 一般為dc=example,dc=com(即您的域)。
目前僅支援入方向LDAP的同步,暫不支援出方向。
定時校正:由於LDAP不支援查詢增量資料,IDaaS將於每日淩晨自動全量同步LDAP來源節點下的全量資料。
您可以在欄位對應中設定映射標識,使用IDaaS賬戶的某個欄位(如手機號)與LDAP使用者的某個欄位(如手機號)進行匹配,如果匹配成功,將綁定並覆蓋更新;否則將建立IDaaS賬戶。
如果需要及時同步資料,請手動觸發全量同步。
IDaaS內建了同步保護能力, 當30個以上的賬戶或10個以上的組織需要被刪除時,自動取消同步任務,以防止資料被誤刪除。建議根據企業規模調整同步保護設定。
如果單條賬戶資料無法匯入,不影響其他資料匯入。
失敗資訊可在同步處理記錄中查看。
委託認證:使用者可以使用LDAP使用者/密碼登入到IDaaS,
自動更新密碼:使用者通過LDAP委託認證到IDaaS時,如果IDaaS賬戶的密碼為空白,則更新為LDAP賬戶的密碼。LDAP密碼需滿足IDaaS密碼原則的要求,否則將無法自動更新。
進階配置
使用者/組織
ObjectClass
:通過ObjectClass
可以定義哪種類型的對象是使用者/組織,例如將查詢結果中ObjectClass=user
的對象視作使用者。
LDAP有靈活的自訂能力,如果您自訂了使用者/組織的ObjectClass
,請確保ObjectClass
的一致,以免同步到IDaaS
的資料不符合您的預期。
使用者登入標識:使用者在使用LDAP委託認證登入IDaaS時,IDaaS將根據這些屬性去LDAP中查詢使用者並匹配密碼,密碼正確則允許使用者登入IDaaS。可以使用半形逗號對多個屬性進行分割,此時為或關係,即可以使用任一屬性登入。請確保多個屬性對應同一個LDAP使用者,否則將無法登入。
使用者
filter
過濾:如果您需要篩選分散在不同組織中的部分使用者同步到IDaaS,您可以自訂filter
語句,只有滿足條件的使用者才可同步到IDaaS。filter
語句預設包含且關係的ObjectClass
條件,您可以單擊查看詳情查看完整的語句。更多注意事項和常見用法請查看filter過濾。
第三步:欄位對應
如果您在IDaaS中已存在存量資料,需要LDAP使用者/組織和IDaaS賬戶/組織綁定,或者希望使用LDAP中使用者的某些欄位資料作為IDaaS賬戶的資料,例如將LDAP使用者的手機號作為IDaaS賬戶的賬戶名,則需要在第三步配置欄位對應。如需使用映射標識能力,需手動單擊啟用,如下圖的手機欄位。
更多欄位對應的說明請查看文檔欄位對應。
LDAP安全性配置
預設情況下,LDAP在傳輸資料時不加密且不受保護,存在明文資料被竊取的風險。使用ldaps或StartTLS可以有效提高資料轉送的安全性。在LDAP中配置認證後,即可在IDaaS中使用ldaps或StartTLS,強烈建議您開啟。
在配置完認證後,您可以在IDaaS中一鍵擷取認證指紋,建立IDaaS對LDAP認證的信任關係,降低偽造認證的風險。
LDAP個人化配置
ObjectClass
LDAP中的ObjectClass
是attribute的集合,每個對象都必須擁有ObjectClass
。可以通過ObjectClass
定義一個對象是使用者、組織或電腦等,例如針對下圖的對象,在IDaaS中設定使用者ObjectClass
為“inetOrgPerson,posixAccount,top”時,IDaaS即會將對象視作為使用者。在LDAP中編輯對象時即可看到ObjectClass
。
LDAP有靈活的自訂能力,如果您自訂了使用者/組織的ObjectClass
,請確保ObjectClass
的一致,以免同步到IDaaS的資料不符合您的預期。
登入標識
使用者在使用LDAP委託認證登入IDaaS時,IDaaS將根據這些屬性去LDAP中查詢使用者並匹配密碼,密碼正確則允許使用者登入IDaaS。
一般可以使用uid
、手機號、郵箱、工號等屬性用於登入,如有需要可在建立時或委託認證中定義。如果使用多個屬性,請確保屬性的唯一併對應同一個LDAP使用者,否則使用者將無法使用委託認證。
Filter過濾
修改ObjectClass
和filter
將影響LDAP的過濾條件,在執行全量同步時將刪除不符合過濾條件的IDaaS賬戶和組織。建議在修改前調整同步保護限額,並充分測試過濾結果是否符合預期(例如使用另一個 IDaaS執行個體進行測試)。
基礎介紹
如果您需要篩選分散在不同組織中的部分使用者同步到IDaaS,您可以自訂filter
語句,只有滿足條件的使用者才可同步到IDaaS。filter
語句預設包含且關係的ObjectClass
條件,您可以單擊查看詳情查看完整的語句。
您可在LDAP Admin工具中輸入filter
語句,檢查過濾後的結果。
以下是LDAP Filter常用的文法和語句。
常用文法
運算子 | 含義 | 樣本 |
= | 相等 | (cn=Alice) |
>= | 大於等於 | (pwdLastSet>=1319563845000000000) |
<= | 小於等於 | (employeeNumber<=1000) |
& | 且關係,必須滿足全部條件 | (&(cn=CN*)(title=RD)) |
| | 或關係,必須滿足任一條件 | (|(cn=Test*)(cn=Admin*)) |
! | 非關係,必須不滿足全部條件 | (!(cn=Test*)(cn=Admin*)) |
常用語句
情境 | 樣本 |
使用者名稱以“CN”開頭 | (cn=CN*) |
指定郵箱的使用者 | (mail=alice@example.com) |
LDAP同步配置
擷取Base DN
Base DN是LDAP中某個節點的路徑標識,IDaaS只會在該節點下執行查詢和資料同步等操作。您可以在同步方向中設定來源節點的Base DN。
DN的格式為:ou=某組織,dc=example,dc=com,根節點的DN一般為dc=example,dc=com(即您的域)。您也可以在LDAP中直接查看節點的DN,如下圖所示:
另外,當節點的路徑有變化時,節點的Base DN也會有變化,為避免節點路徑調整導致LDAP資料同步出錯,您在IDaaS中配置同步來源節點的Base DN時,IDaaS也會將該節點的ObjectGuid
作為節點指紋,當節點的Base DN有變動導致和節點指紋不匹配時,將阻斷資料同步行為。重新設定來源節點後即可正常同步。
定時校正
由於LDAP不支援查詢增量資料,IDaaS將於每日淩晨自動全量同步LDAP來源節點下的全量資料。如果需要及時同步資料,請手動觸發全量同步。
IDaaS內建了同步保護能力, 當30個以上的賬戶或10個以上的組織需要被刪除時,自動取消同步任務,以防止資料被誤刪除。建議根據企業規模調整同步保護設定。