用户同步是指有多套系统(包括Smartbi系统)都拥有用户信息。当用户信息存储于第三方系统或使用第三方系统进行用户管理时,需要将第三方系统的用户数据同步到Smartbi系统中。
Smartbi提供用户同步功能,支持创建用户同步计划,通过界面化简单配置即可实现定期同步用户数据。
在Smartbi系统中,用户管理涉及三类关键对象,需与第三方系统数据一一对应
对象 | 说明 | 示例 |
---|---|---|
用户组 | 即“机构”,以树形结构组织,体现层级关系。 | 如广州思迈特软件有限公司->开发部->运维组 |
角色 | Smartbi系统中的主要权限载体,角色可分配给用户及用户组,决定用户在系统中的权限。 | 如组长、普通组员 |
用户 | 系统的实际使用者。 | 如张三(登录账号zhangsan) |
每个对象包含多个属性,需与第三方系统数据字段建立对应关系
属性 | 属性说明 | 必须同步 | 同步逻辑 |
---|---|---|---|
机构ID | 机构在系统中的唯一ID。 | 建议同步第三方系统中机构的唯一标识作为机构ID,若无则可由系统生成唯一ID。 若第三方系统中存在同名机构(如产品部下有“运维组“,开发部下也有“运维组”),则必须同步机构ID。 | |
机构编号 | 机构的编号,一般用于实现数据权限控制。 | 可从第三方系统同步,若无则为空。 | |
机构名称 | 机构的名称。 不支持修改。 | 是 | 必须从第三方系统同步。 |
机构别名 | 机构的显示别名 | 可从第三方系统同步,若无则自动采用机构名称作为机构别名。 | |
机构描述 | 机构的描述内容 | 可从第三方系统同步,若无则为空。 | |
父机构 | Smartbi系统中,机构以机构树的形式存在,因此机构具有“父机构”属性 | 是 | 必须从第三方系统同步,支持机构ID或名称。 若父机构数据为机构名称,系统将基于机构名称构建组织机构树。当第三方系统中存在同名机构时,机构树将无法精准构建。 若父机构数据为机构ID,系统将基于机构ID构建组织机构树。由于机构ID为机构在系统中的唯一ID,因此可以保证机构树构建的精确性。 |
机构状态 | 额外增加的属性,用于将机构进行逻辑删除处理,值为0 、1 或 NULL。 | 若机构在第三方系统中被删除,需要在Smartbi进行逻辑删除,需同步状态为0。 逻辑删除功能可参考:逻辑删除 |
属性 | 属性说明 | 必须同步 | 同步逻辑 |
---|---|---|---|
角色ID | 角色在系统中的唯一ID。 | 支持从从第三方系统同步,若无则可由系统生成唯一ID。 | |
角色名称 | 角色的名称。 不支持修改。 | 是 | 必须从第三方系统同步。 |
角色别名 | 角色别名 | 可从第三方系统同步,若无则自动采用角色名称作为角色别名。 | |
角色描述 | 角色的描述内容 | 可从第三方系统同步,若无则为空。 | |
角色所属机构 | Smartbi系统中,角色是存储于机构树上的某个机构下的,因此需要为角色指定其所属机构。 | 是 | 必须从第三方系统同步,支持机构ID和名称。 若角色所属机构数据为机构名称,当第三方系统中存在同名机构时,角色将无法存放到正确的机构下。 若角色所属机构数据为机构ID,由于机构ID为机构在系统中的唯一标识,因此可以保证角色存放到正确的机构下。 |
角色状态 | 额外增加的属性,用于将角色进行逻辑删除处理。值为0 、1 或 NULL。 | 机构在第三方系统中被删除,需要在Smartbi进行逻辑删除,需同步状态为0 逻辑删除功能可参考:逻辑删除 |
属性 | 属性说明 | 是否必须同步 | 同步逻辑 |
---|---|---|---|
用户ID | 用户在系统中的唯一ID。 | 建议同步第三方系统中用户的唯一标识作为用户ID,若无则可由系统生成唯一ID。 | |
用户名称 | 用户名称,即登录账号。 不支持修改。 | 是 | 必须从第三方系统同步用户的登录账号作为用户名称。 |
用户别名 | 用户别名 | 可从第三方系统同步,若无则自动采用用户名称作为用户别名。 | |
密码 | 用户的登录密码 | 支持从第三方同步密码,若无则可统一设置初始密码。 | |
用户描述 | 用户的描述内容 | 可从第三方系统同步,若无则为空。 | |
手机 | 用户的手机号码 | 可从第三方系统同步,若无则为空。 | |
邮箱 | 用户的邮箱地址 | 可从第三方系统同步,若无则为空。 | |
是否强制修改密码 | 设置用户首次登录时是否强制修改密码。数据值为0或1: 0:不强制修改密码 1:强制修改密码 | 是 | 必须从第三方系统同步,设置用户首次在Smartbi系统中登录是否强制修改密码。 |
启用用户 | 设置用户数是否启动。数据值为0或1: 0:不启用用户 1:启用用户 | 是 | 必须从第三方系统同步,设置用户是否在Smartbi系统中启用。 |
用户默认所属机构 | 用户的默认所属机构。 在Smartbi用户管理体系中,用户可同时属于多个机构,但必须指定其中1个机构作为用户的默认所属机构。 | 是 | 必须从第三方系统同步,支持机构ID和名称。 若用户默认所属机构数据为机构名称,当第三方系统中存在同名机构时,用户将无法存放到正确的机构下。 若用户默认所属机构数据为机构ID,由于机构ID为机构在系统中的唯一标识,因此可以保证用户存放到正确的机构下。 |
用户所属机构列表 | 用户若同时属于多个机构,则应存在对应的“用户所属机构列表”数据。 | 1)支持从第三方系统同步,支持机构ID列表和机构名称列表。 若用户所属机构列表数据为机构名称,当第三方系统中存在同名机构时,用户将无法存放到正确的机构下。 若用户所属机构列表数据为机构ID,由于机构ID为机构在系统中的唯一标识,因此可以保证用户存放到正确的机构下。 2)同步数据按照 "机构1ID,机构2ID,机构3ID,...”格式,其中分隔符支持英文分号(;)、英文逗号(,)、#、@、$、&六种符号。 3)若不从第三方系统同步,则需在Smartbi中手工进行用户所属机构的维护。 | |
用户角色列表 | 用户拥有的角色列表 | 1)支持从第三方系统同步,支持角色ID和角色名称。 同步数据按照"角色1ID,角色2ID,角色3ID,...”格式,其中分隔符支持英文分号(;)、英文逗号(,)、#、@、$、&六种符号。 2)若不从第三方系统同步,则需在Smartbi中手工进行用户角色的维护。 |
了解完Smartbi系统中的三大关键对象的属性及其同步逻辑后,需要先了解用户同步功能。
1)进入 运维设置,点击导航栏的 用户同步 菜单 或 点击系统快捷菜单 用户/机构/角色同步 ,打开用户同步模块
使用用户同步功能,前提是具备“计划任务”、“用户同步”的操作权限,因此需要为用户授予对应的操作权限。详情可参考:操作权限。 |
2)点击 新建用户同步计划 ,进入用户同步计划的配置界面
用户同步计划包含5个步骤,分别是:机构同步、角色同步、用户同步、机构角色同步 和 执行计划。
前4个步骤分别进行机构、角色、用户、机构角色关系的同步配置。具体操作为:从系统中选择一个数据模型(该数据模型从第三方系统中获取机构/用户等数据),并将数据模型中的字段与机构/用户等属性进行映射。如下
各步骤中,其他特殊设置项说明如下
步骤 | 特殊设置项 | 说明 |
---|---|---|
机构同步 | 顶级机构 | 1)同步的机构树需选择Smartbi系统的现有机构作为其根节点,通常选择“根组”。如下 2)同步的机构数据中,若机构的父机构数据为空,则该机构将被同步到“顶级机构”下。 |
用户同步 | 密码 | 用户的密码属性支持“绑定字段”和“使用固定密码”两种选项。 1、绑定字段:即选择数据模型中的字段,将第三方系统的密码数据同步到用户的密码属性中。绑定的字段数据支持明文密码和加密密码。 1)明文密码:即第三方系统的密码数据为明文。支持选择密码在Smartbi中的加密方式(MD5、DES或明文)。Smartbi会根据加密方式对密码进行加密存储。 2)加密密码:即第三方系统的密码数据为加密后的密文。若第三方系统密码的加密算法与Smartbi中的加密算法一致,则可以直接同步到Smartbi系统中,并选择密码的加密方式。Smartbi同步时会根据所选择的“密码加密方式”,在密码的密文前增加前缀(MD5加密则前缀为0,DES加密则前缀为1,明文则前缀为2)后存储在Smartbi中。 2、使用固定密码:为同步的所有用户设定一个固定密码,并选择密码加密方式。Smartbi会根据加密方式对密码进行加密存储。 |
更新用户时同步密码 | 同步密码:用户同步时,若用户已在Smartbi系统中存在,则更新用户时会使用第三方数据中的密码覆盖Smartbi系统中的密码适用于用户密码在第三方系统中修改维护的场景。 不同步密码:同步用户时,若用户已在Smartbi系统中存在,则只更新用户的用户别名、用户描述等属性,不更新用户的密码。适用于用户需要在Smartbi中单独修改密码的场景。 | |
删除用户已有角色 | 是:同步用户数据时,先删除用户现有的所有角色列表,再同步用户角色列表。 否:同步用户数据时,不删除用户现有的所有角色列表,直接新增角色进入用户的角色列表。 | |
扩展属性 | 若用户配置了扩展属性,扩展属性也支持同步。 | |
机构角色同步 | 机构角色字段绑定 | 在Smartbi系统中,支持为机构分配角色,且可勾选“应用于子孙组”,则该机构及其所有子孙机构,都拥有对应的角色。 因此对于机构所拥有的角色列表,也支持进行同步。 1)机构:绑定机构数据字段,支持机构ID和机构名称。 若机构数据为机构名称,当第三方系统中存在同名机构时,角色无法保证准确分配到对应机构上。 若机构数据为机构ID,由于机构ID为机构在系统中的唯一标识,因此可以保证角色分配到正确的机构下。 2)角色:绑定角色数据字段,支持角色ID和名称 3)是否应用于子孙组:设置角色是否应用于机构的子孙机构。值为0和1。 0:不应用于机构的子孙组 1:应用于机构的子孙组 4)同步逻辑 |
最后1个步骤“执行计划”,进行用户同步计划的定时执行等设置
设置项说明如下:
设置项 | 说明 |
---|---|
无归属管理机构 | 无归属管理机构主要用于对机构、角色的逻辑删除处理。 1)需要指定1个Smartbi系统现存的机构作为无归属管理机构。 2)同步过程中,状态为0的机构和角色,会被自动移动到无归属管理机构下。用户可在同步完成后,访问“用户管理“模块”,对无归属管理机构下的机构、角色进行物理删除等处理。 |
用户同步计划名称 | 用户同步计划的名称 |
用户同步执行计划 |
机构同步逻辑:同步时,若机构在Smartbi中不存在,则新增;若存在,则更新机构。若机构状态为0,同时将机构移动到无归属管理机构下。
角色同步逻辑:同步时,若角色在Smartbi中不存在,则新增;若存在,则更新角色。若角色状态为0,同时将角色移动到无归属管理机构下。
用户同步逻辑:同步时,若用户在Smartbi中不存在,则新增;若存在,则更新用户。
机构角色同步逻辑:同步时,先将同步数据中对应的机构在Smartbi系统中现有的角色列表全部删除,再同步数据到Smartbi系统中。
注意:删除机构的角色列表数据时,不会删除机构从其父级机构集成的角色。 |
通常第三方系统都拥有自己的组织机构树及用户数据,因此推荐同步机构、用户数据,有利于对机构、用户的统一管理。
而角色是权限的载体,第三方系统与Smartbi系统的权限体系通常相差较大,因此不推荐进行角色的同步。
内容 | 是否推荐同步 |
---|---|
机构 | 是 |
角色 | 否 |
用户 | 是 |
机构角色 | 否 |
在明确同步需求后,需要确认机构、用户属性与第三方系统数据的字段映射关系。可下载附件的execl表格,确定映射字段并进行填写。附件:机构用户与第三方系统数据映射表.xlsx
以下为填写示例:
确定好同步内容和字段映射后,在Smartbi系统中创建数据模型:根据上一步骤中填写的表格,通过数据源表或者SQL等方式,从第三方系统中获取机构、用户数据和字段。
数据模型功能参考:查询并准备数据
用户同步计划的前4个步骤:机构同步、角色同步、用户同步、机构角色同步为可选步骤,至少选择1个步骤进行配置即可。
当存在多个同步对象时,因为对象之间存在依赖关系:角色、用户数据依赖机构;用户数据依赖角色;机构角色列表依赖机构和角色。因此推荐按照机构、角色、用户、机构角色的顺序分别创建用户同步计划,且同步计划的执行时间间隔半小时以上,保证被依赖的数据同步完成后再进行后续数据的同步。
按照设定的执行时间,系统会自动执行同步计划。可通过以下方式查看执行结果
1)进入“计划任务”-“计划调度日志”中搜索同步计划名称,查看调度日志
2)进入“用户管理”,查看最新的机构信息
用户同步计划的管理参考:用户同步计划管理