具有自定义身份验证和X509证书的SOAP客户端呼叫消息

时间:2011-09-12 07:19:53

标签: wcf web-services soap x509certificate wshttpbinding

我使用WCF构建了一个Web服务,并决定使用消息安全性(wshttpbinding)和自定义身份验证(我自己的数据库)和X.509证书。我想知道客户端如何使用SOAP消息调用Web服务以验证和使用我的服务。我想知道我应该在soap header部分添加什么才能调用我的服务,因为我必须从非WCF客户端调用此web服务。

任何帮助将不胜感激

问候

1 个答案:

答案 0 :(得分:1)

这取决于您希望如何使用证书。您可以使用message or transport security,其中传输意味着HTTPS,并且它具有高度可互操作性,消息意味着WS-Security,您的客户端通常需要使用某些特殊的API(手动实现WS-Security和相关协议是一项艰巨的任务)。所以它主要取决于非WCF客户端的类型。有很多用于Java或C ++的API,有些用于PHP,但我不知道任何为Android,iOS或Windows Mobile提供WS-Security功能的API。

用户名和密码也可以通过消息或传输标头传输。前一种方法通常通过标准化的UserName令牌配置文件来实现,该配置文件只有预定义的SOAP头集(WCF将为您执行此操作)。这些标头没有什么特别之处,因此即使没有WS-Security API的非WCF客户端也应该能够轻松使用该服务。后一种方法通常通过基本HTTP身份验证来实现,并且与HTTPS一起,它可以是最具互操作性的解决方案(但如果您在IIS中托管服务并且您不想使用Windows帐户进行身份验证,则可能在WCF站点上存在一些挑战)。