FAST科学数据管理平台统一身份认证的研究与实现

2020-12-01 03:17姜家涛谢晓尧张辉
电脑知识与技术 2020年29期

姜家涛 谢晓尧 张辉

摘要:随着网络信息化技术高速发展,业务系统膨胀式增加,管理多个系统认证安全和记住多个系统账户密码,让系统管理员和用户们备受困扰,集中对多形式、多样化信息端统一授权认证亟待解决。当前通用技术标准为采用微服务与实现OAuth2开放统一认证标准协议架构。500米口径球面射电望远镜FAST作为我国自主研发的世界上最大口径天文望远镜,在天文研究上取得令人瞩目的科研成果。FAST早期科学数据中心为加强数据管理与科普工作,研发了大量多形式的数字化信息系统。基于资源安全访问控制管理和简化管理工作的需要,FAST科学数据平台系统必须实现统一授权认证。论文研究开放认证授权标准协议OAuth2和身份验证标准Open lD Connect工作原理,探讨可行方案Identity Server关键技术。分析了当前Fast数据管理平台管理存在的多样的信息系统状况,设计统一身份认证系统架构,并采用IdentityServer4构建统一认证中心,使用.NET微服务实现认证功能,完成各类Web软件系统、App软件和桌面应用软件的统一身份认证接入。

关键词:OAuth2; OIDC; FAST数据管理平台;统一身份认证

中图分类号:TP315.69 文献标识码:A

文章编号:1009-3044(2020)29-0013-04

1 引言

随着当前网络信息化技术高速的发展,多种多样的信息终端,如网站、App和小程序等给人们生活带来了便利,也加速了数字化时代的到来。为了满足人民日益增长的需要,适应快速变化的客户需求,信息业界提出微服务架构。如何既完成迅速增加的微服务和多样的信息终端的关联管理,又能够保障信息的安全,还能避免给用户带来重复的认证和授权任务,这是给信息化研发管理提出的严峻考验。基于Open ID Connect和OAuth2的标准,给各个业界研发提供了统一开放标准,实现了授权信息的共享,可以完成多信息系统的单点登录和统一授权认证。

500米口径球面射电望远镜FAST(Five-hundred-meter Ap-erture Spherical radio Telescope)[1],是目前世界上最大的单口径天文射电望远镜,于2016年9月在我国贵州落成。截至目前,已发现脉冲星后选题80颗,得到认证60颗,并于2018年4月首次发现毫秒级脉冲星[2]。FAST脉冲星搜索过程中产生了大量的巡天数据,FAST早期数据中心一直承担数据管理、分析和加速搜索等任务工作。FAST早期数据中心要管理海量的数据,如基础脉冲星数据、文献数据、设备管理数据和巡天原始数据,为了有效管理数据,提供数据处理能力,实现科研信息共享,提高科研效率,信息化团队不断地研发推出数字化信息系统。不断增长的信息业务服务和信息系统对信息安全数据和统一管理提出新的要求,即保障信息安全,信息只有授权用户才能访问[3];减少多系统重复登录验证;这些任务都亟待在FAST数据平台实现统一认证。

当前已经存在一些实现OAuth2标准的开源开发框架,主流的框架为微软的Identity Server和耶鲁大学的CAS[4]微软的AspNetCore与windows的天然无缝融合,提供了快速业务开发利器。AspnetCore可以实现微服务业务Webapi,提供网站客户端MVC、单页面SPA客户前端与Identity Server统一认证服务,完成信息业务系统快速研发,是技术框架的不二选择。本文将从业界认证授权协议标准介绍,陈述基于Identity Server的微服务与多信息客户端的统一认证系统的设计,并为FAST数据管理平台系统实现统一认证。

2 相关技术标准

2.1 OAuth2

OAuth是一个开放授权标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2是OAuth协议的版本[5]。

OAuth2定义了参与完整的授权系统的角色。

(1) Third-part Application:第三方应用程序或客户端(Cli-ent),用于消费授权资源的第三方应用。

(2)HTTP Service:HTTP服务提供商,外部第三方服务提供者,如腾讯、阿里。

(3) Resource Owner:资源所有者,我们的登录用户。

(4) User Agent:用户代理,可以说浏览器或者客户端App。

(5) Authorization Server:认证服务器,即服务提供商专门用来处理认证的服务器。

(6) Resource Server:资源服务器,即服务提供商存放用户生成资源的服务器。

授权认证流程,OAuth框架根据应用场景的不同,包含4种授权模式。

(1)授权码模式

用户使用客户端访问需授权验证资源必须拥有访问令牌。未认证用户被重定向到认证服务器登录,登录成功返回授权码和重定向URL,客户端带着授权码和参数(客户端标识和重定向URL)从认证服务器获取访问令牌和URL。客户端可以为此凭证访问资源。

(2)隐式许可

省略颁发授权码过程。登录成功用户直接获取访问令牌等,客户端以访问令牌重定向访问资源。

(3)资源所有者密码凭据

客户端直接使用资源所有者提供的用戶名和密码箱认证服务器请求访问令牌。这种模式适合资源服务器高度信任客户端。

(4)客户端凭据

客户端使用自己的ID向认证服务器发起受保护资源访问请求,返回访问令牌。常用于集群中服务器之间通信。

2.2 0pen ID Connect

Open id connect简称OIDC,是构建在OAuth2上的一个身份层,一个局域OAuth2协议的身份认证标准协议。OIDC的作用是使用OAuth2授权服务器为第三方客户端提供用户身份认证,并把对应的身份认证信息传递给客户端[6]。

OIDC工作过程为身份认证过程,目标是从授权服务器获取包含用户信息的安全令牌ID Token.ID Token包含用户身份信息,存储为是JWT格式的数据结构,并且使用JWS进行签名和JWE加密后的字符串。

OIDC身份认证流程包含3种授权模式:授权码流程、隐式流程和混合授权码和隐式流程。区别的是认证请求过程需要提交请求的参数不同。

2.3 Identity Server

Identity Server是.NET框架下实现了Open IDConnet和OAuth2协议的身份认证和访问控制的开源解决方案[7]。基于Identitv Server可以完成单点登录、身份管理、授权认证和资源安全保护功能。

Identity Server框架结构如图l,包含用户、客户端、Identity-Server和受保护资源4种角色。其中客户端可以是网站、手机App、桌面应用程序、单页面应用程序SPA和服务器进程等;受保护资源可以是用户身份信息和Web API微服务;IdentityServ-er实现了对用户身份的认证,验证用户访问受保护资源授权。

3 FAST科学数据平台统一认证的设计

在国家天文台和澳大利亚脉冲星研究小组的业务支持和指导下,依托贵州师范大学与中科院国家天文台共同建立的“FAST早期科学数据中心”的存储资源、计算资源、巡天数据资源。中心科研人员利用已有巡天数据和数据库技术,构建了面向FAST大规模数据的脉冲星数据管理系统,实现射电天文中脉冲星数据的统一规范管理。FAST数据管理平台维护着大量的基础信息,如已知脉冲星资料、文献资料、天文望远镜设施设备资料、巡天项目资料等,海量的巡天基础数据。FAST数据管理平台服务对象包括科学家、学者、学生、天文爱好者,甚至是系统对接接口。针对平台面临的不同服务对象,不同角色要求系统能够承担的业务功能,不同任务适合的场景要求,中心科研人员分散业务管理粒度,建立大量微服务,依托信息化技术开发能适应不同设备终端的信息系统,如服务器對接进程、桌面应用程序、网站系统和手机App用户与微服务之间基于角色权限架构管理CRBAC),实现安全的访问控制,同时基于Identi-tv Server建立统一认证中心、多系统单点登录和资源安全保护。

系统设计核心为认证授权中心(Authorize Server)、受保护资源(Resource WebApi)、对三种基本类型客户端分别采用OAuth2协议的不同验证授权模式构建统一认证,同时支持天文爱好者以微信、百度云等第三方身份提供商注册接人登录。

3.1 统一认证中心

FAST数据平台的认证中心服务器采用Identity Server,实现强大的身份验证和资源访问控制功能。其核心保护访问资源,通过调用身份Web api访问验证登录用户信息和第三方接人身份信息;提供了会话管理和单点登录功能;管理授权访问的客户端,包括客户端ID、认证授权模式和客户端能够访问资源范围;返回认证用户身份信息和授权访问令牌.验证令牌功能。

认证系统的配置采用了身份认证和客户端配置灵活的模式,支持后期不断扩张的微服务功能增加和客户端要求变更。系统未采用Identity Server默认本地身份存储模式,对身份系统使用Web api进行扩展,同时增加了角色信息,完成RABC功能。系统还将客户端配置和客户端访问资源范围配置信息持久化存储在数据库中,使得配置灵活,每次新增或修改客户端配置,功能激活无须重启认证服务。

3.2 基于微服务认证功能

为了应对业务工作中随时可变的,随时可能增加需求,信息系统必须拥有高度灵活的可扩展性,将大的业务功能分解成了粒度小的微服务[8]是当今流行的框架。微服务使用Web api实现对受保护资源的访问与操作。在统一认证体系中,只需要为每一个服务启用认证授权功能,配置授权认证服务器URL,设置唯一的微服务ID。本系统中已经将用户身份认证使用Web api实现,实现角色权限控制功能。

3.3 接入系统授权认证

为了更好地构建了面向FAST大规模数据的脉冲星数据平台,有效管理数据,提供数据处理能力,实现科研信息共享,加速科研效率,早期数据中心信息化团队不断地研发推出数字化信息系统。其中信息系统呈现形式也多样性.有基于浏览器的B/S软件系统、手机App和传统C/S桌面级软件系统。为了实现全部信息系统的统一认证管理,以下阐述各类型软件实现关键技术。

3.3.1 Web软件系统

基于B/S的Web网站实现信息系统是当前流行的系统框架模式,访问设备基本为PC,其拥有更新部署简单,无须安装客户端软件、只有用户浏览器就能够访问的特点。MVC Web客户端安全认证配置包含两个方面:(1)在认证服务授权网站客户端ID,指定认证完成后回调URL和注销登录回调URL,指定网站授权用户可以访问资源范围;(2)为网站指定认证服务器,指定网站授权认证模式,添加支持open ID Connect功能的认证扩展,指定认证信息本地存储模式。FAST数据管理平台包含的基础数据管理系统,脉冲星候选体标注系统,信息发布系统都是可以为MVC Web客户端,为其配置认证模式为授权码模式。

3.3.2 App接入实现

随着智能手机在中国的普及,人们的工作生活是越来越离不开手机,使用手机App支持天文工作者上网办公,信息交流,为天文爱好者提供手机承载的科普信息已经成为现实。越来越多的App基于H5开发,称为Web App,归属于单页面应用程序SPA。

单页面应用程序SPA使用oidc-client.js库,实现与认证服务器的通信,完成登录验证,并返回访问令牌ACCESS- TO-KEN。授权用户接下来访问资源只需携带访问令牌就可以。携带方式ACCESS_TOKEN有三种:路径请求参数、授权请求头和Post表单数据。

3.3.3桌面应用程序接入

FAST巡天数据文件是海量的大文件,传输迁移必须在安全可靠的网络环境下进行,基于Http网络协议方式的已经不合适。当前租用SG网络带宽,建立从平塘天文观测台到FAST早期科学数据中心通信专网。运行在单一安全网络环境下,数据管理系统,可以使用桌面应用程序或专门的服务进程。认证授权模式可以采用资源所有者密码凭证,甚至客户端凭证。

3.3.4第三方认证接入

FAST数据平台是一个开放平台,能够接收来自全球的脉冲星科学家及学者的新数据及文献资料,能够共享科学资源,同时也是科普基地板块,普及天体科学知识,分享天文教育资源。为了减少不必要的注册,平台支持第三方身份认证提供商的接人,如微信、微博等主流社交平台账号登录。

4 FAST数据平台统一认证的实现

部署的项目包括:认证授权服务器系统、2个Web api项目(自定义身份认证Web api, App后台服务api)、一个基于ASPNET MVC技术的Pulsar数据网站系统。系统部署在私有云平台,3台虚拟主机服务器,每台主机CPU 16核,内存16G,硬盘500G,操作系统为Windows server2012,基础软件ns和dot-netcore runtime。

(1)服务器serverl:IP地址172.24.1.150,部署认证授权服务器项目,端口80;自定义身份认证Web api项目,端口8080。

(2)服务器Server2:IP地址172.24.1.151,部署App后台服务WebApi项目,端口80。

(3)服务器Server3:IP地址172.24.1.152,部署Pulsar数据管理网站项目,端口80。

桌面数据管理软件运行在用户的PC端,App运行在用户的手机、Pad等移动设备中。项目部署方案如图3所示。

匿名用户使用App或网站处理业务,访问操作受保护资源,系统自动定向到统一认证中心登录页面,登录成功返回认证ID Token和访问令牌Acccess Token,跳转请求页面或数据;当请求的资源超出认证用户访问授权范围,跳转到受限权限提醒页面;认证成功用户,携带ID Token和Access Token,请求访问其他网站无须重复登录,从而完成整个统一认证流程。

5 结论

为了应对快速增长、多变信息化业务需求和多样信息客户端对授权资源访问需求,科学有效管理FAST工程产生的海量数据,提高数据处理能力,实现科研信息共享,提高科研效率,文章基于Open ID Connect和OAuth2的开放协议标准,在FAST数据管理平台中引入Identity Server开源统一认证系统方案。文章简述了OAuth2与Open ID Connect专业术语,分别适应不同应用场景的授权认证工作模式流程,分析了FAST數据管理平台业务系统组成,基于Identity Server设计整个平台的认证架构,采用云服务器虚拟主机认证系统实践部署。解决了不断增长的信息业务需求微服务与信息资源安全统筹管理之间的矛盾,即实现了访问控制,保障了信息安全,受限资源只有授权用户才能访问;同时解决了多系统之间必须多次登录验证的问题。

参考文献:

[1]许余云,李菂,刘志杰,等.人工智能在脉冲星候选体筛选中的应用[J].天文学进展,2017,35(3):304-315.

[2] Wang Hongfeng,ZhuWeiwei,GuoPing,etaI.Pulsar Candidate Se-lection with Ensemble Nets for FAST Drift-scan Suvery[J].SCl-ENCE CHINA,2016(59).

[3]姜家涛,郭静.基于RBAC的权限管理在实验室信息管理中的研究[J].计算机技术与发展,2017(27):79-82.

[4]郑健,基于CAS的校园统一身份认证系统部署[J].电脑知识与技术,2019,15(23):61-63.

[5]胡贞华,陈雪花,何创新.基于OAUTH2.0高校统一身份认证的应用研究[J].电脑知识与技术,2019,15(6):265-267.

[6] Eddy,Nathan.OpenDNS,ConnectWise Partner on Web Security,lT Management[Jl.Eweek,2013,Nov.

[7]IdentityServer[E B/OLl. https://identityserver4. readthedocs. io/en/latest/.

[8]方圆,郑卫胜.一种.Net框架下微服务框架设计研究[J].通信电源技术,2019,36(4):87-88.

[9]冯志勇,徐砚伟,薛霄,等,微服务技术发展的现状与展望[J].计算机研究与发展,2020,57(5):1103-1122.

[10]李娜.基于Spring Cloud微服务架构的应用[J].电子技术与软件工程,2019(12):142.

【通联编辑:代影】

作者简介:姜家涛,男,博士生,研究方向:信息安全、数据压缩;谢晓尧,男,博士生导师;张辉,男,博士生。