用WSE在Web服务中验证用户身份

本文介绍了如何利用WSE(Web Services Enhancements)和WS-Security在Web服务中进行用户身份验证。通过实现IPasswordProvider接口,结合UsernameToken验证用户,实现了基于Northwind数据库的CustOrderHist存储过程的WebMethod。客户端通过发送SOAP头调用Web服务,WSE处理大部分安全验证工作,简化了开发流程。
摘要由CSDN通过智能技术生成
一、Web服务安全与WS-Security

  毫无疑问,SOAP和XML Web服务在交互操作和标准上已经完全改变了电子商务领域的格局。

  然而直到最近,在Web服务技术领域仍然存在着一些缺陷,那就是处理消息级别的安全、认证、加密、数字签名、路由和附件等问题的能力。为了解决这些安全问题,像IBM、Microsoft和Verisign 这样的公司和组织正牵头合作制定统一的Web服务安全规范,以便利用它们原有的Web服务交互操作概念和商业模型,他们推出了WS-Security等规范。可以这么说,自从SOAP规范形成以后,WS-Security规范及其后续的工作可能是Web服务技术领域的一次最重要的进步。

  随着WS-Security规范的定稿,各大软件厂商开始认真地考虑为其产品提供使用相同Web服务安全语言的接口和编程工具箱,Web服务开发者也将能够使用这些厂商提供的工具加强他们所开发的Web服务的安全性。

  二、WSE安全性能简介

  Microsoft推出了Web Services Enhancements 1.0 for .NET(以下简称WSE),它是一个类库,用于实现高级 Web 服务协议,这也是该公司的第一个使用WS-Security等规范实现SOAP消息安全的工具套件。

  保护Web服务安全的一个很重要的环节就是保护其SOAP消息传递的安全。

  使用WSE后,SOAP消息可以自己验证其完整性,并可使用定义在WS-Security规范中的机制加密

  WSE1.0支持的所有WS-Security特性都是通过实现SecurityInputFilter和 SecurityOutputFilter对象的安全性输入输出过滤器实现的,它支持的安全特性有:

  1. 数字签名

  2. 加密

  3. 使用用户名令牌签名并加密

  4. 使用X.509证书签名并加密

  5. 使用自定义二进制令牌签名并加密

  WSE1.0不支持Security Assertion Markup Language(SAML,安全声明标注语言),但Microsoft公司正积极在其.NET Server中实现SAML体系结构。当然,开发者自己可以自由的实现SAML。唯一的不足是还不能使用WSDL描述遵循WS-Security规范的Web服务的WS-Security接口。

  WSE的体系结构模型基于处理入站和出站SOAP消息的过滤器管道。它是建立在已有的SOAPExtension类的基础上的,有使用过SOAPExtension类行进压缩、加密、记录和其它操作经验的开发者会发现他们对WSE其实很熟悉。

  WSE提供了一个Microsoft.Web.Services.SoapContext 类,让我们可以处理WS-Security SOAP头和其它入站的SOAP消息头,同时可为出站的SOAP消息添加WS-Security头。WSE还有一个包装类为SOAP请求和响应添加 SOAPContext(与HttpContext类似),同时服务器使用一个SOAPExtension类“Microsoft.Web.Services.WebSe
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值