建设数字化校园的目标是消除校园网中的信息孤岛,整合校园网中的各种应用系统并实现统一的身份认证服务机制。运用SOA构建统一身份认证服务架构,一方面它实现了平台无关性,另一方面实现了分布式部署、组合和使用的服务。
随着近几年高校对校园网络基础硬件设施扩建的完成,很多高校已开始建设数字化校园,而统一身份认证服务作为数字化校园建设的基础部分,它是每个高校建设数字化校园所面临的一个问题。笔者以在数字化校园建设方面具有特色的部分高校为例,研究其校园网的统一身份认证服务后,发现它们都别具一格,各有所长,但在总体架构上没有一套统一、完善的理论与方法。本文运用SOA(Service—Oriented Architecture)模型,设计并实现了一个基于SOA的统一身份认证服务架构的方案。
1 统一身份认证服务架构
1.1面向服务的架构SOA
SOA(Service—Oriented Architecture)是一种软件架构模型,它可以根据需要对松耦合的粗粒度应用组件进行分布式部署、组合和使用。服务之间采用松耦合有两大好处,第一是各种服务能够灵活组合,第二是每个服务的内部结构和实现发生改变时,其构成的整个应用程序无需改变。反之,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,不易对其进行重构。SOA的关键是“服务”的概念,在该架构中,定义了两个角色,服务提供者和服务使用者。
目前支持SOA架构概念的软件体系有好几种。使用基于SOAP协议的Web服务技术来构建统一身份认证服务架构,这种技术正快速发展。是未来的发展方向,它提供了一个系统架构以及一系列的技术标准与规范。
1.2基于SOA的统一身份认证架构
统一身份认证服务主要实现用户管理、身份认证、分级权限管理和单点登录等功能。以解决校园数字化建设过程中用户定义模糊、用户身份组织零乱、交叉权限管理定义和应用系统入口多样性等棘手的问题。
本系统架构以北京大学和重庆大学等已建设或正在建设的统一身份认证服务为研究基础,结合SOA等技术对统一身份认证服务进行了进一步定义。在基于SOA的统一身份认证服务架构中,依据SOA定义的服务提供者和服务使用者角色,将统一身份认证服务所要实现的功能封装成为服务提供者,作为服务使用者的各应用系统必须依据统一服务接口所定义的调用方法才能调用服务。服务提供者按三层结构来设计,分别为统一认证中心数据库、统一信息管理和统一服务接口。对统一认证中心数据库的访问操作经过封装后。只有经过统一服务接口才能进行访问,同时在统一服务接口处设置相应的安全性检查和访问控制的策略匹配来提高对中心数据库的访问安全。
服务使用者调用一次服务的过程为:1)服务使用者依据认证语言及语法构造认证指令。21使用与服务提供者约定的加密算法对认证指令进行加密。3)将加密后的密文封装成SOAP消息,并将消息发送到服务提供者。4)服务提供者收到SOAP消息后拆封并提取消息。5)使用与服务使用者约定的加密算法解密密文。 6)对明文进行语法、语义进行有效性验证,通过验证后执行认证指令。71将执行的结果加密、封装为SOAP消息并再发送给服务使用者。8)服务使用者收到 SOAP消息后拆封、解密并提取执行的结果。在上面所提到的认证指令是基于XML格式的,所以构造与解析认证指令实际上是对XML的序列化与反序列化的过程,同时执行结果也是XML格式的,所以提取执行结果实际上也是对XML的处理,认证指令的描述见下节。对认证指令及执行结果的加密与否在这里是可选的。当返回的执行结果的信息量很大而对安全性要求不高的内容可以不进行加密而直接返回明文,从而减少加密与解密所花的时间。
2 关键技术的设计与实现
2.1 SOAP消息
2.1.1消息的流程
基于SOAP协议的消息的请求/响应过程经过4个阶段:服务使用者构造SOAP消息、服务提供者接收并解析SOAP消息、服务提供者响应并构造SOAP消息、服务使用者接收并解析SOAP消息。
2.1.2消息的定义
在这里,服务使用者与服务提供者之间是通过SOAP消息的方式相互通信,并根据需要对SOAP消息进行了一些自定义。
其中,元素中的bSecurityFlag属性是加密标志,它的数据类型为值布尔性,取值可以是True和False,分别对应密文和明文两种类型,加密的对象是元素中的内容。元素包含认证指令。
2)SOAP HTTP响应消息格式如下:
2.2认证指令系统
2.2.1认证指令系统模型
为了定义规范的接口,通过模拟命令行系统中的指令系统,构造一个基于XML的指令系统,此模型总体结构由以下几个部分组成:
1)认证指令控制器
认证指令控制器的主要功能是解析用户提交的认证指令。即验证用户的合法性;检查认证指令语法的正确性;对认证指令和返回值进行解密和加密:对系统接口的访问进行日志记录。
2)认证指令执行器
认证指令执行器的目的在于实现有指令语法控制器转交的具体任务。指令执行器接收指令,根据指令进行相应的操作,然后将执行结果以XML格式返回给指令控制器。
3)XML认证语言
XML语言是被多种开发语言良好支持的扩展标记语言,建立在XML基础上的认证语言将很好被其他开发语言解析利用。
2.2.2认证指令格式的定义
通过将指令序列化为XML格式是为了提高它的可读性和跨平台性。当前使用的任何平台,任何语言都能够正确处理与理解XML格式的文件。当使用XML格式的认证语言后它就不再局限于一种平台或一种高级语言的处理,它可以使用于任何平台、任何语言。
1)认证指令格式
其中,元素用于通知认证指令控制器服务请求者提交的指令,认证指令控制器根据元素所包含的内容决定调用何种指令执行器。由于一个指令可能包括多于一个的参数,所以元素的每一个子元素都为一个参数,并且都带有参数类型param Type属性及参数的名称paramName属性。
由于执行结果返回的值不一定只有一个值,例如返回一条记录,而一条记录中又包括了诸多字段,所以使用元素的子元素来返回一条记录中的一个字段,并且还包括字段名称returnName及字段类型retumType。同时又有可能返回多于一条的记录。所以使用元素。服务提供者将不同的执行结果序列化为标准XML格式的内容,而返回给服务使用者后它可以通过将XML反序列化为自己需要的格式并进行相应的处理。
3 结束语
统一身份认证服务作为数字化校园建设的基础,它的架构与建设将直接影响一个学校数字化校园建设的水平及使用周期。构建一个具有可扩展性、跨平台、高可靠性的统一身份认证服务是每个学校都所期望的。本文通过分析、研究国内个别在数字化校园建设方面具有特色的学校的统一身份认证服务,并通过实际设计与构建统一身份认证服务后提出了统一身份认证服务的架构。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
荣登北京市优秀创业项目榜首 云适配获业界认可
海淀区人力社保局推荐的“云适配”项目经过单位推荐、资格初审、专家评审、公示等程序,最终从全市报选的诸多项目中脱颖而出,当选为“北京市创业项目中的引领项目类第一名。”