基于WSE安全断言实现Web服务身份验证(全文)_第1页
基于WSE安全断言实现Web服务身份验证(全文)_第2页
基于WSE安全断言实现Web服务身份验证(全文)_第3页
基于WSE安全断言实现Web服务身份验证(全文)_第4页
基于WSE安全断言实现Web服务身份验证(全文)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于WSE安全断言实现Web服务身份验证XX:1009-3044(20XX)18-31530-02IdentityuthentictionBsedonWSESecurityssertionsCHENJi-hong,HUHui(JinlingInstituteofTechnology,Nnjing210001,Chin)bstrct:WiththewideuseofWebServicesindistributedsystems,theissuesofWebServicessecurityrebecomingincresinglyprominent.Thepperintroducesthemeth

2、odofimplementinguthentictionofWebServiceswithUsernmeForCertifictessertionSecurityssertion,thenillustrteIdentityuthentictionofWebServiceswithWSE.Keywords:WSE;Securityssertion;WebServices1引言越来越多的公司使用Web服务通过Internet和公司Extrnet将自己的产品和服务展示给客户和商业伙伴。在这些服务中安全是极为重要的。在XX络是Intrnet或者Extrnet的情况下,我们可以在一定程度上操纵两端的终结

3、点,这时可使用平台级的安全服务提供点到点的安全解决方案。但是,Web服务基于消息的体系结构和跨越信任边界的异构环境对安全问题提出了新的挑战。这时,我们就必须解决跨中间结点的消息级安全。要实现Web服务安全,主要就是要实现以下两个方面的安全要求:1)身份验证要求如果您的Web服务提供敏感的信息,就需要对调用方进行身份验证以支持授权。在Windows环境中,可以使用Windows身份验证。但是,当您不能操纵两端的终结点的时候,可以使用WSE提供身份验证解决方案。WSE为使用SOP头传递身份验证详细信息提供了一个标准框架。2)私密性和完整性要求如果要在Web服务请求或者响应消息中传递敏感的应用程序数

4、据就要考虑如何才能保证它们在传输过程中保持私密性、防止被修改。WSE通过数字签名提供了完整性检查,它还支持对SOP消息整体或部分加密。WSE安全断言Microsoft已经公布了Web服务Enhncements3.0forMicrosoft.NET(WSE),它支持WS-Security以及一系列相关安全标准。我们可以使用WSE实现WEB服务消息级安全,包括身份验证、加密和数字签名。WSE3.0一共定义了六种总控钥匙安全断言,分别是:nonymousForCertifictessertion、sernmeForCertifictessertion、UsernmeOverTrnsportssert

5、ion、MutulCertificte10ssertion、MutulCertificte11ssertion、Kerberosssertion这些安全断言是WSE3.0中提供的最重要的安全功能,我们可以使用这六种安全断言中的任何一种实现Web服务身份验证。其中,UsernmeForCertifictessertion是使用比较多的一种安全断言,它采纳对服务器端使用X.509证书进行验证,对客户端使用用户名令牌(UsernmeToken)进行验证的方式实现Web服务身份验证。实例分析以下将结合一个虚拟的手机话费余额查询的Web服务的例子,讲述如何在Web服务中使用UsernmeForCerti

6、fictesser?tion安全断言来实现Web服务的身份验证。使用UsernmeForCertifictessertion安全断言时,服务器必须配置一个X.509证书及其相关的私钥,客户端需要配置有自己的用户名/密码令牌,以及服务器端分配的X.509证书(仅公钥)。实现步骤如下:(1)平台的构建本实例应用程序采纳visulstudio20XX开发,同时配合WSE3.0实现Web服务的身份验证。为了使用X.省略平台下的两个工具软件mke?cert.exe和certmgr.exe。mkecert.exe是证书创建工具,它生成仅用于测试目的的X.509证书,它创建用于数字签名的公钥和私钥对,并将其

7、存储在证书文件中,此工具还将密钥对与指定发行者的名称相关联,并创建一个X.509证书,该证书将用户指定的名称绑定到密钥对的公共部分。certmgr.exe证书治理器工具用于治理证书、证书信任列表(CTL)和证书吊销列表(CRL)。现在,我们就运行这两个工具创建并安装证书:mkecert.exe-srLoclMchine-ssMy-sh1-n“CN=WSEQuickStrtServer”-skyexchnge-pecertmgr.exe-dd-rLoclMchine-sMy-c-n“WSEQuickStrtServer”-rCurrentUser-sddressBook特别注意:服务端和客户端都

8、要安装刚才创建好的证书。创建一个名为“mobile.省略Web服务项目,为项目添加Microsoft.Web.Services3.dll引用,并在Service.cs文件中添加语句“usingMicro?soft.Web.Services3;”,引用和名称空间添加好之后,我们就可以使用WSE了,如果WSE安装时选择的是和visulstudio开发环境集成,那么此时你就可以直接右击Web服务项目,从弹由菜单中选择“WSESettings3.0”菜单项,进入WSESettings配置界面,在Generl选项卡中选中复选框“EnblethisprojectforWebServicesEnhnceme

9、nts”和“EnbleMicrosoftWebServicesEnhncementSOPProtocolFctory”,启用WSE保护,在Policy页新建一个名为ServicesPolicy的安全策略,然后设置此安全策略,其中,应用类型选择“secureserviceppliction”,客户端验证方式选择“usernme”,即采纳UsernmeForCertifictessertion安全断言;启用WS-Security1.1扩展,并在保护级别中选择“SignndEncrypt”,也就是说SOP消息必须签名和加密;然后选择服务端的X.509证书。安全策略建立好之后,通过在Web服务类ser

10、vice.省略/)WebServiceBinding(ConformsTo=WsiProfiles.BsicProfile1_1)Policy(ServicesPolicy)publicclssService:System.Web.Services.WebService/省略其它代码WebMethodpublicstringreturnBlnce(stringphoneNum)stringblnce=;stringmyConnString=Provider=Microsoft.Jet.OLEDB.4.0;DtSource=f:wsetestmobile.mdb;stringmySelectQu

11、ery=select*frommobilewherephoneNum=+phoneNum+;OleDbConnectionmyConnection=newOleDbConnection(myConnString);OleDbCommndmyCommnd=newOleDbCommnd(mySelectQuery,myConnection);myConnection.Open();OleDbDtRedermyReder;myReder=myCommnd.ExecuteReder();if(myReder.Red()blnce=myReder.ToString().Trim();myConnecti

12、on.Close();returnblnce;elsemyConnection.Close();returnError;同时,为了使服务端能够对客户端传递过来的用户名令牌进行验证,我们需要在项目中添加一个从类UsernmeTokenMnger继承的类MyUsernmeTokenMnger,代码片断如下:/省略其它代码usingMicrosoft.Web.Services3.Security;usingMicrosoft.Web.Services3.Security.Tokens;usingSystem.Dt;usingSystem.Dt.OleDb;nmespceWSETest/省略其它代码p

13、rotectedoverridestringuthenticteToken(UsernmeTokentoken)string phonePsd;stringmyConnStringProvider=Microsoft.Jet.OLEDB.4.0;Dt=f:wsetestmobile.mdb;SourcestringmySelectQuery=select*frommobilewherephoneNum=+token.Usernme+;OleDbConnectionmyConnection=newOleDbConnection(myConnString);OleDbCommndmyCommnd=

14、newOleDbCommnd(mySelectQuery,myConnection);myConnection.Open();OleDbDtRedermyReder;myReder=myCommnd.ExecuteReder();if(myReder.Red()phonePsd=myReder.ToString();myConnection.Close();returnphonePsd;elsemyConnection.Close();returnError;再次进入WSESettings配置界面,在Security页中添加一个SecurityTokenMnger。在BuiltInTokenM

15、ngers中选择“UsernmeTokenMnger”,然后将type改为“WSETest.MyUsernmeTokenMnger”,点击“dd”添加。这表示将由MyUsernmeTokenMnger类来处理用户名令牌,MyUsernmeTokenMnger类中的重载函数uthenticteToken是用来验证客户端提交的用户名和密码的函数。如果验证成功,就同意调用WebServices查询话费余额;否则就会拒绝调用余额查询WebServices。(3)客户端应用程序开发在vs20XX的解决方案中添加一个windows应用程序项目作为客户端应用程序,同样要添加Microsoft.Web.Ser

16、vices3.dll引用,并在Form1.cs文件中添加语句“us?ingMicro?soft.Web.Services3;”,同时,为了调用Web服务,我们需要在项目中添加一个到服务端Web服务的一个引用,以此作为服务代理,使我们在客户端应用程序中能调用Web服务。然后,我们也要为客户端设置WSE,在Policy页新建一个名为“Client?Policy”的安全策略,应用类型选择“se?cureclientppliction”表示是客户端程序。证书选择服务端分配的X.509证书,用此证书的公钥对用户令牌进行签名和加密,其它的设置和服服端类似。客户端代码片断如下:/省略其它代码usingMic

17、rosoft.Web.Services3.Design;usingMicrosoft.Web.Services3.Security;usingMicrosoft.Web.Services3.Security.Tokens;usingMicrosoft.Web.Services3.Security.X509;usingWSEClientWin.svc;nmespceWSEClientWin/省略其它代码ServiceWsesw=newServiceWse();/省略其它代码privtevoidbutton1_Click(objectsender,Eventrgse)stringphoneNum=textBox1.Text.Trim();stringPhonePsd=textBox2.Text.Trim();UsernmeTokenuToken=newUsernmeToken(phoneNum,PhonePsd);sw.SetClientCredentil(uToken);sw.SetPolicy(ClientPolicy);lbel3.Text=lbel3.Text+sw.returnBlnce(phoneNum)+元;客户端界面如图1所示:图1客户端界面客户端程序运行后,点击“查询”按钮,客户端应用程序用手机号码和密码创建一个令牌,并且

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论