0 引言
随着信息技术和移动互联网的快速发展,尤其是、企业、公众平台的广泛应用,各高校均在大力推进数字校园建设,并依托企业、等平台将各业务系统集成到平台中,为广大师生提供便捷的移动互联服务。在PC时代,各高校一般通过单点登录(SSO)实现统一身份认证,需要输入统一的用户名和密码,根据权限进入各自的业务系统。在移动互联时代,人们已经习惯利用移动互联平台快速获取信息、进行移动办公。一方面,如果使用传统技术登录OA等移动端业务系统,需要扫码二维码或凭用户名、密码登录,操作体验不够便捷。另一方面,各单位业务系统已经实现了PC端的单点登录,拥有较好的基础,需要通过技术手段迁移到移动端,实现移动端的身份认证。
在企业平台下,通过系统设计和技术研发,将企业的OAuth身份认证功能与单点登录(SSO)中的CAS认证有机融合,实现无感登录,即无须输入用户名和密码即可登录企业平台,并根据用户权限访问不同的业务系统,有效减轻使用人员记忆密码的负担,提升用户使用体验,提高用户身份认证的安全性和便利性,已成为当前高校数字校园移动互联系统设计中需要解决的重要问题。基于这样一种设想,该文通过具体案例,研究探索该功能的实现路径,该系统设计方案同时适用于公众平台、小程序与SSO 集成融合,也可为其他高校的数字校园建设提供一定的参考借鉴。
1 单点登录的应用场景及认证原理
各单位的信息化建设是一个循序渐进的过程,在建设中根据各种需要构建了相应的信息系统,并形成了各自独立的用户认证体系。如果不引入单一用户登录的解决方案,工作人员需要记忆各类系统的用户名和密码,用户容易混淆或者忘记登录信息[1],严重影响工作效率。
单点登录(Single Sign On),简称为SSO,为实现用户统一身份认证的重要组成部分[2],是比较流行的企业业务整合的解决方案之一。通过应用SSO技术可实现登录一次访问所有应用系统。
SSO一般将开源软件CAS作为基础平台,包括CAS Client和CAS Server两个部分。CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server;CAS Server主要负责对用户的认证工作。CAS认证过程如图1所示。
图1 CAS认证过程
5∶验证
Service Ticket
CAS Client CAS Server
6:返回username
Web Browser
Service Ticket
3:用户认证
1∶访问2:重定向
图1说明了CAS的认证过程[3],共分为6步。第一步,用户通过客户端浏览器请求访问应用;第二步,CAS Client 将该请求重定向到CAS Server;第三步,用户输入信息,CAS Server进行认证;第四步,认证成功后CAS Server会产生一个随机Service Ticket;第五步,验证票据。CAS Server验证Service Ticket的合法性;第六步,返回用户信息。CAS Server验证票据通过后,返回用户认证结果信息。
数字校园下基于单点登录的企业
无感登录系统实现
梁方勇 陈桂强
(华中师范大学,湖北 武汉 430079)
摘 要:在信息技术和移动互联网快速发展的背景下,各高校均在大力推进数字校园建设,并依托企业、等平台,将各业务系统集成到平台中,为广大师生提供便捷的移动互联服务。该文研究了Java语言环境下基于单点登录与企业集成的无感登录系统,将企业的OAuth身份认证功能与单点登录(SSO)中CAS 认证协议有机融合,无须输入用户名和密码即可快速登录系统,提高了用户身份认证时的安全性和便利性,对提升用户使用体验有较大意义。实例验证表明,该无感登录系统亦适用于、小程序等平台与SSO系统集成,具有较强的拓展性,同时也可为其他高校的数字校园建设提供一定的参考借鉴。
关键词:数字校园;企业;无感登录;单点登录
中图分类号:TP 319 文献标志码:A
基金项目 :华中师范大学信息化应用自主科研课题《基于企业的数字人事应用服务开发》阶段性研究成果“基于企业和的移动端登录系统”(项目编号 :CCNU21IT0104)。
2 企业平台实现无感登录的原理与流程
企业平台实现无感登录的本质是对访问者身份信息
进行认证[4]。根据开发者文档,
获取用户身份信息实现单点登录可分为5步。第一步获取授权标识code。可以通过前端网页加载一个url,调用企业接口获取授权标识code ;第二步获取accessToken。它是企业或的唯一接口调用凭据,可以使用corpId 和Secret 调用接口来获取accessToken,调用各类接口时都必须使用accessToken ;第三步,获取用户ID(userid)。通过code 和accessToken 调用接口获取用户信息userid;第四步通过userid 获取用户信息。通过userid 和accessToken 调用接口获取用户信息userinfo ;第五步是与单点登录系统进行集成融合。整个流程如图2所示。
登录页面背景图3 系统设计3.1 系统整体架构
数字校园下基于单点登录的企业无感登录系统的整体架构如图3所示。首先,用户登录企业或公众平台。其次,通过后台调用接口取得userid,并对该userid 进行身份验证。最后,验证通过后集成单点登录系统,即可根据权限进入不同业务系统。
3.2 基于单点登录的企业无感登录系统实例参考
该文以基于单点登录的企业无感登录系统为例,根据上述系统架构及流程设计,各模块的核心Java 代码如下。
3.2.1 企业平台登录模块代码
企业平台登录实质上就是链接到一个Web 页面地址,例如本系统中为http ://u.edu/login.jsp,通过在登录login.jsp 页面中添加JavaScript 代码,JavaScript 程序就会开始检测,如果客户端为平台,则跳转到企业接口域,此接口域内含重定向的服务器地址url。前端login.jsp 页面核心代码如下:
<SCRIPT LANGUAGE="JavaScript">function init(){
var weixin=is_weixin();//判断是否平台if(weixin){
window.location="open.weixin.qq/connect/oauth2/authorize?appid=corpid&redirect_uri=http%3A%u.edu%2FloginWxOauth2Action.do&response_type=code&scope=snsapi_base&state=#wechat_redirect。";//进入移动端登录}
else{
window.location="/login.do";//进入PC 端单点登录}}init();
</SCRIPT>
跳转成功后即转发服务器地址url,同时地址中会自动带上授权标识code,在后台可以通过返回的url 获得授权标识code,获得授权标识code 的Java 代码如下:
String code = Parameter(“code”);此模块的流程如图4所示。
3.2.2 获取accessToken 模块代码
根据企业号corpID 和Secret 调用企业接口来获取accessToken。核心Java 代码[5]如下:
/** * 获取AccessToken */
public static AccessToken getAccessToken(){ AccessToken token = new AccessToken(); try{
String url="/cgi-bin/gettoken?corpid="+ID+"&corpsecret ="+SECRET ;//ID 和SECRET 为static final 变量,可在公众平台开发者中心页面获得
JSONObject jsObj = doGetStr(url);//解析url if(jsObj!=null){
token.String("access_token"));//设置access_token
token.Int("expires_in"));//设置access_token 的有效期
return token;}}catch (Exception e) {token =null;}return null;}
3.2.3 获取用户ID 模块代码
根据获取的code 和accessToken 调用企业接口获取用户信息userid。核心Java 代码如下:
图2 数字校园下基于单点登录的企业无感登录系统的流程图
系统开始
有效session
直接登录该系统
提示无法进入
该系统
通过身份验证
进入该系统
通过session判断页面是否需要验证
第一步:调用接口获取授权标识code
第二步:调用接口获取accessToken
第三步:调用接口通过code和accessToken获取userid
第四步:调用接口通过userid和accessToken获取用户信息
第五步:与单点登录( SSO )系统集
成验证userid
无效session ,进行身
份认证获取成功
获取失败
获取成功
/** * 根据AccessToken 和code 获取用户id */
public static String getUserID(String access_token, String code){
String UserId = "";
String url = "qyapi.weixin.qq/cgi-bin/user/getuserinfo?access_token="+access_token+"&code="+code;
JSONObject jsObj= doGetStr(url);//解析url if(jsObj!=null){
UserId = String("UserId");}return UserId;}
取得UserID 后,存储到request 中,并转发单点登录模块。
request.setAttribute("UserId", UserId);
3.2.4 根据用户ID 获取用户信息
通过获取的userid 和accessToken 调用接口获取用户信
息userinfo,可以得到用户的mobile、e-mail、name 等信息。核心Java 代码如下:
/** * 根据AccessToken 和userid 获取用户信息 */
public static JSONObject getUserID(String access_token, String userid) {
String url = "qyapi.weixin.qq/cgi-bin/user/get?access_token="+access_token+"&userid="+userid;
JSONObject UserInfo = doGetStr(url);if(UserInfo !=null){return UserInfo;}}
3.2.5 集成单点登录系统代码
从request 中取得userid 后,会进入正常的表单登录认证的AuthenticationHandler 中,需要在执行正常的认证逻辑之前插入企业认证逻辑。CAS 服务器则保存用户凭证Principal,通过验证用户凭证即可访问各业务系统。核心Java 代码如下:
String Attribute("UserId");if(!Equal(null)&&!Equal(""){ credential.setUsername(UserId);
Return createHandlerResult(credential,Username()),null);
}
//验证用户凭证代码
AttributePrincipal principal = (AttributePrincipal)UserPrincipal();
String userName = Name();//通过用户凭证获取username
最后通过取得的userName 得到用户权限,进入不同的业务系统,如此即实现了基于单点登录的企业无感登录系统。整个登录过程在用户层面是感受不到登录过程的,把便利留给了用户,极大地提升了用户体验。
3.3 环境搭建及配置
系统采用B/S 架构,运行环境选择安装jdk1.7.0_72,Web
图3 系统整体架构图
登录企业或公
众平台
获取用户信息进行身份验证
集成单点登录(SSO )
根据权限进入不同业务系统
图4 登录模块获取授权标识code 流程图
进入Web页面
进入PC端页面
足转到企业接口域(内含
重定向服务器地址url )
是否为平台
否是
转发到重定向服务器地址url,
自动带上Code
后台服务器取得Code ,识别用户
ID
服务器采用Apache Tomcat7.0.100,数据库为Oracle 10,操作系统为Microsoft Sever,开发语言为Java、Jsp、HTML、JavaScript。以及需要下载安装第三方库,包括struts库、requests库、json库和单点登录SSO依赖包cas-server-3.5.1+cas-client-3.2.1等。
4 安全性分析
企业平台使用OAuth2.0标准实施安全验证。OAuth2.0是一个关于授权(authorization)的开放网络标准,OAuth2.0中使用的授权码模式(authorization code)是功能最完整、流程最严密的授权模式,也是最安全的一种模式。这使集成单点登录系统后的整个系统的安全性也得到了很好的保障。
5 结语
该文提出了Java语言环境中数字校园下基于单点登录的企业无感登录系统,通过将企业的OAuth身份认证与单点登录(SSO)中的CAS认证相融合,较好地解决了企业平台下登录多个业务系统时无须输入用户名和密码的问题,有效减轻了使用人员记忆密码的负担,对提升用户使用体验有较大意义,同时应用OAuth2.0安全机制也保障了系统的安全性。实例验证标明,该无感登录系统设计方案
亦适用于等平台下与业务系统的集成,具有较强的拓展性。
参考文献
[1]周志坚.高校门户系统单点登录的设计与实现[J].电脑编程技巧与维护,2017(16):11-13.
[2]景民昌,唐弟官.开放源码的CAS单点登录系统研究[J].现代情报,2009(3):125-127.
[3]姚文权.基于CAS单点登录技术的研究与实现[J].企业技术开发,2015,34(8):82-84.
[4]梁宏,魏庆,刘子震,等.单服务号完成扫码登录的设计与实现[J].开封大学学报,2020(4):91-93.
[5]庄庭,沈岳峰,连高欣,等.企业在气象部门中的应用与探讨[J].天津科技,2019(11):121-126.
0 前言
涂装是飞机抗腐蚀的第一道也是最重要的防线,直接决定民用飞机的外观,影响客户和乘客对飞机的直接观感和评价[1]。因为服役状态较为复杂,风蚀区域涂装成为表面涂装的重点关注对象之一,而相关的
试验数据、评估方法与数据研究较少。随着民用型号飞机交付量和运营区域日趋丰富,亟需进行相关的性能试验与评估方法的研究与验证。
飞机风蚀区域环境较为复杂[2],需要经历高速气流的冲击,同时在飞机的起飞和降落期间可能会面临一定程度的低密度沙尘吹击,还会在降水天气面临风雨冲击,在高寒气候下面临结冰高寒的影响。目前飞机迎风面区域风蚀作用影响的研究较少[3],研究较多集中在风电、发动机叶轮等常规民用工业领域[4-9]。但是迎风面的表面层破坏对飞机影响非常大,因为飞机补漆时间一般大于20h,影响飞机的航班服役时间,极大地影响盈利效率和工作效率。因此针对飞机迎风面的涂装工艺进行专门的耐风蚀研究,建立相关的基础工艺数据,对合理选取迎风面风蚀区域的材料与工艺具有重要的指导意义。1 飞机迎风面风蚀试验装置与试验方法
1.1 沙尘冲击试验平台
该文根据分级的服役工况,采用气流挟沙喷射法,通过模拟风沙环境侵蚀试验系统,对目标涂层进行不同风蚀力学参数下的风蚀试验。该系统包括高压气源系统、供沙系统、风蚀系统和回收系统。其中高压气源系统可提供干燥高速气流,供沙系统通过控制阀提供所需沙量,沙粒在高速气流的携带下风蚀靶材。回收系统用来回收试验后的风蚀沙粒。
试验选取风速为90m/s~100m/s、颗粒粒径为0.15mm~0.3mm 以及有效截面质量流率为10g/min的工况
条件,对冲击角度为15°、30°、45°和90°进行分析,每组工况风蚀时间为10min。
1.2 所选的主要涂装工艺
选取飞机常用的外表面处理工艺进行耐风蚀对比分析,工艺方法包括底漆清漆涂装、高固态涂层、耐腐蚀底胶涂层、铬酸阳极氧化化膜层、化学转化膜层以及铝合金包铝层。采用以上6种工艺,分别用典型试板针对风蚀角度进行耐风蚀试验和分析。
飞机迎风面涂装耐风蚀对比研究
吴鹏程
(上海飞机制造有限公司,上海 201324)
摘 要:飞机迎风面因其服役状态较为复杂,容易发生涂层失效或脱落的问题,因此对涂装工艺性能要求极高,而目前国内在相关的试验和工艺性能数据对比方面没有进行系统研究。该文根据飞机迎风面的主要服役工况,构建了飞机迎风面服役的风蚀模拟环境,对飞机现有的6种主要的表面处理和涂装工艺进行了综合试验研究和性能对比分析,为飞机迎风面的涂装工艺选型提供了基础支撑。
关键词:飞机;迎风面;涂装工艺;风蚀
中图分类号:TG 174 文献标志码:A
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论