统一用户中心详细设计方案.docx
《统一用户中心详细设计方案.docx》由会员分享,可在线阅读,更多相关《统一用户中心详细设计方案.docx(52页珍藏版)》请在冰豆网上搜索。
统一用户中心详细设计方案
统一用户中心
详细设计报告
制作人:
日期:
2018-01版本:
1.1
1系统结构6
1.1用户中心服务系统(UCS)6
1.2用户中心管理系统(UMS)6
1.3门户系统(Portal)7
1.4业务子系统接入7
2用户中心服务系统(UCS)7
2.1用户中心服务系统安全性要求8
2.2系统帐号传递机制8
2.3登录界面8
2.4功能说明8
2.4.1单点登录9
2.4.2会话保持10
2.4.3单点退出10
2.4.4组织架构同步11
2.4.5消息推送11
2.5数据结构11
2.5.1表清单12
2.5.2T_COMPANY公司表12
2.5.3T_DEPT部门表13
2.5.4T_EMPL员工表13
2.5.5T_USER用户表13
2.5.6T_DICTIONARY字典表14
2.5.7T_ATTACHMENT附件表14
2.5.8UC_ACCOUNT登录帐号表14
2.5.9UC_APP业务系统表15
2.5.10UC_BUTTON业务系统资源表15
2.5.11UC_DATA业务系统数据表15
2.5.12UC_MENU业务系统菜单表16
2.5.13UC_ROLE业务系统角色表16
2.5.14UC_ROLE_COMPANY角色公司关联表16
2.5.15UC_ROLE_BUTTON角色资源关联表16
2.5.16UC_ROLE_DATA角色数据关联表17
2.5.17UC_ROLE_MENU角色菜单关联表17
2.5.18UC_ROLE_EMPL角色员工关联表17
2.6用户中心提供的接口17
2.6.1通用接口调用方式17
2.6.2sso.login登录18
2.6.3sso.validateticket校验19
2.6.4sso.keepAlive保持用户登录状态20
2.6.5sso.logout单点退出21
2.6.6portal.getPageMould获取页面统一样式21
2.6.7account.checkAccount检查帐号是否可用22
2.6.8account.updatePwd用户修改密码23
2.6.9account.resetPwd忘记密码23
2.6.10user.reg用户注册24
2.6.11user.update用户修改25
2.6.12user.findByAccessToken根据AccessToken获取用户信息26
2.6.13user.findByParentId根据组织架构id获取用户信息26
2.6.14user.findAll查询所有用户信息27
2.6.15user.findRoleByUserId根据用户id查询用户权限27
2.6.16user.findRoleByAccessToken根据AccessToken查询用户权限28
2.6.17org.getDeptsByParentId获取组织机构信息29
2.7业务子系统需要实现的接口30
2.7.1sso.logoutNotify用户退出通知30
2.7.2user.updateNotify用户信息变更通知31
2.7.3org.updateNotify组织架构信息变更通知32
3用户中心管理系统(UMS)32
3.1应用项目管理33
3.1.1基本信息管理33
3.1.2菜单管理33
3.1.3数据项管理34
3.1.4资源项管理34
3.1.5角色管理34
3.1.6角色权限管理35
3.2企业管理35
3.2.1企业列表35
3.2.2企业信息维护35
3.3部门管理36
3.3.1部门列表36
3.3.2部门编辑36
3.4供应商内部权限管理36
3.4.1角色列表36
3.4.2角色权限关联36
3.5员工管理36
3.5.1员工列表37
3.5.2员工删除37
3.5.3修改密码37
3.5.4用户锁定37
3.5.5员工编辑37
3.5.6角色授予38
4门户系统(Portal)38
4.1用户登录38
4.1.1登录页面38
4.1.2单点登录38
4.1.3会话保持38
4.1.4单点退出39
4.2用户主页39
4.2.1主页界面39
4.2.2导航菜单39
4.3用户注册39
4.4个人信息管理39
4.5页面集成方式40
4.6消息服务集成40
5微信服务号接入40
5.1微信绑定40
5.2微信消息推送40
6业务子系统接入40
6.1操作流程40
6.2需要实现的接口41
6.2.1单点登录42
6.2.2会话保持42
6.2.3单点退出42
6.2.4组织架构、用户同步42
6.2.5菜单权限42
6.2.6数据权限43
6.2.7资源权限43
6.2.8消息通知43
6.3针对Java应用环境的封装43
6.3.1主要功能43
6.3.2过滤器配置说明44
6.3.3单机环境配置46
6.3.4分布式环境配置46
1系统结构
1.1用户中心服务系统(UCS)
提供平台登录界面;
提供单点登录、单点退出、会话保持服务,并在传统CAS服务的功能上增加用户角色权限控制;
提供第三方应用接入相关接口;
提供用户、组织机构、权限相关接口;
提供提醒消息服务的集成,允许业务子系统存储提醒消息,以及同步业务子系统自有消息模块中的消息
1.2用户中心管理系统(UMS)
统一用户管理
使用统一身份认证平台的所有业务应用系统的全部用户,用户身份信息支持LDAP和数据库的同时存储。
统一角色管理
管理统一身份认证平台本身和平台中所有应用系统中需要使用到的角色信息,系统通过用户、角色、权限机制,以及角色、用户、权限批量处理机制,极大地方便了用户的权限分配。
统一应用管理
管理纳入统一身份认证平台的各应用系统的应用功能点和应用权限。
统一授权管理
实现用户与角色、角色与功能的对应管理,实现菜单权限、数据权限、资源权限等多种权限分发管理。
同时,实现权限策略的定制和调用,便于实现与应用流程的紧密结合。
1.3门户系统(Portal)
平台主页,按角色权限提供平台整合的所有资源的入口;
提供用户自身基本信息查看与维护功能;
服务申请审批通过之后通知用户中心服务系统
实现消息通知的接入;
实现微信账号绑定,微信消息推送;
1.4业务子系统接入
实现单点登录、单点退出、会话保持的接入;
用户信息实时或定时从用户中心服务系统同步;
实现菜单权限控制接入;
实现数据权限控制接入;
实现资源权限控制接入;
实现消息中心接入;
2用户中心服务系统(UCS)
平台SSO单点登录基于标准CAS认证流程,并优化超时验证流程,增加用户权限信息。
2.1用户中心服务系统安全性要求
用户中心服务系统可以使用HTTPS方式提供服务
业务系统与认证服务器之间接口调用采用参数密钥校验
2.2系统帐号传递机制
在用户访问应用系统之前,由统一身份认证平台生成一次性的访问Ticket票据,并将Ticket提交给应用系统,应用系统请求统一身份认证平台验证Ticket有效性,之后返回认证结果和用户身份信息给应用系统。
应用系统根据验证结果确认用户身份,并分配用户权限。
Ticket默认有效时间5分钟,Ticket使用一次之后自动失效。
2.3登录界面
用户中心服务系统提供全平台唯一的登录界面
已经登录的用户访问登录页面将自动跳转到平台首页,不允许一个浏览器在未退出时登录另一个账户。
2.4功能说明
2.4.1单点登录
1.用户访问业务系统
如果业务系统session或登录缓存中判断用户没有登录,则控制客户端浏览器跳转到用户中心服务系统(UCS)的统一登录页面;
如果业务系统已经登录,则判断是否到达需要发送保持用户登录状态心跳包的时间,向认证服务器用户状态保持接口发送消息;同时,业务服务器处理自有业务,响应用户。
2.用户在用户中心服务系统登录完毕,系统记录登录信息并将浏览器跳转到业务系统服务器回跳页面,并带上url参数ticket票据
3.业务服务器接收ticket参数向用户中心服务系统验证ticket合法性并获取用户信息和权限信息
4.业务系统获取到用户信息,将登录信息记录session或登录缓存,标识已经登录,并根据返回的权限信息检验用户是否有操作权限;验证通过则执行相应业务操作
2.4.2会话保持
用户登录成功之后,被访问的业务系统需要在当前用户有访问请求时(在线状态)每间隔一段时间(默认3分钟)向用户中心服务系统提交用户在线状态信息。
保证认证服务中心能够感知到用户当前的活动状态。
认证服务中心在一定时间(默认30分钟)内没有检测到用户的活动信息则判定用户状态为下线。
将注销用户登录状态并通知所有业务系统注销该用户的登录状态。
2.4.3单点退出
与单点登录相对应,单点退出功能可以解决“单点登录”功能在方便用户的同时留下的安全隐患,用户在平台中主动下线或超时下线时,统一身份认证平台会向业务系统发起用户下线通知,告知业务系统,某用户已经下线,请销毁相关Session会话。
2.4.4组织架构同步
用户在门户系统注册,注册数据通过接口保存到用户中心服务系统;
全量同步
用户中心服务系统开通组织架构全量同步接口,提供给实时性要求不太高的子系统使用;
实时增量同步
在用户注册、信息变更、服务申请状态变化、删除等操作之后用户中心服务系统主动通知各个子系统变更的用户数据,提供给实时性要求高的子系统使用;
2.4.5消息推送
监听消息服务器中的消息数据,将各个子系统通过消息中心发出的通知消息推送给绑定的微信账号。
2.5数据结构
2.5.1表清单
名称
注释
T_COMPANY
公司表
T_DEPT
部门表
T_EMPL
员工信息
T_USER
用户信息
T_DICTIONARY
字典表
T_ATTACHMENT
附件表
UC_ACCOUNT
登录账号表
UC_APP
业务系统
UC_BUTTON
资源表
UC_DATA
数据表
UC_MENU
菜单表
UC_ROLE
角色表
UC_ROLE_COMPANY
角色公司关联表
UC_ROLE_BUTTON
角色资源关联表
UC_ROLE_DATA
角色数据关联表
UC_ROLE_EMPL
角色员工关联表
UC_ROLE_MENU
角色菜单关联表
2.5.2T_COMPANY公司表
名称
类型
主键
外键
必填
注释
COMPANY_ID
varchar(50)
TRUE
TRUE
公司id
PARENT_ID
varchar(50)
父id
COMPANY_NAME
varchar(200)
公司名称
COMPANY_CODE
varchar(200)
公司编码
CREATE_TIME
datetime
创建时间
ZIP_CODE
varchar(50)
公司邮编
ADDRESS
varchar(200)
公司地址
EMAIL
varchar(50)
公司邮箱
WEB_SITE
varchar(200)
公司网址
FAX
varchar(50)
传真
TEL
varchar(50)
企业电话
BANK
varchar(100)
开户银行
BANK_ACCOUNT
varchar(50)
银行账户
LEGAL_NAME
varchar(50)
公司法人姓名
LEGAL_TEL
varchar(50)
公司法人联系方式
2.5.3T_DEPT部门表
名称
类型
主键
外键
必填
注释
DEPT_ID
varchar(50)
TRUE
TRUE
部门id
PARENT_ID
varchar(50)
上级部门id
COMPANY_ID
varchar(50)
TRUE
公司id
DEPT_NAME
varchar(200)
部门名称
CREATE_TIME
datetime
创建时间
DEPT_CODE
varchar(200)
部门编号
TEL
varchar(50)
电话
FAX
varchar(50)
传真
ZIP_CODE
varchar(50)
邮编
ADDRESS
varchar(500)
地址
2.5.4T_EMPL员工表
名称
类型
主键
外键
必填
注释
EMPL_ID
varchar(50)
TRUE
TRUE
用户id
USER_ID
varchar(50)
TRUE
用户id
COMPANY_ID
varchar(50)
TRUE
公司id
DEPT_ID
varchar(50)
TRUE
部门id
CREATE_TIME
datetime
创建时间
EMPL_CODE
varchar(50)
员工编号
EMPL_POSITION
varchar(50)
员工职位
ENTRY_TIME
datetime
入职时间
2.5.5T_USER用户表
名称
类型
主键
外键
必填
注释
USER_ID
varchar(50)
TRUE
TRUE
用户id
ACCOUNT_ID
varchar(50)
TRUE
账号id
USER_NAME
varchar(100)
姓名
CREATE_TIME
datetime
创建时间
SEX
numeric(1,0)
性别(1:
男,0:
女)
EMAIL
varchar(50)
邮箱
MOBILE
varchar(50)
手机号
IDCARD
varchar(50)
身份证
2.5.6T_DICTIONARY字典表
名称
类型
主键
外键
必填
注释
DICTIONARY_ID
varchar(50)
TRUE
TRUE
字典id
DICT_CODE
varchar(50)
字典编码
PARENT_CODE
varchar(50)
父编码
DICT_NAME
varchar(100)
名称
DICT_DESC
varchar(500)
说明
2.5.7T_ATTACHMENT附件表
名称
类型
主键
外键
必填
注释
FILE_ID
varchar(50)
TRUE
TRUE
附件id
GROUP_ID
varchar(50)
附件组id
FILE_PATH
varchar(500)
附件路径
FILE_NAME
varchar(500)
附件文件名
FILE_SIZE
numeric(10,0)
附件大小
CREATE_TIME
datetime
创建时间
CREATE_USER
varchar(50)
创建者
RECORD_TABLE
varchar(100)
主记录所属表
2.5.8UC_ACCOUNT登录帐号表
名称
类型
主键
外键
必填
注释
ACCOUNT_ID
varchar(50)
TRUE
TRUE
账号id
ACCOUNT_NAME
varchar(50)
登录名
ACCOUNT_PASSWORD
varchar(200)
密码
IS_ENABLE
numeric(1,0)
是否可用(0:
不可用,1:
可用)
CREATE_TIME
datetime
创建时间
OPEN_ID
varchar(50)
微信id
IS_PLAT
numeric(1,0)
是否平台用户
IS_SUPP
numeric(1,0)
是否是供应商用户
IS_BUY
numeric(1,0)
是否是采购商用户
ACCOUNT_TEL
varchar(50)
ACCOUNT_EMAIL
varchar(50)
2.5.9UC_APP业务系统表
名称
类型
主键
外键
必填
注释
APP_ID
varchar(50)
TRUE
TRUE
业务系统id
APP_NAME
varchar(200)
业务系统名称
SECRET_KEY
varchar(200)
接入密钥
APP_LOGO
varchar(200)
首页展示logo图片
INDEX_URL
varchar(200)
首页地址
USER_NOTIFY_URL
varchar(200)
用户信息变更通知地址
DEPT_NOTIFY_URL
varchar(200)
组织信息变更通知地址
LOGOUT_NOTIFY_URL
varchar(200)
单点退出通知地址
2.5.10UC_BUTTON业务系统资源表
名称
类型
主键
外键
必填
注释
BUTTON_ID
varchar(50)
TRUE
TRUE
资源id
APP_ID
varchar(50)
TRUE
子系统id
BUTTON_CODE
varchar(100)
资源编码
BUTTON_NAME
varchar(200)
资源名称
BUTTON_CLASS
varchar(200)
资源分类
ORDER_NUM
numeric(10,0)
序号
2.5.11UC_DATA业务系统数据表
名称
类型
主键
外键
必填
注释
DATA_ID
varchar(50)
TRUE
TRUE
APP_ID
varchar(50)
TRUE
子系统id
DATA_CODE
varchar(100)
数据编码
DATA_NAME
varchar(200)
数据名称
DATA_CLASS
varchar(200)
数据分类
DATA_EXPRESSION
varchar(2000)
数据sql
ORDER_NUM
numeric(10,0)
序号
2.5.12UC_MENU业务系统菜单表
名称
类型
主键
外键
必填
注释
MENU_ID
varchar(50)
TRUE
TRUE
APP_ID
varchar(50)
TRUE
TRUE
子系统id
PARENT_ID
varchar(50)
TRUE
父id
MENU_NAME
varchar(100)
菜单名称
MENU_ICON
varchar(100)
图标
MENU_URL
varchar(200)
地址
ORDER_NUM
numeric(2,0)
排序
2.5.13UC_ROLE业务系统角色表
名称
类型
主键
外键
必填
注释
ROLE_ID
varchar(50)
TRUE
TRUE
角色id
APP_ID
varchar(50)
TRUE
TRUE
子系统id
COMPANY_ID
varchar(50)
TRUE
创建公司id
ROLE_NAME
varchar(100)
角色名称
2.5.14UC_ROLE_COMPANY角色公司关联表
名称
类型
主键
外键
必填
注释
ROLE_ID
varchar(50)
TRUE
TRUE
TRUE
角色id
COMPANY_ID
varchar(50)
TRUE
TRUE
TRUE
公司id
2.5.15UC_ROLE_BUTTON角色资源关联表
名称
类型
主键
外键
必填
注释
BUTTON_ID
varchar(50)
TRUE
TRUE
TRUE
资源id
ROLE_ID
varchar(50)
TRUE
TRUE
TRUE
角色id
2.5.16UC_ROLE_DATA角色数据关联表
名称
类型
主键
外键
必填
注释
DATA_ID
varchar(50)
TRUE
TRUE
TRUE
数据id
ROLE_ID
varchar(50)
TRUE
TRUE
TRUE
角色id
2.5.17UC_ROLE_MENU角色菜单关联表
名称
类型
主键
外键
必填
注释
MENU_ID
varchar(50)
TRUE
TRUE
TRUE
菜单id
ROLE_ID
varchar(50)
TRUE
TRUE
TRUE
角色id
2.5.18UC_ROLE_EMPL角色员工关联表
名称
类型
主键
外键
必填
注释
ROLE_ID
varchar(50)
TRUE
TRUE
TRUE
角色id
EMPL_ID
varchar(50)
TRUE
TRUE
TRUE
员工id
IS_GRANT
numeric
(1)
TRUE
是否允许授予
2.6用户中心提供的接口
2.6.