1. 描述 编辑
在实际的应用中,用户在使用我们的数据决策系统时,越来越多的倾向于使用 LDAP 来进行多系统的用户统一认证,平台内置了用户认证功能。
LDAP 认证,用户登录的时候,平台拿用户名信息到设置的 LDAP 系统进行认证。
若 LDAP 系统认证失败,则平台判断认证失败;
若 LDAP 系统认证成功,但是对应的用户不存在于fs平台的用户中,则平台判断认证失败;
若 LDAP 系统认证成功,且对应的用户存在于fs平台的用户中,则平台判断认证成功,可进入 fs 平台、按照该用户在平台中的权限进行相应操作。
进入决策系统,点击管理系统>用户管理>设置标签,可以选择 ,如下图:
2. LDAP 认证编辑
选中LDAP ,如下图配置:
1)URL
URL 是登录 LDAP 服务器的入口,URL 由域名或 IP 与端口号组成,一般端口号默认为 389;写法 LDAP://域名或IP+端口号;
2)检索位置
LDAP 是一个树结构存储数据的服务器,通过URL进入服务器,通过用户、密码验证后,进行检索相关登录信息。检索位置即存储该登录信息的位置,如上图写的方式为 LDAP 专用的”域名方式”。
默认勾选不将检索位置作为 BaseDN:只写到根目录会自动检索其下面的子目录,但其效率比较低。
不勾选不将检索位置作为 BaseDN:从根目录一直写到子目录,不需要检索,速度会快一些。
3)认证方式
指定 LDAP 目录服务器所使用的认证类型。根据 LDAP 服务器的配置选择,一般认证方式选择 simple 就可以。
4)前后关系
初始上下文工厂的类名
一般选择 com.sun.jndi.ldap.LdapCtxFactory-对于基于 LDAP 服务器的目录服务.
5)转诊
根据 LDAP 服务器的配置选择,一般选择 follow 即可。
6)用户名后缀
用户名后缀可以添加也可以不添加,添加的时候,登录时也要添加上相应的域名,比如说 name@finereport.com,如果使用的后缀域名,登录不成功,则可以尝试不使用后缀设置。
7)管理员名称/密码
此处管理员名称并非指 LDAP 服务器的管理员名称,而是指具有 LDAP 服务器检索权限的用户。通过该用户进入 LDAP 服务器对检索位置进行登录信息检索来实现认证。通常这里采用的是域名/用户名的方式来进行识别。无论是 uid 或 cn 的方式都可以,但一般不使用 DN 域名的写法。
注:假如管理员名称处填写的并非 LDAP 服务器管理员名称,那建议加上用户所对应的后缀,如检索位置为 DC=fr,DC=test,DC=com,那么普通用户后缀为 test001@fr.test.com;
注:假如是 LDAP 服务器管理员名称,直接填写名称即可,如上述示例中的 administrator。建议域账号加入后缀,如 Administrator@fr.test.com
点击保存按钮,退出决策平台,需重新登录。
至此,LDAP 认证即配置完成了。
2.1 添加用户
在问题描述中讲述了,如果 LDAP 认证成功,但是平台中没有存储该用户,那么平台同样认证失败,那么配置好 LDAP 之后,还需要给数据决策系统添加用户,具体的添加方式有两种:
直接添加:详细请参照 手动添加用户。
同步数据集添加:详细请参照 用户同步数据集。
这里手动添加了一个用户:test001,如下图:
注:LDAP 认证配置用户时,不需要密码一项
2.2 效果测试
若 LDAP 系统认证成功,且对应的用户存在于fs平台的用户中,则平台判断认证成功,可进入 fs 平台、按照该用户在平台中的权限进行相应操作。
3. 注意事项编辑
场景描述:
FineReport 由 9.0 升级到 10.0 之后,用户使用LDAP认证登录失败,登录页面显示报错信息username does not exist。原因分析如下:
9.0 升级到 10.0 后 LDAP 登录认证逻辑发生了改变。
以用户名 User,LDAP 认证后缀 fr.com 为例对认证逻辑进行分析:
Version 9.0:首先将用户名 User 加上后缀 fr.com 检索平台是否存在该用户,然后进行 LDAP 认证流程。
Version 10.0:首先根据用户名 User 检索是否存在该用户,然后再加上后缀 fr.com 进行LDAP认证流程。
解决方案:
方案一:将用户管理下 LDAP 配置页面的用户名后缀去掉不用,用户使用用户名@后缀名即可正常登录。
方案二:将每个用户的用户后缀名都去掉,用户使用用户名即可正常登录。
4.10.0LDAP认证流程编辑
1.URL、检索位置、用户名后缀、管理员名称、密码找对应人员提供。
配置完成后点击保存。
2.添加用户
测试配置的LDAP域账号是否正确,手动添加域里面存在的用户,添加后点击确定,退出当前账号,用手动添加的账号登录,最终结果顺利登录平台,及LDAP测试通过。如下图测试:
3.同步LDAP域用户信息,如下图:
如果AD域对应的是数据库,那么可以在帆软的开发工具直接通过对应的连接信息,进行配置,在决策平台同步用户即可。
目前AD域的用户信息是一个文件,就不可采取这种方式,我们采取的是写程序代码的方式。
首先编写好java代码,在本地编译好class类,再把对应的class类放到对应的com/fr/data/这个路径下,如下图:
4.打开设计器,连接上服务器环境,配置服务器环境如下图:
然后打开配置工作目录,点击“+”添加远程服务器,配置对应的主机名、用户名、密码等,测试连接,然后确定。
5.点击“服务器”–“定义服务器数据集”–添加“程序”数据集,选择刚上传的文件,如下图:
6.点击编辑,将java代码拷贝进去,点击编译--保存--确定,如下图:
7.重启tomcat,登录决策系统平台,点击管理系统–用户管理,如下图:
8.进行同步AD域用户,点击同步用户弹出同步用户页面,选择配置的程序数据集、用户名以及姓名等,然后点击确定,用户就开始同步了,如下图:
注意:1.在第一次同步用户的时候,需注意耐心等待,执行滚动条不明显。
2.在执行时,在telnet一下提供的ip地址是否是连通的。