Console LDAP 配置解密

infinilabs發表於2023-11-12

之前透過短影片向大家介紹了 Console 如何整合 LDAP,但很多小夥伴反映按照影片裡的配置後不成功。今天就結合小夥伴們反映的問題來跟大家詳細介紹一下。
Console LDAP 完整的配置引數如下:

名稱 型別 說明
host string LDAP 伺服器地址
port int LDAP 伺服器埠,預設 389
tls bool LDAP 伺服器是否為 TLS 安全傳輸協議,預設 false
bind_dn string 執行 LDAP 查詢的使用者資訊
bind_password string 執行 LDAP 查詢的密碼資訊
base_dn string 過濾 LDAP 使用者的根域
user_filter string 過濾 LDAP 使用者的查詢條件,預設 (uid=%s)
uid_attribute string 用於使用者 ID 的屬性,預設 uid
group_attribute string 用於使用者組的屬性,預設 cn
role_mapping.uid map 用於基於使用者 UID 的許可權對映
role_mapping.group map 用於基於使用者 Group 的許可權對映

接下來結合 debug 模式的除錯資訊(-deubg -log debug)重點說明一下:

LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C0903D3, comment: AcceptSecurityContext error, data 52e, v3839

出現上面錯誤有兩種可能:1、執行 LDAP 查詢的賬戶資訊有誤;2、登陸使用的賬戶資訊有誤

第一種情況涉及配置中的 bind_dn 和 bind_password。
其中 bind_dn 有兩種寫法:1、cn=serviceuser,ou=svcaccts,dc=glauth,dc=com;2、serviceuser@glauth.com
(注:如果是使用 AD,最好使用第二種寫法。);如果 bind_dn 沒問題,請檢查賬戶的密碼是否正確。

第二種情況請驗證賬戶資訊。

LDAP Result Code 201 "Filter Compile Error": ldap: finished compiling filter with extra at end

出現這個錯誤說明 user_filter 沒有配置正確。user_filter 需配置一個過濾條件,可在 LDAP 中匹配到唯 一記錄(在過濾條件中使用“%s”引用登陸的賬戶名)。

authorize result: false, user: &{{yanxi@guobaojinrong.com <nil> <nil>} ldap yanxi@guobaojinrong.com yanxi@guobaojinrong.com    [] [] 0x4003721740}, err: no privilege assigned to this user:yanxi@guobaojinrong.com

出現這個錯誤說明賦權時出現異常,這裡涉及到四個引數(uid_attribute、group_attribute、role_mapping.uid、role_mapping.group)的配置。

這裡需要注意:group_attribute 及 uid_attribute 需配置 LDAP 賬戶資訊中存在的屬性欄位,才能在後面的 role_mapping 裡賦權成功。

注:role_mapping.uid、role_mapping.group 配置的值中不能包含特殊字元“.”。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029458/viewspace-2994864/,如需轉載,請註明出處,否則將追究法律責任。

相關文章