基于SOAP协议的能力开放平台安全中心的设计与实现2012-09《电信网技术》
梁龙1,2 李炜1,2 王纯1,2
1 北京邮电大学网络与交换国家重点实验室,北京(100876)
2 东信北邮信息技术有限公司,北京(100191)
E-mail:lianglong@ebupt.com
摘 要:现阶段,开放平台发展迅速,电信运营商旨在开放电信能力的能力开放平台也在迅猛发展。在开放平台本身和依托运行在开放平台上的应用之间的交互过程中,安全问题是必不可少的一个重要环节。在目前开展的业务中,对应用权限的鉴权和安全保证混合在一个网元,安全级别及通用性都较低,且难以实现应用鉴权和安全保证的解耦合。本文设计了一种基于SOAP协议的能力开放平台安全中心,设计了一个独立的安全保证网元,通过提供安全认证的Web Services,降低了开发的难度。
关键词:开放平台;安全中心;SOAP;Web Services
Design and Implementation of Security Center for OMP based on SOAP
Liang Long1,2 Li Wei1,2 Wang Chun1,2
1. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China
2. EBUPT Information Technology Co. Ltd, Beijing 100191, China
Abstract: Open plateform is developing rapidly nowdays, and OMP(Open Mobile-Internet plateform) by China Moble Communication Co. Ltd is also on its commercial way. Safety is essential to the interaction process between the open plateform and the applications run on it. In current operations, authentication and security to ensure the applications’ permissions are mixed in a network element, the level of security and versatility is low and it is difficult to achieve the decoupling of application authentication and security guarantees. This paper designed an Security Center of open platform based on the SOAP protocol. It used an independent safety assurance network element via the Web Services to provide security certification, to reduce the difficulty of development.
Keywords:Open Plateform,Security Center;SOAP;Web Services
1 引言
进入21世纪后,以互联网为核心的在线软件服务SaaS(Software as a Service)的发展势头突飞猛进,甚至于将掀起一场势不可挡的新技术革命,整个软件产业向SaaS转型已经成为必然趋势[1]。国内外SaaS模式的企业雨后春笋出现,如国外Salesforce公司的CRM(Customer Relationship Management),国内金山公司的快盘产品。从SaaS产业的发展来看,SaaS的平台化是必然的方向。 SaaS厂商通过开放平台的理念,将原先单独的软件服务,转变成为基于原有软件服务的开放平台,吸引更多的第三方开发者和独立软件提供商到该平台发展,最终期望实现开放平台厂商与第三方开发者共赢的目的。
在SaaS平台下,不仅需要一个通用的访问协议满足不同Web服务(Web Services)[2]发布的需求,同时,还需要一个安全的访问机制以保障平台以及集成服务的安全性[3]。基于口令的认证机制以其使用的方便性、实施的简单性以及成本的低廉性而得到广泛的应用。在传统的基于口令的认证机制中,服务器端以明文方式保存用户口令表。这种机制存在着较大的安全隐患[4]。Web服务以其标准化、松散耦合、语言中立、平台无关性、开放性等特征,可以为用户提供单一方便、安全可靠的认证服务。所以,Web Services架构迅速成为开放平台安全中心设计的方案之一。
2 安全中心在能力开放平台中的位置和实现技术
1
2
2.1 安全中心在能力开放平台中的位置
能力开放平台体系架构将认证、密钥协商和管理等功能,从业务平台中剥离开来,集中在能力开放平台安全中心实现,并将这些安全相关的服务通过Web服务发布出来。利用这种方式,可以简化能力开放平台上业务开发的复杂性,屏蔽终端形态和网络多样性差异[4]。该体系架构可以支持基于安全组件的移动终端应用、基于安全中间件的移动终端应用和Web应用。能力开放平台安全中心的体系架构如图1所示。
图1 安全中心在能力开放平台中的位置
能力开放网关主要完成对应用开放安全认证接口、能力调用接口等,使应用调用方式统一、简洁。
AuS(Authentication Subsystem)主要负责完成对能力开放平台应用信息、用户订购关系统一管理,将用户身份认证、安全Token请求向安全中心全代理转发。
安全中心(Security Center)是东信北邮公司基于《中国移动能力开放平台安全规范》、支持多种应用场景的安全网元。Security Center主要针对能力开放平台上应用的认证需求,实现了与移动终端应用、Web应用的密钥协商,生成和分配Token功能。
2.2 能力开放平台安全中心实现技术
Web Services 是一个用来支持在网络上可以互操作的机器之间交互作用的软件系统, 它有一个用机器处理格式WSDL(Web Services Description Language)来描述的接口。和Web Services交互作用的系统在一定意义上被规定通过使用SOAP(Simple Object Access Protocol)消息的描述来进行, 典型的情况是利用XML(Extensible Markup Language)的串行化和其它Web相关的标准通过HTTP(Hypertext Transfer Protocol)被传送。实际上, Web 服务是基于XML通过HTTP, SMTP(Simple Mail Transfer Protocol)等协议所构建的远程过程调用。Web Services 使用一系列标准和协议实现其功能, 通过使用WSDL来描述服务, 而SOAP 被用来执行服务调用[5]。
WSDL提供了一个描述Web Services的模型和XML格式。WSDL使得一个服务的抽象的功能描述和具体的实现细节相分离,这些具体的细节表示功能是如何实现的。
SOAP消息基于XML扩展,主要包含3个主要的元素:Envelope,Header和Body。Envelope是SOAP消息的根元素,这个元素在SOAP消息中必须存在,它告诉接收方SOAP消息的基本情况。Header是可选的元素,主要的作用是传递辅助性的附加消息,比如身份验证、会话等。Body元素是SOAP消息体,包含数据或者错误消息。
Apache Axis[5]是一个Web Services/SOAP引擎,是实现Web Services的一种技术架构。本文使用的是axis1.4。
本文基于SOAP协议的框架,引入独立的开放平台安全中心(Security Center)网元,设计实现了一种通用的安全级别比较高的第三方鉴权方式,这种通用的方式适用于各种不同的业务。
3 基于SOAP协议的能力开放平台安全中心设计
图2 应用与能力开放平台安全中心交互流程图
1. 终端应用或者Web应用向安全组件/安全中间件查询Token是否存在
2. 安全组件/安全中间件检查本地是否有Token,且验证Token是否在有效期内。如果存在Token且在有效期内,则进入步骤10;否则进入步骤3
3. 安全组件/安全中间件向能力开放网关发起申请Token请求,在HTTP参数中带有所需的参数;
4. 能力开放网关向AuS转发ISMAP协议的申请Token请求;
5. AuS向Security Center转发SOAP协议包装的申请Token请求;
6. Security Center校验申请Token请求的参数,校验通过后,生成Token和Token有效期;
7. Security Center向AuS返回申请Token请求的SOAP协议格式响应,包含Token信息和Token有效期;
8. AuS向能力开放网关返回申请Token请求的ISMAP协议格式响应,包含Token信息和Token有效期;
9. 能力开放网关向安全组件/安全中间件返回申请Token请求的HTTP协议格式响应,包含Token信息和Token有效期;
10. 应用通过安全组件/安全中间件向能力开放网关发起HTTP协议的业务请求,携带在有效期内的Token;
11. 能力开放网关向AuS发起ISMAP协议的业务请求,携带在有效期内的Token;
12. AuS向Security Center发起SOAP协议的验证Token的请求;
13. Security Center验证Token是否有效;
14. Security Center向AuS返回验证Token请求的SOAP协议格式响应;
15. AuS向能力开放网关返回ISMAP协议格式的业务请求的响应;
16. 能力开放网关向应用安全组件返回HTTP协议格式的业务请求的响应。
4 基于SOAP协议的能力开放平台安全中心实现
4
Web Services的创建分为两部分:服务端创建和客户端创建
4.1 Web Services服务端创建:
1. 根据能力开放平台上的安全需求,提取出Security Center对外的Web Services接口,并定义接口的名称、绑定的操作、输入输出参数。
2. 根据WSDL的书写规范,把步骤1提取的Web Services接口用WSDL描述出来;
3. 使用在命令行下,设置Axis_lib[7]的路径,输出源码的路径、包名等如下:
set Axis_Lib=D:\ lib //下载axis.jar后安放的本机路径
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% //设置JDK的参数
set Output_Path=D:\ securitycenter \src\main\java //设置生成的服务端代码位置
set Package=com.**.server //设置生成的服务端代码包名
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path% -p %Package% --server-side securitycenter_service.wsdl // securitycenter _service.wsdl就是步骤2完成的WSDL
4. 生成WSDL服务端代码,修改***Impl.java(***是步骤2定义的WSDL中的binding name),增加Web Services的处理逻辑;
5. 完成步骤4后,将securitycenter打包发布到tomcat中,启动tomcat。在步骤3生成的服务端代码路径下,有一个名为deploy.wsdd的文件,在该路径下,执行命令行:
set Axis_Lib=D:\ lib //同步骤3,下载axis.jar后安放的本机路径
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% //同上
%Java_Cmd% org.apache.axis.client.AdminClient -l http://localhost:8080/safecenter/services/AdminService deploy.wsdd //发布Web Services
6. 此时,在浏览器中输入http://localhost:8080/safecenter/services就能够看到已经发布的Web Services。访问Web Services的地址是http://localhost:8080/securitycenter /services/***** 其中*****是步骤2定义的WSDL中port name。至此,Web Services的服务端已经开发完成。
4.2 Web Services客户端创建
1. 根据上述步骤2得到的WSDL,执行下面脚本
set Axis_Lib=D:\ lib //下载axis.jar后安放的本机路径
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% //设置JDK的参数
set Output_Path=D:\safecenter\src\main\java //设置生成的服务端代码位置
set Package=com.**.server //设置生成的服务端代码包名
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path% -p %Package% safecenter_service.wsdl // safecenter_service.wsdl就是上述步骤2完成的WSDL
基本同上述步骤3,脚本区别就是去掉了 --server-side
2. 此时,Web Services客户端代码生成完毕。
5 结束语
在开放平台中,应用与平台认证鉴权的方式多种多样[7]。本文设计并实现了一种基于SOAP协议的能力开放平台安全中心,为共享密钥分发、身份认证、Token维护等提供了一个比较通用的实现方法。整个基于SOAP协议的能力开放平台安全中心已经在广东移动MM(Mobile Market)支撑平台中测试运行,达到了预期的效果。
参考文献
[1] 叶伟 互联网时代的软件革命: SaaS 架构设计[M] .北京:电子工业出版社, 2008.
[2] Austin D,Barbir A,Garg S.W3C Web services architecture requirements .http://www.w3.org/TR/2004/NOTE-wsa-reqs-20040211/.
[3] 曾巧文,陈新度,吴磊 基于SOAP消息SaaS平台应用访问控制模型. 机电工程技术 2010年第39卷第10期:27-31
[4] 刘军,廖建新,朱晓民,王纯 用于移动计算环境的口令认证协议研究. 通信学报 2007年5月第28卷第5期:36—42
[5] 任亚梅,李炜基于GBA的认证鉴权流程. 计算机系统应用. 2011年第20卷 第2期:137-140
[6] 王泰翔,程明琦基于AXIS构建Web服务的研究. 太原理工大学学报. 2005年5月第36卷第3期:313-315
[7] McGuire C, Roth C, Carroll D. P1atform Fundamentals——
An Introduction to Custom Application Development in the Cloud [M] . USA: Salesforce corn,inc,2008.