博客 / 詳情

返回

Console LDAP 配置解密

之前通過短視頻向大家介紹了 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 配置的值中不能包含特殊字符“.”。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.