基于Apereo CAS的“互联网+政务服务”平台的设计和实现*
2021-04-06刘召栋周亿城
刘召栋 周亿城
湖南省科学技术信息研究所 湖南 长沙 410000
概述
近年来政府提出加快政务信息系统整合,建设“互联网+政务服务”平台实现“一站式”网上办事、“一网通”公共服务、“智能化”科技决策、“数字化”资源共享。本文以湖南科技管理和科技服务行业的信息化需求为主线,制定账户数据信息标准和流程管理规范,建设账户管理中心和账户数据中心,对内、对外提供统一的SSO登录入口,支持多种认证方式,为各应用系统提供统一的安全管理服务,为实现“一站式”网上办事、“一网通”公共服务奠定基础,建设一套“互联网+政务服务”平台。
1 单点登录及Apereo CAS框架介绍
单点登录和Apereo CAS框架是实现“互联网+政务服务”平台的关键技术。本小节重点介绍单点登录、Apereo CAS框架的原理及认证流程,并阐述相比较早期登录技术的优势。
1.1 单点登录
随着信息化建设和网络技术的发展,特别是Web应用系统的流行,湖南省科学技术厅开发了多个业务应用系统,分别是:电子政务OA系统、湖南省科技管理信息系统、湖南省科技报告共享服务系统、湖南省科研设施和科研仪器开放共享服务平台、湖南省科学技术奖励综合业务管理平台等。这些系统分别分散于各个建设单位,长期以来积累的大量的业务数据,方便了各个部门办公,提升了一定的管理效率。同时,因为这些系统在建设之初,缺乏统一的规划管理,各个系统的数据存在相互不通的现象,给现在的科技管理、系统安全带来了一定的困扰。
如果一个多业务系统应用群中部署了单点登录,则只要一次用户身份验证成功,就可以获取应用群中其他应用系统的访问控制权限,不需要重复登录[1]。
单点登录机制有用户、web应用和认证中心三个角色,其中认证中心只能有一个,用户和web应用可以有多个。与传统的单个系统登录机制相比较,单点登录需要一个统一的身份认证中心作为唯一登录入口来接收用户提交的账号、密码信息,其 他web应用间接地从认证中心获取授权。这种授权通过令牌机制来实现,当用户的登录信息认证通过时,认证中心会创建令牌并将其传递到各个子系统。从而用户可以被授权进入各个子系统。
1.2 Apereo CAS原理及认证流程
Apereo CAS是耶鲁大学发起的一个开源项目,能很好地实现单点登录和统一身份认证,其简单性、时效性、安全性优势,从而被广泛应用。用户通过CAS认证,只需要一次登录就可以在信任的应用系统间互相访问。
Apereo CAS分为Apereo CAS服务器和Apereo CAS客户端两部分。
(1)Apereo CAS服务器
服务器端是独立部署的web服务器,主要负责认证用户的身份信息,是单点登录系统中唯一的认证入口。用户名、密码等安全信息在Apereo CAS认证服务器中称为用户凭证[1]。当用户身份认证完成后,Apereo CAS服务器还负责认证访问各个应用系统所需要的各种票据[1]。
(2)Apereo CAS客户端
图1 Apereo CAS的认证流程
Apereo CAS客户端通常就是Web应用服务器,Apereo CAS客户端以库文件形式嵌入到每个应用系统中来实现和服务器端的交互认证[2]。当用户访问时,Apereo CAS客户端不直接进行身份认证,而是将请求重定向到Apereo CAS服务器端进行统一身份认证。当用户通过浏览器访问Apereo CAS客户端时,客户端会检查http或https协议所携带的会话参数或是服务器会话中是否携带凭证ST(Service Ticket),如果都没有,Apereo CAS客户端就会重定向用户的请求到 Apereo CAS服务器端并传递回调地址,Apereo CAS服务器端生成TGT(Ticket Granting Ticket)并放入缓存,生成TGC(Ticket Granting Cookie)并写入客户端浏览器,生成TGT签发一个ST,根据传递的回调地址和ST,用户再重新访问Apereo CAS客户端,Apereo CAS客户端根据ST和Apereo CAS服务器对用户身份进行认证[3]。具体认证流程如图1所示。
2 基于Apereo CAS的“互联网+政务服务”平台的实现
湖南科技“互联网+政务服务”平台基于Apereo CAS技术,实现“一站式”网上办事、“一网通”公共服务、“智能化”科技决策、“数字化”资源共享。主要建设内容包括制定了账户信息数据标准和管理流程规范,建立统一账户管理中心支撑科技政务服务平台和科技公共服务平台实施。
图2 统一身份认证平台逻辑架构图
技术架构主要分为上下三层,分别为平台层、应用层、服务层。
(1)平台层:主要是“互联网+政务服务”一体化平台,平台可以通过互联网和政务外网连接到省级和国家级层面的政务平台,以协同服务模式实现对上级平台的传输,并同步账户数据科技厅的“互联网+政务服务”一体化平台。
(2)应用层:包括统一账户管理中心、统一账户数据中心、应用门户、统一身份认证,以自然人(唯一标识:身份证号)和法人(唯一标识:统一社会信用代码)实现用户注册、审核、用户信息查询修改、密码修改、用户找回等功能。
(3)服务层:打通科技信息管理系统、潇湘要素市场网、大仪网等接口的通道,实现账户数据的同步承接传递。
系统主要实现界面如图3、图4、图5所示。
图3 统一身份认证中心
图4 统一应用门户系统
图5 统一账户管理系统
3 部署与应用接入
图6 湖南科技“互联网+政务平台”部署结构图
3.1 统一认证支撑系统
序号 技术产品描述1操作系统操作系统名称:Cetos操作系统版本:6.5默认语言环境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服务器软件Apache Tomcat版本号:7.0.107
3.2 统一门户管理系统
序号 技术产品描述1操作系统操作系统名称:Cetos操作系统版本:6.5默认语言环境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服务器软件Apache Tomcat版本号:7.0.107
3.3 统一账户管理系统
序号 技术产品描述1操作系统操作系统名称:Cetos操作系统版本:6.5默认语言环境:UTF-8 2 Java JDK Sun(Oracle)jdk-8u271-linux-x64字符集:UTF8 3服务器软件Apache Tomcat版本号:7.0.107
3.4 数据存储
序号 技术产品 描述1 操作系统 操作系统名称:Cetos操作系统版本:6.5默认语言环境:UTF-8 2 数据库MySQL Community Server 8.0.15字符集:utf8mb4排序规则:utf8mb4_general_ci 3 缓存软件 Redis版本号:6.0.10
3.5 应用接入
(1)账户信息数据标准
制订统一的账户信息数据标准是实现统一身份认证服务平台的前提,在统一的账户数据标准下,各应用系统之间才能实现账户数据的互联互通。湖南科技“互联网+政务服务”平台参考《湖南省“互联网+政务服务”一体化平台统一身份认证接入标准规范0523》,部分账户数据标准如下表:
表1 账户(自然人)数据标准
表2 组织机构(法人)数据标准
续表
(2)OAuth2.0协议
OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无须知道用户的账号及密码,就可获取到用户的授权信息。协议特点:
1)简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;
2)安全:没有涉及用户密钥等信息,更安全更灵活;
3)开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;
湖南科技“互联网+政务服务”平台为第三方应用接入提供了符合OAuth2.0协议标准的认证接口,包括authorize、accessToken、profile、logout服务。
①authorize 服务
功能说明:获取授权码code。调用authorize服务地址,会转到SSO认证中心登录页面,输入账号口令提交登录后,SSO认证中心会转到回调地址并带上授权码code。
服务地址:http://auth-server/oauth2.0/authorize。
请求方式:GET/POST。
参数说明
参数名称 必选 类型 说明client_id true string 服务商提供的client_id redirect_uri true string 授权后的回调地址,需与注册应用里的回调地址一致response_type true string 此值固定为 code state false string 状态参数,原值返回
②accessToken 服务
功能说明:获取访问令牌token。
服务地址:http://auth-server/oauth2.0/accessToken。
请求方式:GET/POST。
参数说明
参数名称 必选 类型 说明client_id true string 服务商提供的client_id client_secret true string 服务商提供的client_secret grant_type true string 默认值authorization_code redirect_uri true string 授权后的回调地址,需与注册应用里的回调地址一致code true string authorize请求回来的code
③profile 服务
功能说明:获取SSO登录账户信息。
服务地址:http://auth-server/oauth2.0/profile。
请求方式:GET/POST。
参数说明
参数名称 必选 类型 介绍access_token true string 第三部返回的access_token值
④logout 服务
功能说明:单点退出。
服务地址:http://auth-server/logout。
请求方式:GET。
参数说明
参数名称 必选 类型 说明client_id true string 服务商提供的client_id sessionId true string 会话ID,在profile服务可获取
4 结束语
基于Apereo CAS的“互联网+政务服务”平台实现“一站式”网上办事、“一网通”公共服务能力,解决了湖南科技行业管理单位中各应用系统用户分散管理的问题,使用户访问不同业务系统的方式更加便捷,同时减轻了信息管理部门对账号和用户管理的工作压力,对湖南科技管理行业有着积极的现实意义。