[关闭]
@chenpbh 2018-04-22T02:03:48.000000Z 字数 3715 阅读 390

国家平台系统整合技术方案 1.1

技术方案


变更历史

版本 日期 人员 变更内容
1.0 2018-04-16 陈鹏 版本初定义
1.1 2018-04-19 陈鹏 增加加密狗和人脸识别支持

1 前言

1.1 背景

随着公司的业务的快速发展,公司目前业务系统主要有车联网、预约官网、稽查系统、电池溯源等。目前每个系统的用户体系都是独立的,即管理用户都是分散的,缺少集中管理和单点登录,系统整合主要考虑如下几点:

1.2 目的

构建一个统一认证中心,将国家平台的各个系统整合起来,为开发人员提供一个快速的集成方案,为用户提供一个良好的用户体验,具体输出包括如下:

1.3 适用范围

本项目技术仅适用基于JAVA Spring MVC实现的WEB系统,并且只适用的公司内部开发系统,不适用于纯外包项目。

1.4 读者对象

此文档主要读者对象包括如下:

1.5 相关资料

1.6 语汇表

2 需求分析

2.1 技术现状

国家平台的几个系统平台,属于公司发展过程中的几代产品,每个产品都随着技术发展和框架深入,都有着些许的变动,所以在实现系统整合的过程中,会有不少的问题需要去解决,摆在我们面前的几个问题:

系统 数据库类型 安全框架 ORM框架 其他技术 备注
车联网 Oracle 自定义实现 Hibernate SpringMVC、Freemarker、Kakfa、EASYUI等
预约官网 Oracle Apache Shiro BeetlSQL SpringMVC、Freemarker、Easyui、Layui等
电池溯源 MySQL Apache Shiro MyBatis SpringMVC、Freemarker、Layui等
稽查系统 MySQL Apache Shiro MyBatis SpringMVC、Freemarker、Layui等 和电源溯源一致

2.2 用户需求

基于上述每个系统都是独立的用户系统,独立的登录页面,现应上级要求,需要将上述几套系统通过单点登录整合起来,提供统一的认证界面,并且用户基础信息统一管理及分配应用级别权限。避免过于分散的用户体系,不利于后续公司的业务发展。

3 解决方案

为了满足用户需求,在此针对性性提出解决方案。在综合评估了现主流的技术方案,在此提出了基于CAS+自定义认证中心的方案,在后续章节,会对此进行详细的描述。

3.1 设计原则

在此方案设计中,我们遵循如下几个原因:

3.2 总体设计方案

在此章节,将对总体设计方案进行描述分析。根据方案设计,系统整合的系统框架图如下:

image_1cb6r1g9016e4cht1d7i1ued1n2am.png-67.5kB

3.2.1 功能设计与项目需求对应关系

需求编号 需求功能 对应设计模块 设计内容描述 备注
UNI-SYS-001 用户认证中心 认证系统 1、提供统一登录页面供各个系统调用;
2、提供管理页面供系统管理员管理用户和授权;
3、提供其他系统辅助功能模块
这个需要单独开发一个认证中心系统
UNI-SYS-002 CAS 服务端改造 CAS 服务端改造 基于CAS Server改造,支持人脸识别face++和加密狗 提供人脸识别和加密狗可选配支持
UNI-SYS-003 提供单点登录基础依赖包 单点登录基础依赖包 基于CAS+Shiro开发的公共单点登录依赖包 考虑到系统的差异性,各个系统可能要作出相应的调整改动,以支持项目的正常运行

3.2.2 总体功能流程图

image_1cb6t91u6ruq1kmg1mkilp91pdvp.png-53.3kB

3.2.3 数据库设计

用户认证中心的关键数据库表:

image_1cb6u48qa72u2kb14c81eqmans16.png-21.6kB

3.2.3.1 管理员用户表

名称 数据类型 长度 是否为空 默认值 备注
id varchar 36 主键
username varhcar 20 用户名
password varhcar 128 密码
email varhcar 50 电子邮件
mobile varhcar 20 手机号码
birthday varchar 20 出生年月日
sex tinyint 8 性别,1:男 2:女
face_img blod 人脸图
face_token varchar 128 人脸图token,如果图片传到云服务器,将生成此token
encrypt_dog_id varchar 255 加密狗标识
enable_dog tinyint 4 是否启用加密狗,1:启用 0:禁用,默认启用
create_time varchar 20 创建时间
create_by varchar 36 创建人
staus tinyint 8 账号状态,1:启用 0:禁用

3.2.3.2 应用表

名称 数据类型 长度 是否为空 默认值 备注
id varchar 36 主键
name varhcar 64 应用系统,即对应车联网、预约官网等
code varhcar 128 应用唯一识别码
url varhcar 50 系统路径
note text 系统备注说明
create_time varchar 20 创建时间
create_by varchar 36 创建人

3.2.3.3 管理员应用关联表

名称 数据类型 长度 是否为空 默认值 备注
id varchar 36 主键
admin_id varchar 36 管理员ID
app_id varhcar 128 应用ID
url varhcar 50 系统路径
create_time varchar 20 创建时间
create_by varchar 36 创建人

3.3 安全方案设计

基于系统安全和用户信息安全保密考虑,我们要从密码强度、数据传输和生物技术着手,将安全等级提高到一个最高等级。

用户登录系统,需要

3.3.1 密码设计

3.3.2 人脸识别认证

通过Face++提供的人脸识别技术,实现生物技术认证。

3.3.3 加密狗认证

由于我们当前采用的加密狗不支持chrome和firefox浏览器,在折中采用了实现中件间的方案,即采用C#实现一个中间件,通过WebSocket和浏览器进行交互,实现加密狗加密的安全认证。对于加密狗的启用,可以通过配置实现是否启用加密狗。

image_1cbdrnp3h1farl3g71o11qa1avt9.png-50.2kB

3.3.4 短信认证

3.4 问题与解决方案

3.4.1 用户如何统一管理

项目将实现一个自定义的用户中心,统一管理用户的基础信息,包括《用户名、姓名、密码、手机号码》等基础信息,用户基础信息变更,将通过MQ统一发布到各个系统节点,实现用户数据的一致性。
另外,用户的应用级别权限,将在用户中心进行统一分配,只有给用户权限,用户才能有权限访问对应的应用系统。

注意,由于之前各个系统用户不一致,后续系统集成,会存在一个问题:同一个用户名,在各个系统的密码不一致,或其他基础信息不一致,到时将采用统一重置,以用户中心的数据为准,对各个系统的数据进行校准。

3.4.2 如何封装公共依赖包

项目将根据系统不同的框架技术,针对性的进行封装,最大程序减少配置项

3.4.3 业务系统与认证中心如何通信交互

业务系统和用户认证中心,将通过MQ进行交互通信。

3.4.4 使用哪种技术实现用户认证

考虑原来系统的技术,决定采用CAS+Shiro进行用户认证。这样可以将影响降到最低。针对车联网系统,在此基础上将作微调,以支持shiro+cas。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注