流程描述如下:
1) 用户登录时将用户名、口令提交给VOD系统;VOD系统将用户名转发给身份认证系统。
2) VOD系统将用户名、口令和时间戳一起加密后形成字符串PWD。
3) 同时,身份认证系统根据得到用户名查得用户的注册密码,并把用户名、注册密码、时间戳一起加密后形成字符串PASS。
4) VOD系统把PWD发送给身份认证系统。身份认证系统比较两者是否一致
5) 如果一致则允许用户进入VOD系统的页面。用户选择观看的影片
6) VOD系统再次生成PWD,身份认证系统再次生成PASS,并再次比较两者是否一致。如果一致,则播放影片
3.3 通用接口
为了能让运行在不同的平台上的内容业务系统都能够访问身份认证系统,并且让身份认证系统能够不断地集成新的内容业务系统,当身份认证系统统一认证功能和安全方面的功能后实现以后,我们利用WEB SERVICES技术架构,把身份认证系统转换成身份认证服务。
该服务把身份认证系统提供的各项功能用WSDL语言描述成通用的服务接口,在这个接口中描述了身份认证服务提供给内容业务系统使用的一个函数,该函数的入口参数是用户名、用户口令和内容业务系统的ID;出口参数是该用户能否访问该内容业务系统的字符串。
以下是身份认证接口的WSDL描述:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="railwayhelperRemoteInterface" targetNamespace="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<message name="loginRequest">
<part name="userid" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="serviceid" type="xsd:string"/>
</message>
<message name="loginResponse">
<part name="result" type="xsd:string"/>
</message>
<portType name="railwayhelperJavaPortType">
<operation name="login">
<input name="loginRequest" message="tns: loginRequest"/>
<output name="loginResponse" message="tns: loginResponse"/>
</operation>
</portType>
<binding name="railwayhelperBinding" type="tns:railwayhelperJavaPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<soap:operation soapAction="" style="rpc"/>
<input name="loginRequest">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/>
</input>
<output name="loginResponse">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/>
</output>
</operation>
</binding>
</definitions>
在这个接口中描述了身份认证服务提供的login函数,该服务的入口参数为:userid为用户名、password为用户名、口令和时间戳一起加密后得到的字符串PWD、serviceid内容业务系统编号,返回值是否允许用户登录该内容业务系统的字符串。
不论内容业务系统运行在何种平台上,只要根据WSDL接口的描述和SOAP协议规范,把用户名和PWD用SOAP消息发送给身份认证服务,身份认证服务就会把认证结果用SOAP消息返回个内容业务系统。内容业务系统不必了解认证服务是怎样实现的,从而实现跨平台的通用认证。
4 结束语
上述的宽带门户网站的身份认证方案已经实际应用于了湖南铁通宽带门户网站,取得了良好的效果。
参考文献
[1] 张建伟,李鑫 ,张梅峰. 基于MD5算法的身份鉴别技术的研究与实现[J]. 计算机工程,2003,(3): 118-119
[2] Microsoft Corporation. Web安全威胁与对策[EB/OL],
[3] 尹逊玉. 广电综合宽带门户网站及流媒体工程建设要点分析[J]. 现代电视技术,2004,(9): 65-71
[4] 柴晓路. Web Service Case Study: 统一身份认证服务[EB/OL],
[5] 王芝虎, 葛 声, 张力军. 企业级J ava Web 服务的研究与实现[J].计算机应用研究,2005,(1): 128-133
[6] 沈 斌1 ,史鸣杰2. 统一身份认证平台的设计[J].南京师范大学学报,2004(6):73-75
[7] Web Service Description Language (WSDL) 1.0, IBM, 25 Sep 2000
[8] SOAP: Simple Object Access Protocol Specification 1.1[EB/OL]. IBM, Microsoft, DevelopMentor, 2000
[9] XML Schema Part 0: Primer [J/OL]. W3C, 2 May 2001
[10] Extensible Markup Language (XML) 1.0 (Second Edition) [J/OL], W3C, 6 Oct 2000