统一用户中心详细方案设计.docx
- 文档编号:9400281
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:52
- 大小:293.19KB
统一用户中心详细方案设计.docx
《统一用户中心详细方案设计.docx》由会员分享,可在线阅读,更多相关《统一用户中心详细方案设计.docx(52页珍藏版)》请在冰豆网上搜索。
统一用户中心详细方案设计
统一用户中心
详细设计报告
制作人:
日期:
2018-01版本:
1.1
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)
公司地址
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:
女)
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.1通用接口调用方式
Ø通信协议
HTTPPOST
Ø请求格式
application/x-www-form-urlencoded
Ø响应格式
application/json
Ø公用请求参数
序号
名称
必填
类型
说明
1
secret
String
加密验证参数
使用平台给业务系统分配的接口密钥secretKey与当前时间(yyyyMMddHHmmss格式)拼接之后使用AES加密,使用十六进制编码得到的字符串
Ø响应结构
序号
名称
类型
说明
1
retCode
String
返回消息码
2
message
String
返回消息描述
3
result
JSON
JSON数据对象:
下列所有接口返回数据都在此字段下(无数据返回时,无此字段)
Ø公用响应编码
编码
说明
000000
成功
700000
接口令牌无效
800000
accessToken无效,没有相关用户信息
900000
异常
2.6.2sso.login登录
Ø功能说明
接入方控制客户端浏览器跳转登录页面进行登录操作
Ø发起方
客户端浏览器
Ø请求方式
浏览器跳转
Ø请求地址
/sso/login.do
Ø请求参数
参数名
类型
说明
backurl
String
登录完成之后的回跳地,URLEncoder(utf-8)编码
Ø响应
参数名
类型
说明
ticket
String
获取用户信息的凭证,一分钟过期,一次有效
Ø请求示例
https:
//xxxxxx/sso/login.do?
backurl=http%3A%2F%2Fxxx%2Fmobile
Ø响应示例
http:
//xxx/mobile?
ticket=0fff8d0f896e4b7094a7f98cfc35e4e9
2.6.3sso.validateticket校验
Ø功能说明
业务系统向用户中心服务系统校验登录ticket是否可用,并获取用户信息
Ø发起方
业务服务器
Ø接口地址
/sso/validate.do
Ø请求参数
序号
名称
必填
类型
说明
1
ticket
Y
String
用户登录之后浏览器回跳地址中的ticket参数
2
appId
N
String
业务系统Id
3
secret
Y
String
加密验证参数
4
onlySelfRole
N
Boolean
是否仅自有系统的权限列表
Ø响应
序号
名称
类型
说明
1
accesstoken
String
用户接口令牌,服务端调用接口时使用
2
user
Object
用户信息
2.1
userId
String
用户id
2.2
userName
String
用户姓名
2.3
userType
Integer
用户类型,员工、供应商
2.4
companyId
String
公司id
2.5
deptId
String
部门id
2.6
services
Object[]
申请的服务数组
2.6.1
serviceCode
String
服务编号
2.6.2
serviceName
String
服务名
2.6.3
serviceStatus
Integer
服务状态(1:
待审核,2:
审核拒绝,3:
审核通过)
2.7
apps
Object[]
业务系统列表
2.7.1
appId
String
业务系统id
2.7.2
roles
Object[]
角色数组,包含菜单权限,数据权限,资源权限
2.7.2.1
roleName
String
角色名
2.7.2.2
roleCode
String
角色编码
2.7.2.3
menus
String[]
菜单权限编号列表
2.7.2.4
datas
Object[]
数据权限列表
2.7.2.4.1
dataCode
String
数据编码
2.7.2.4.2
dataExpressio
String
数据SQL片段或表达式语句
2.7.2.5
buttons
String[]
资源权限编号列表
Ø响应码表
编码
说明
000000
成功
800000
ticket校验失败
900000
服务端异常
2.6.4sso.keepAlive保持用户登录状态
Ø功能说明
保持用户登录状态
Ø发起方
PORTAL、各个接入单点登录的子系统
Ø接口地址
/sso/keepAlive.do
Ø请求参数
序号
名称
必填
类型
说明
1
accessToken
Y
String
用户接口令牌
2
secret
Y
String
加密验证参数
Ø响应码表
编码
说明
000000
成功
2.6.5sso.logout单点退出
Ø功能说明
退出登录
Ø发起方
PORTAL、各个接入单点登录的子系统
Ø接口地址
/sso/logout.do
Ø请求参数
序号
名称
必填
类型
说明
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统一 用户 中心 详细 方案设计