本文档所描述的内容属于神策产品的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询神策值班同学获取一对一的协助。
神策分析集成了 LDAP 登录认证,登录流程如下:
- 用户在神策系统中正常使用用户名和密码进行登录。
- 神策系统会使用用户填写的用户名和密码去后台配置的 LDAP 系统当中进行登录认证,登录成功之后用户就可以正常使用神策系统。
- 在 LDAP 系统中新建用户需要在神策登录之后,神策系统才会自动创建对应的用户。
admin 帐号不受 LDAP 控制
当配置了 ldap_type 配置项,表示开启了 LDAP,此后除了 admin 之外的帐号密码体系,都只通过 LDAP 进行验证。故如配置不成功,需要进行快速恢复,将 ldap_type 配置项进行删除即可。
配置项说明
参数 | 范例 | 是否必填 | 参数说明 |
---|---|---|---|
ldap_type | OpenLDAP、AdLDAP | 是 | 支持的 LDAP 类型 |
ldap_url | ldap://10.XXX.XXX.XXX:389/ | 是 | LDAP 服务的地址 |
ldap_account_pattern | sAMAccountName=${username} | 是 |
搜寻 LDAP 帐号的条件, 范例的含意是,搜寻属性 sAMAccountName 为某帐号的数据。通常 AdLDAP 为 sAMAccountName=${username},OpenLDAP 为 uid=${username}。 |
ldap_base_dn | ou=Members,DC=sensorsdata,DC=cn | 是 |
LDAP Base DN,进行 LDAP 用户名检索的 Base Dn。 DC 为域名,范例的含意则表示域名为 sensorsdata.cn。 OU 为组织结构,LDAP 的结构为 DN > RDN > CN > OU > O > DC。 |
bind_ldap_admin | true、false | 否 |
是否通过下面的 ldap_bind_user、ldap_bind_password 去登入 LDAP 系统,默认为 false。 一般在 LDAP 禁止了匿名访问的时候需要设置为 true 并配置 bind_ldap_admin、ldap_bind_password。 如果为 false 则用在神策登录页面的帐号、密码直接去登录 LDAP 系统。 |
ldap_bind_user | sensorsAD | 否 | 当 LDAP 配置了禁止匿名访问的时候需要绑定的管理员账号,等同于 Bind DN。 |
ldap_bind_password | ********** | 否 | 当 LDAP 配置了禁止匿名访问的时候需要绑定的管理员密码。 |
ldap_search_filter | 否 | 在 LDAP 中查找用户时是否按照指定的 filter 进行筛选 | |
ldap_email_suffix | @sensorsdata.cn | 否 |
登录后的用户名添加邮箱后缀。 主要使用场景是接入 LDAP 之前已经使用了邮箱格式的用户名,接入 LDAP 之后使用的是不需要邮箱后缀的用户名,但仍然希望登录后和之前保持是同一个账号。 |
ldap_default_project | production | 否 | LDAP 默认登录的项目,不设置默认为测试项目 |
配置方式
修改单个配置
在 sa_cluster 账户下执行下列 shell 命令修改单个配置项:
sbpadmin business_config set -p sbp -k 参数名 -v 参数值
删除单个配置
在 sa_cluster 账户下执行下列 shell 命令删除单个配置项。如果需要关闭 LDAP 的话,需要通过删除单个配置的方式实现。上方表格里所有参数都需要执行。
注:不支持删除配置项,只能将配置项设置为空字符串
sbpadmin business_config set -p sbp -k 参数名 -v
查看当前所有配置项
sbpadmin business_config getall -p sbp
一个完整的配置示例
sbpadmin business_config set -p sbp -k ldap_type -v 'AdLDAP'
sbpadmin business_config set -p sbp -k ldap_url -v 'ldap://10.XXX.XXX.XXX:389/'
sbpadmin business_config set -p sbp -k ldap_account_pattern -v 'sAMAccountName=${username}'
sbpadmin business_config set -p sbp -k ldap_base_dn -v 'ou=Members,DC=sensorsdata-inc,DC=cn'
sbpadmin business_config set -p sbp -k bind_ldap_admin -v true
sbpadmin business_config set -p sbp -k ldap_bind_user -v 'sensorsAD'
sbpadmin business_config set -p sbp -k ldap_bind_password -v '**********'
sbpadmin business_config set -p sbp -k ldap_search_filter -v 'memberOf=cn=xxx,ou=people,dc=example,dc=com'
sbpadmin business_config set -p sbp -k ldap_email_suffix -v '@email.com'