本文件所描述的內容屬於神策分析的高級使用功能,涉及較多技術細節,適用於對相關功能有經驗的用戶參考。如果對文件內容有疑惑,請諮詢您的數據諮詢顧問取得一對一的協助。

神策分析從 1.13 版本開始整合了 LDAP 登入認證,大致登入流程如下:

  1. 用戶在神策分析系統中正常使用用戶名和密碼進行登入
  2. 神策系統會使用用戶填寫的用戶名和密碼去後台設定的 LDAP 系統當中進行登入認證,登入成功之後用戶就可以正常使用神策分析系統
  3. 在 LDAP 系统中新建用戶需要在神策登入之後,神策系統才會自動建立對應的用戶

1. 設定項說明

參數是否必填參數說明
ldap_type支持的 LDAP 類型,例如:OpenLDAP、AdLDAP
ldap_urlLDAP 服務的網址,ldap://ip:port 格式
ldap_account_pattern登入的用戶名格式,常用的例如:uid=${username} 或者 ${username}@email.com 等。其中 ${username} 是必須的巨集格式,會在登入時使用正在的用戶名進行替換。
ldap_base_dnLDAP 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 生效:

sa_admin restart -m web
BASH
spadmin restart -m web -p sa
BASH