1. 概述编辑
1.1 版本
报表服务器版本 | 插件版本 | 功能变更 |
---|---|---|
11.0 | V1.7.3 | 基于原同步LDAP域用户插件,新增支持从多域同步以及LDAPS |
11.0 | V1.7.5 | 新增支持同步时重新同步用户类型,优化同步速度,删除插件不会清空配置,支持部分特殊账号,支持多域重名用户同步,新增用户类型选择限制(当前用户类型配置需要同时勾选“平台用户”类型才能生效) |
11.0 | V1.7.7 | 新增适配集群 |
11.0 | V1.7.9 | 新增支持维持用户名大小写不变 |
11.0 | V1.8.0 | 新增支持同步用户属性扩展 |
11.0 | V1.8.3 | ldap动态配置页面新增“节点名称”编辑框。ldap同步页面新增显示“节点名称”,支持搜索名称。ldap动态支持备份同步。新增GetUserAdDomain()函数,可通过函数获取用户所属域 |
11.0 | V1.8.7 | 优化SSL认证证书验证(详情见本文3.2节)。优化账号重复策略、账号转换策略体验过程(详情见本文3.4节) |
1.2 应用场景
用户信息存储在多个 LDAP 认证服务器中,管理员希望在数据决策系统中使用插件实现多域 LDAP 认证,并将 LDAP 服务器中的用户直接同步到数据决策系统中,而且相关的设置可以直接复用 LDAP 认证的配置。
基于原同步 LDAP 域用户插件,新增支持从多个 LDAP 域同步用户。
支持配置 LDAPS,并同步多域用户。
支持单个 user 属于多个 group 的 AD 域结构(例如使用安全组),将 user 与 group 之间进行联动。
1.3 功能描述
通过安装「多域LDAP认证增强版」插件,在进行「全局设置 > 认证方式」时,可以配置「多域LDAP认证」;在设置同步用户时,可以选择「从多个LDAP服务器中同步」;多域认证和同步用户均支持 LDAPS 。
注1:如果曾配置了「多域LDAP认证」插件,需删除旧插件后,重新安装「多域LDAP认证增强版」插件,并重新配置 LDAP 认证。
注2:如果在不同域存在相同账号的用户,使用各自的密码均可登录数据决策系统,但需要共享同一个平台账户。
注3:超级管理员不受 LDAP 认证的影响,依旧使用平台内建认证。
注4:暂不支持 PostgreSQL 外接数据库,如果有特殊需求请联系技术支持。
2. 插件介绍编辑
2.1 插件安装
点击下载插件:多域Idap认证增强版
设计器插件安装方法请参见:设计器插件管理
服务器安装插件方法请参见:服务器插件管理
2.2 插件简介
插件安装完成后,在进行「全局设置 > 认证方式」时,可以配置「多域LDAP认证」。
在同步用户时,用户来源可以选择「从多个LDAP服务器中同步」。如下图所示:
3. 示例编辑
3.1 配置LDAP认证
管理员登录数据决策系统,点击「管理系统 > 用户管理 > 全局设置」。
同步用户的认证方式选择「多域LDAP认证」,点击添加即可在跳出的窗口填写配置信息。如下图所示:
多域 LDAP 认证的配置方法请参见:用户管理-多域LDAP认证。
3.2 配置LDAPS认证
3.1 节为一般的 LDAP 认证的配置方式,当需要用到 LDAPS 连接时,有以下内容需要注意
1)节点名称
V1.8.3 及之后的版本支持配置「节点名称」:
历史使用 V1.8.3 之前版本建立的 LDAP(S) 认证,「节点名称」显示为空
节点名称不可重复,若重复则提示:节点名称已存在
2)URL
URL 格式为:Idaps://ip:port
3)SSL认证 (点击按钮开启,非必须)
注:SSL 认证只支持使用 JDK 内建证书。如果在 FineReport 工程所在服务器成功安装认证,即成功配置系统信任认证,无需手动填写认证所在路径,Java 可自动读取已配置为信任的认证。手动填写的内容不会生效。
3.3 同步用户
1)若管理员首次使用同步用户
管理员登录数据决策系统,点击「管理系统 > 用户管理 > 所有用户」,然后点击「同步用户」。
弹出提示框「是否保留现有非同步数据,包括导入/新增的用户、部门职务、角色?」,如下图所示:
不同选择对应的更新逻辑如下表所示:
选择 | 定义 |
---|---|
保留 | 如果现有用户不在同步数据集中,该用户信息和权限将被保留,不修改 如果现有用户在同步用户来源中(账号相同):
|
清空 | 平台现有「手动新增/导入的用户」的账号、姓名、密码、手机、邮箱、部门、职位、角色、权限均被删除,重新同步用户 |
注1:根据选择的更新逻辑,首次同步后有部分用户信息被更新。
注2:之后能够被自动更新的只有已变为同步类型的用户。
注3:之后的同步,数据集不能再重写更新内建数据,否则将会冲突报错。
2)若管理员配置过同步用户
管理员直接点击「同步用户管理」,选择「编辑」按钮,即可进入同步用户配置界面
3.4 配置同步用户
点击「同步用户」,在跳出的窗口选择「保留/清除」后,点击「确定」(若配置过同步用户,点击「编辑」即可)。
用户来源选择「从多个LDAP服务器中同步」,系统会自动读取 3.1 节多域 LDAP 认证中的配置,并测试连接。同步用户配置如下图所示:
注:若之前配置过「同步用户」,且用户来源为「服务器数据集」,切换时会弹出提示「切换用户来源后将清空原有同步数据,包括用户及其部门、职位、角色、权限等,确认切换?」,点击「确定」即可完成 LDAP 用户同步。
其他配置项如下表所示:
配置项 | 说明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
同步频率 | 支持通过两种方式执行同步用户操作:简单重复执行、表式设置。 1)简单重复执行 从 LDAP 服务器中自动同步用户的间隔时间,默认设置为 43200 秒。 同步用户设置了同步频率后,可自动进行多次同步,达到设置频率后自动进行同步,不断将 LDAP 服务器中变化的数据同步到平台。 注:同步频率不宜过高,否则会导致后台日志不断重新整理,日志体积无限膨胀。 2)表式设置 支持通过 Cron 表式设置任务执行的时间点,该任务可以是每天重复执行、隔日重复执行或单次执行等各种不同组合的触发时间点。 Cron 表式的语法和写法请参见:Cron 表式 | ||||||||
用户可编辑 | 「用户可编辑」按钮默认不勾选;勾选后,在同步状态下用户信息可编辑。 用户可以编辑姓名、手机、邮箱,已存在用户的上述字段在自动同步/手动同步时将不再更新。 具体功能如下表所示: 注:由于开启了同步用户 LDAP 认证,除了超级管理员用户和内置用户外,所有同步用户涉及密码相关的操作都是不可用的,包括设置加密方式、忘记密码、修改密码、重置密码等。
| ||||||||
用户名重复处理 | 支持 2 种处理方式:自动覆盖、提示重复信息并中断同步 特殊情况: 当设置多个同步任务(如 任务A 和 任务B ),从不同的 LDAP域(如 域A 和 域B )中同步用户时,如果这些域中存在重复用户(假设为 User1 ),且不具有安全组结构,并且账号重复策略选择「自动改写」,则在 任务A 暂停后,同步 任务B 时会按以下逻辑处理重复用户( User1 )的信息: • 如果 域B 在 域A 之上:域B 中的 User1 信息会覆盖 FineDB 中原先从 域A 中同步的 User1 的信息。 • 如果 域B 在 域A 之下:保留 任务A 上次同步成功的 User1 的信息。 注:仅支持 V1.8.7 及之后版本。 | ||||||||
用户名转换策略 | 1)V1.7.9 之前的版本 同步用户时,会将用户名统一转换成小写。 2)V1.7.9 及之后的版本 新增「用户名转换策略」,支持 2 种策略: 注1:无特殊需求建议不勾选此项,默认以小写形式存入数据库。 注2:若同时勾选两种策略,效果等同于勾选「转大写」。
LDAP 内大小写不同的用户将被视为同一个用户,同步时根据上一步中选择的「用户名重复策略」进行自动覆盖或中断同步任务。 当同步任务成功后: a)若外接数据库大小写敏感:用户需根据设置的「用户名转换策略」,使用转换为大写/小写后的用户名进行登录决策系统。 b)若外接数据库大小写不敏感:使用大写/小写用户名均能登录决策系统。 注:若外接数据库大小写敏感且历史同步过 LDAP 用户时,切换「用户名转换策略」会导致同步失败,需要清空历史数据后重新同步。 修改配置后重新同步可能会导致部分用户配置权限丢失,例如:ANNA 原先同步时入库保存为 anna ,勾选「维持大小写不变」后重新同步,该用户将保存为 ANNA ,此时,原先分配给 anna 的角色配置将丢失,ANNA 无法继承 anna 的角色配置。 | ||||||||
启用同步 LDAP URL | 1)可通过 URL 和节点名称对已添加的节点进行搜索。 注:V1.8.3 之前的版本无此功能且不显示节点名称。 2)点击按钮,即可编辑该域的用户属性 3)点击按钮,即可控制多个域的同步状态为「已开启」或「已禁用」 4)点击按钮,可以控制同步任务的启动和暂停。 在禁用状态下点击「暂停同步」,提示:请先启动同步。 在禁用状态下点击「启用同步」,提示:确定启动同步,点击确定后恢复到“已启动状态”,并正常同步该节点数据。 处于暂停状态的节点,每次同步时不会丢失之前已经同步成功的数据。 注:V1.8.3 之前的版本无此功能。 |
3.5 LDAP节点配置
3.5.1 用户属性
在 3.4 节「启用同步 LDAP URL」配置中,点击「编辑」按钮,即可打开「用户属性」界面。
对于「用户属性」字段,需要先选择 ObjectClass ,再选择 ObjectClass 内的属性值。
注:配置「同步用户」时,不需要配置密码,实际认证走 LDAP 密码认证。
具体配置如下表所示:
配置项 | 说明 | 是否必填 | ||||||
---|---|---|---|---|---|---|---|---|
ObjectClass | 选择储存用户属性的 ObjectClass | 必填 | ||||||
用户重复验证字段 | 可选择通过 用户ID 或 用户名 进行用户重复验证 1)若选择 用户ID,则同步「用户ID 用户名」字段,所在表中的 ID 字段值为同步用户时 LDAP 服务器中的 用户ID。 注:若 LDAP 中 用户A 与平台已有 用户A 重复,此重复 用户A 同步结果为失败,平台中保留之前平台内 A用户 及其配置。 2)若选择用户名,则同步「用户名」字段,所在表中的 用户ID 字段值将由系统随机生成。 注:若 LDAP 中 用户A 与平台已有 用户A 重复,此重复 用户A 同步结果为成功,平台中保留 LDAP 中 A用户 及其配置(去重叠加)。 3)若「用户重复验证字段」选择的字段配置为 cn ,且在 LDAP 源数据中存在 cn 重名的用户时:
| 必填 | ||||||
用户ID | 选择用户属性中的 UID(用户ID) 注:仅在「用户重复验证字段」选择「用户ID」时需要填写。 | 必填 | ||||||
用户名 | 选择用户属性中的用户名 LDAP 服务器中存储的用户名,不可使用双字节的日语、繁体中文或朝鲜文。否则在平台登录时会提示“账号或密码错误”。 | 必填 | ||||||
用户类型 | 共有 2 种预设的类型:「平台用户」、「移动平台用户」。 适用于开启平台用户分类的场景,若未做相应限制可以忽略此项。 V1.8.3 之前的版本需要手动输入对应属性值;V1.8.3 及之后的版本可直接选择对应字段。 V1.8.3 之前的版本,单节点只支持选择 2 种预设类型,不支持使用 LDAP 中的字段。 若有上述 2 种类型之外的值则报错。
1)1.7.5 版本及之后的版本 每次同步时用户类型均会重新同步,配置变更值或新增值每次同步均生效。若同步时将用户类型设置为空,则该修改同步时不生效,平台中保留之前平台内的用户类型设置。 2)1.7.4 版本及之前的版本 一个用户的用户类型只有在首次配置时同步生效。如果 A用户 在平台已有用户类型配置,LDAP 同步时,即使配置了新的用户类型,A 也不会新增新的用户类型。如需修改,请联系管理员在平台用户类型配置下手动修改。 | 非必填 | ||||||
姓名 | 选择用户属性中的姓名 | 必填 | ||||||
手机 | 选择用户属性中的手机号 | 非必填 | ||||||
邮箱 | 选择用户属性中的邮箱 | 非必填 | ||||||
扩展属性 | 选择需要同步饿其他内容(支持多选) 注:V1.8.0 及之后的版本支持该功能。设定后数据将以 JSON 格式储存至 FineDB 库的 Fine_Extra_Properties 表中 | 非必填 |
3.5.2 部门属性
对于部门属性字段,需要先选择 ObjectClass ,再选择 ObjectClass 内的属性值。
部门属性可不配置,但若选择了 ObjectClass ,则必须配置部门名称/部门ID。
注:若使用安全组作为部门进行同步,可忽略此部分配置。
配置项 | 说明 | 是否必填 |
---|---|---|
ObjectClass | 选择储存部门属性的 ObjectClass 注:不支持部门属性和角色属性使用同一个 ObjectClass 的不同属性 | 非必填 要么都不填、要么都填 |
部门重复验证字段 | 可选择通过部门名称或部门ID进行部门重复验证。 1)若选择 部门ID ,则同步「部门ID 部门名称」字段,所在表中的 ID 字段值为同步用户时 LDAP 服务器中的 ID 。 2)若选择 部门名称 ,则同步「部门名称」字段,所在表中的 ID 字段值将由系统随机生成。 | |
部门ID | 仅在「部门重复验证字段」选择「部门ID」时需要填写 选择部门属性中的 UID(部门ID) | |
部门名称 | 选择部门属性中的部门名称 |
3.5.3 角色属性
对于角色属性字段,需要先选择 ObjectClass ,再选择 ObjectClass 内的属性值。
角色属性可不配置,但若选择了 ObjectClass ,则必须配置角色名称/角色ID。
配置项 | 说明 | 是否必填 |
---|---|---|
ObjectClass | 选择储存角色属性的 ObjectClass 注:不支持部门属性和角色属性使用同一个 ObjectClass 的不同属性 | 非必填 要么都不填、要么都填 |
角色重复验证字段 | 可选择通过角色名称或角色ID进行角色重复验证。 1)若选择 角色ID ,则同步「角色ID 角色名称」字段,所在表中的 ID 字段值为同步用户时 LDAP 服务器中的 ID 。 2)若选择 角色名称 ,则同步「角色名称」字段,所在表中的 ID 字段值将由系统随机生成。 | |
角色ID | 仅在「角色重复验证字段」选择「角色ID」时需要填写 选择角色属性中的 UID(角色ID) | |
角色名称 | 选择角色属性中的角色名称 |
3.5.4 安全组属性(以安全组作为部门同步)
在 Active Directory(AD)域中,安全组(Security Group)是一种用于管理和分配权限的对象。安全组是 AD 中的一个重要概念,它允许管理员将一组用户或计算机归为一组,并向该组授予特定资源或对象的访问权限。
该项配置用于实现同步安全组 member 属性对应的用户。
注1:安全组属性不可与部门属性同时配置,否则提示:“部门属性和安全组属性不可同时配置。”
注2:安全组属性不可与自定义部门属性同时配置,否则提示:“自定义部门属性和安全组属性不可同时配置。”
一般适用的结构为:
配置项如下图所示:
配置项 | 说明 | 是否必填 |
---|---|---|
ObjectClass | 选择存储安全组(部门)属性的 ObjectClass。 选择 ObjectClass 后,根据 ObjectClass 加载所有安全组(作为“组选择”对应的下拉复选框组件的选项)。 | 非必填 要么都不填、要么都填 |
组名称 | 如果选择了“组名称”属性,则取组名称字段对应的 LDAP 属性值为“组选择”下拉选项的显示值。 | 非必填 若不填,“组选择”下拉选项将默认读取 cn |
组选择 组部门映射 | 选择安全组之后,组部门映射会自动加载映射表格,“部门名称”列支持手写输入。 | 非必填 要么都不填、要么都填 |
注:安全组名称可以重名,但安全组映射的部门不能重复(即单域下多个组可以映射到同一个部门,多域下安全组不能映射到与其他域相同的部门)。在此条件下,安全组重名,安全组中的用户可以正常被同步。如果用户名称也相同,配置不同的情况下会进行去重叠加。
3.6 效果查看
若 LDAP 系统认证成功,且 LDAP域用户同步成功
如图所示启用了一个 LDAP URL,点击确认后进行同步
同步成功提示如下图所示:
用户输入 LDAP 服务器中储存的账户、密码,即可进入数据决策系统,按照该使用者在平台中的权限进行相应操作。如下图所示:
注1:若在平台中不存在输入账号,或平台中对应的用户被禁用,或开启了平台使用用户限制且不包含用户,则不与 LDAP 服务器进行通信,直接提示「账号或密码错误」或「用户不可用」。
注2:LDAP 服务器中存储的账号,不可使用双字节日语、繁体中文或朝鲜文。否则在平台登录时提示「账号或密码错误」。
LDAP 服务器中存储的密码,不可使用双字节日语、繁体中文、简体中文或朝鲜文。否则在平台登录时提示「账号或密码错误」。
4. 注意事项编辑
4.1 特殊字符限制
1)安全组名称
在 AD 中建立安全组时禁用以下符号:/ \ [] : ; | = , + * ? < > "
2)用户名称
在 AD 中建立用户时禁用以下符号:/ \ [] : ; | = , + * ? < > "
综上,同步时支持的用户包含的特殊符号仅有:() _ 空格
3)OU名称
支持使用:/ \ () _ ; , + * < > 空格
4.2 插件禁用删除
1)V1.7.5 版本及之后的版本
插件删除后配置保留
2)V1.7.4 版本及之前的版本
插件删除会删除已有配置,请谨慎删除并做好配置信息的备份。
配置链接相关信息存储在 FineDB 库的 FINE_CONF_ENTITY 表中。
查询语句:SELECT * FROM FINE_CONF_ENTITY WHERE ID LIKE '%FINE_MULTI_LDAP VALUES%'
注:如删除重装插件后需恢复原有配置,需要手动修改 FineDB 后重启。该操作较危险,请联系技术支持协助进行,并务必在操作前做好备份工作。
4.3 GetUserAdDomain()函数
V1.8.3 及之后的版本支持通过 GetUserAdDomain() 函数获取用户所在域。
以 Jack 用户为例(需使用 Jack 登录数据决策系统):