菜单

LDAP 登录

本文档所描述的内容属于神策产品的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询神策值班同学获取一对一的协助。

神策分析集成了 LDAP 登录认证,登录流程如下:

  1. 用户在神策系统中正常使用用户名和密码进行登录。
  2. 神策系统会使用用户填写的用户名和密码去后台配置的 LDAP 系统当中进行登录认证,登录成功之后用户就可以正常使用神策系统。
  3. 在 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 帐号的条件,${username} 为用户名的占位符,不能更改。

范例的含意是,搜寻属性 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'

配置验证方式

安装 ldapsearch

# 在 root 用户下执行
yum install openldap-clients

查看配置

sbpadmin business_config getall -p sbp

通过 ldapsearch 验证配置内容

# 格式:ldapsearch -p ${port} -h ${ip} -D '${ldap_bind_user}' -w '${ldap_bind_password}' -b '${ldap_base_dn}'
ldapsearch -p 389 -h 10.XXX.XXX.XXX -D 'sensorsAD' -w '**********' -b 'ou=Members,DC=sensorsdata,DC=cn'

确定能正常返回数据

IP 或端口错误,返回 Can't contact LDAP server (-1)

帐号密码错误,返回 Invalid credentials (49)

ldap_base_dn 的 DC 错误,返回 DSID-031007F9

ldap_base_dn 的 ou 错误,返回 DSID-03100241

确定帐号搜寻条件一致

# 格式:ldapsearch -p ${port} -h ${ip} -D '${ldap_bind_user}' -w '${ldap_bind_password}' -b '${ldap_base_dn}' -x '${ldap_account_pattern}'
ldapsearch -p 389 -h 10.XXX.XXX.XXX -D 'sensorsAD' -w '**********' -b 'ou=Members,DC=sensorsdata,DC=cn' -x 'sAMAccountName=myUsername'

过滤条件错误,将搜寻不到数据

使用神策命令进行登录验证

sbpadmin debug ldap -u '用户名' -p '密码'

重启 Web

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

spadmin restart -m web -p sbp

同步 LDAP 域中的用户信息到神策

支持客户在登录时获取 LDAP 域中的信息同步到神策系统

查看 LDAP 域中的客户属性

sbpadmin debug ldap -u '用户名' -p '密码' -d

根据 LDAP 域中的客户属性配置映射信息

在登录时将 LDAP 域中的用户信息同步到神策系统,目前支持的信息有:用户姓名、手机号、邮箱。

额外支持账户信息(username 字段)。场景:期望将 LDAP 登录账号的属性与神策已有账号关联,可通过此配置完成。

# 以 k-v 的形式配置,其中 userCname、phone、email、username 分别对应用户姓名、手机号、邮箱、账号名,不可修改。user_cname_field,phone_field,email_field 为 LDAP 域中的客户属性字段。本例表示通过 LDAP 登陆创建出来的神策账号使用 LDAP 属性中的邮箱当作账号名。
sbpadmin business_config set -p sbp -k ldap_user_mapping_map -v "{"userCname":"user_cname_field","phone":"phone_field","email":"email_field","username":"email_field"}"

说明:以 k-v 的形式配置,其中 userCname、phone、email 分别对应用户姓名、手机号和邮箱,不可修改。user_cname_field、phone_field、email_field 为 LDAP 域中的客户属性字段。

上一个
OAuth2.0 登录
下一个
数据归档
最近修改: 2025-03-25