LDAP 认证

  • 文档创建者:文档助手1
  • 编辑次数:25次
  • 最近更新:Wendy123456 于 2020-05-06
  • 1. 概述

    1.1 版本

    报表服务器版本
    10.0

    1.2 应用场景

    用户在 LDAP 认证服务器存储了较为完整的员工信息,且已经使用它进行了多个线上系统的认证,需要平台也使用同样的认证方法,可在数据决策系统的管理系统>用户管理>全局设置处开启 LDAP 认证。

    1.3 功能简介

    平台提供 LDAP 认证,用户可按照本文方法在数据决策系统中设置 LDAP 认证。

    2. 验证逻辑

    LDAP 认证,用户登录时,平台将输入的用户名信息到设置的 LDAP 系统进行认证。

    • 若 LDAP 系统认证失败,则平台判断认证失败;

    • 若 LDAP 系统认证成功,但是对应的用户不存在于 FS 平台的用户中,则平台判断认证失败;

    • 若 LDAP 系统认证成功,且对应的用户存在于 FS 平台的用户中,则平台判断认证成功,可进入 FS 平台,按照该用户在平台中的权限进行相应操作。

    3. 操作步骤

    3.1 配置 LDAP 认证

    1)以管理员身份进入数据决策系统,点击管理系统>用户管理>全局设置,可选择认证方式。如下图所示:

    1585201183615187.png

    2)认证方式选择 LDAP 认证,输入各个参数,点击保存按钮,退出数据决策系统,需重新登录。如下图所示:

    3.png

    LDAP 认证时各参数项说明如下表所示:

    参数项说明
    URL

    URL 是登录 LDAP 服务器的入口,URL 由域名或 IP 与端口号组成,一般端口号默认为 389。URL 格式为: LDAP://域名或IP+端口号

    检索位置

    LDAP 是一个树结构存储数据的服务器,通过 URL 进入服务器,通过用户、密码验证后,进行检索相关登录信息,「检索位置」即存储该登录信息的位置。

    • 勾选不将检索位置作为 BaseDN:只写到根目录会自动检索其下面的子目录,效率比较低。

    • 不勾选不将检索位置作为 BaseDN:从根目录一直写到子目录,不需要检索,速度较快。

    认证方式

    指定 LDAP 目录服务器所使用的认证类型。

    根据  LDAP 服务器的配置选择,一般认证方式选择simple

    注:认证方式选择 none 时,为匿名认证,即平台用户输入任意密码都能正常登录;认证方式选择 simple 时,为普通明文密码认证。

    前后关系

    初始上下文工厂的类名

    一般选择com.sun.jndi.ldap.LdapCtxFactory-对于基于 LDAP 服务器的目录服务

    转诊

    根据  LDAP 服务器的配置选择,一般选择ignore

    用户名后缀用户名后缀可以添加也可以不添加,若添加,登录时添加上相应的域名
    管理员名称/密码

    此处管理员名称并非指 LDAP 服务器的管理员名称,而是指具有 LDAP 服务器检索权限的用户。通过该用户进入 LDAP 服务器对检索位置进行登录信息检索来实现认证。

    通常这里采用的是域名/用户名的方式来进行识别。无论是 uid 或 cn 的方式都可以,但一般不使用 DN 域名的写法

    注1:如果管理员账号不是 LDAP 服务器的的管理员,而是 LDAP 服务器中赋予了检索权限的普通用户,那么必须要设置成「用户名+域名」的形式,例如用户是ldap,「检索位置」为 DC=test,DC=com,那么管理员名称为 ldap@test.com

    注2:若「管理员名称」处填写的是 LDAP 服务器管理员名称,直接填写名称即可,如上述示例中的「administrator」

    3.2 添加用户

    点击管理系统>用户管理>添加用户,添加用户test001,如下图所示:

    4.png

    注:LDAP 认证配置「添加用户」时,不需要配置密码。

    3.3 效果查看

    若 LDAP 系统认证成功,且对应的用户存在于平台用户中,则平台判断认证成功,可进入数据决策系统,按照该用户在平台中的权限进行相应操作。如下图所示:

    5.png

    4. 测试 LDAP 连接是否成功

    在数据决策系统中配置 LDAP 认证后,不能确定 LDAP 连接是否成功,执行本文 3.3 章节时,可能会出现用户无法正常登录或登录缓慢的问题,可按照本章方法定位问题。

    注:确保本地有 JAVA 环境。

    1)下载右侧压缩包并解压:LDAPDemo.zip

    2)切换到 LDAP 文件目录下,执行:javac -encoding utf-8 LDAPDemo.java,生成一个LDAPDemo.class

    然后再执行:java LDAPDemo,如果返回的是测试成功,则表示 LDAP 认证正常,否则根据提示进一步定位问题。如下图所示:

    5. 注意事项

    5.1 LDAP 服务器中的用户和平台用户之间的关系

    LDAP 服务器里一般存储着用户的员工列表,想要其中的某用户能在平台使用 LDAP 认证登录,平台也需要添加一个同名用户,因为绑定邮箱、分配权限等平台操作都是以平台用户为作用对象的。当平台里的对应用户存在时,可以认为启用 LDAP 认证只是将该平台用户的密码认证从默认的平台内置认证改成了 LDAP 服务器认证。

    注:若在平台中不存在输入的用户名,或平台中对应的用户被锁定,则不与 LDAP 服务器进行通信,直接提示用户名密码错误或用户不可用。

    5.2 9.0 升级 10.0 后 LDAP 认证失败

    问题描述:

    FineReport 由 9.0 升级到 10.0 之后,用户使用 LDAP 认证登录失败,登录页面显示报错信息username does not exist

    原因分析:

    9.0 升级到 10.0 后 LDAP 登录认证逻辑发生了改变。

    以用户名 User,LDAP 认证后缀 fr.com 为例对认证逻辑进行分析:

    FineReport 9.0:首先将用户名 User 加上后缀 fr.com 检索平台是否存在该用户,然后进行 LDAP 认证流程。

    FineReport 10.0:首先根据用户名 User 检索是否存在该用户,然后再加上后缀 fr.com 进行LDAP认证流程。

    解决方案:

    方案一:将用户管理下 LDAP 配置页面的用户名后缀去掉不用,用户使用用户名@后缀名即可正常登录。

    方案二:将每个用户的用户后缀名都去掉,用户使用用户名即可正常登录。

    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!