建设数字化校园的目标是消除校园网中的信息孤岛,整合校园网中的各种应用系统并实现统一的身份认证服务机制。运用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认证指令系统模型
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。