LDAP 登录

最后更新于:2019-11-18 12:06:34

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

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

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

2.2 删除单个配置

monitor_tools del_config -t server -m web -n 参数名 -v 参数值
spadmin config delete server -p sa -m web -n 参数名 -v 参数值

2.3 查看当前所有配置项

monitor_tools get_config -t server -m web
spadmin config get server -p sa -m web

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'
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'

3. 测试方式

方式1:使用 ldapsearch 命令行工具进行验证

ldapsearch -p 端口 -h IP -D ${ldap_bind_user} -w ${ldap_bind_password} -b ${ldap_base_dn} -x ${ldap_account_pattern}

方式2:使用神策脚本进行验证

sh ~/sa/web/bin/run_ldap_login_test.sh "用户名" "密码"

执行后通过 tail 文件 ~/sa/logs/web/ldap_test.log 查看命令执行结果。

4. 上线

测试成功后,重启 web 生效:

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