LDAP 登入
本文件所描述的內容屬於神策分析的高級使用功能,涉及較多技術細節,適用於對相關功能有經驗的用戶參考。如果對文件內容有疑惑,請諮詢您的數據諮詢顧問取得一對一的協助。
神策分析從 1.13 版本開始整合了 LDAP 登入認證,大致登入流程如下:
- 用戶在神策分析系統中正常使用用戶名和密碼進行登入
- 神策系統會使用用戶填寫的用戶名和密碼去後台設定的 LDAP 系統當中進行登入認證,登入成功之後用戶就可以正常使用神策分析系統
- 在 LDAP 系统中新建用戶需要在神策登入之後,神策系統才會自動建立對應的用戶
1. 設定項說明
參數 | 是否必填 | 參數說明 |
---|---|---|
ldap_type | 是 | 支持的 LDAP 類型,例如:OpenLDAP、AdLDAP |
ldap_url | 是 | LDAP 服務的網址,ldap://ip:port 格式 |
ldap_account_pattern | 是 | 登入的用戶名格式,常用的例如:uid=${username} 或者 ${username} @email.com 等。其中 ${username} 是必須的巨集格式,會在登入時使用正在的用戶名進行替換。 |
ldap_base_dn | 是 | LDAP Base DN,進行 LDAP 用戶名搜尋的 Base Dn。例如:ou=people,dc=example,dc=com |
bind_ldap_admin | 否 | 進行 LDAP search 是否綁定管理員帳號,預設為 false。一般在 LDAP 禁止了匿名訪問的時候需要設定為 true 並設定管理員資訊。 |
ldap_bind_user | 否 | 當 LDAP 設定了禁止匿名訪問的時候需要綁定的管理員帳號,等同於 Bind DN。 |
ldap_bind_password | 否 | 當 LDAP 設定了禁止匿名訪問的時候需要綁定的管理員密碼 |
ldap_search_filter | 否 | 在 LDAP 中查找用戶時是否按照指定的 filter 進行篩選 |
ldap_email_suffix | 否 | 登入後的用戶名增加信箱字尾。主要使用場景是接入 LDAP 之前已經使用了信箱格式的用戶名,接入 LDAP 之後使用的是不需要信箱字尾的用戶名,但仍然希望登入後和之前保持是同一個帳號。 |
2. 設定方式
2.1. 修改單個設定
在 sa_cluster 帳號下執行下列 shell 命令修改單個設定項:
monitor_tools set_config -t server -m web -n 參數名 -v 參數值
BASH
spadmin config set server -p sa -m web -n 參數名 -v 參數值
BASH
2.2. 刪除單個設定
monitor_tools del_config -t server -m web -n 參數名
BASH
spadmin config delete server -p sa -m web -n 參數名
BASH
2.3. 查看當前所有設定項
monitor_tools get_config -t server -m web
BASH
spadmin config get server -p sa -m web
BASH
2.4. 一個完整的設定範例
monitor_tools set_config -t server -m web -n ldap_type -v OpenLDAP
monitor_tools set_config -t server -m web -n ldap_url -v ldap://123.1.2.111:389/
monitor_tools set_config -t server -m web -n ldap_account_pattern -v 'uid=${username}'
monitor_tools set_config -t server -m web -n ldap_base_dn -v 'ou=people,dc=example,dc=com'
monitor_tools set_config -t server -m web -n bind_ldap_admin -v true
monitor_tools set_config -t server -m web -n ldap_bind_user -v uid=ldap_admin
monitor_tools set_config -t server -m web -n ldap_bind_password -v xxxxxx
monitor_tools set_config -t server -m web -n ldap_search_filter -v '(memberOf=cn=xxx,ou=people,dc=example,dc=com)'
monitor_tools set_config -t server -m web -n ldap_email_suffix -v '@email.com'
BASH
spadmin config set server -p sa -m web -n ldap_type -v OpenLDAP
spadmin config set server -p sa -m web -n ldap_url -v ldap://123.1.2.111:389/
spadmin config set server -p sa -m web -n ldap_account_pattern -v 'uid=${username}'
spadmin config set server -p sa -m web -n ldap_base_dn -v 'ou=people,dc=example,dc=com'
spadmin config set server -p sa -m web -n bind_ldap_admin -v true
spadmin config set server -p sa -m web -n ldap_bind_user -v uid=ldap_admin
spadmin config set server -p sa -m web -n ldap_bind_password -v xxxxxx
spadmin config set server -p sa -m web -n ldap_search_filter -v '(memberOf=cn=xxx,ou=people,dc=example,dc=com)'
spadmin config set server -p sa -m web -n ldap_email_suffix -v '@email.com'
BASH
3. 測試方式
3.1. 方式一:使用 ldapsearch 命令行工具進行驗證
ldapsearch -p Port -h IP -D ${ldap_bind_user} -w ${ldap_bind_password} -b ${ldap_base_dn} -x ${ldap_account_pattern}
BASH
3.2. 方式二:使用神策腳本進行驗證
sh ~/sa/web/bin/run_ldap_login_test.sh "用戶名" "密碼"
BASH
執行後透過 tail 檔案 ~/sa/logs/web/ldap_test.log 查看命令執行結果。
4. 重啟 Web (神策分析 1.16 及以下版本需要)
測試成功後,重啟 web 生效: