本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

神策分析从 1.13 版本开始集成了 LDAP 登录认证,大致登录流程如下:

  1. 用户在神策分析系统中正常使用用户名和密码进行登录
  2. 神策系统会使用用户填写的用户名和密码去后台配置的 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 参数名 -v 参数值
BASH
spadmin config delete server -p sa -m web -n 参数名 -v 参数值
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 端口 -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 生效:

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