如何针对这组安全要求配置 WCF 客户端

Posted

技术标签:

【中文标题】如何针对这组安全要求配置 WCF 客户端【英文标题】:How to configure WCF client for this set of security requirements 【发布时间】:2012-10-29 18:18:23 【问题描述】:

我的客户有一些 SAP 服务,我需要调用它。我有预先生成的代理类,一切正常(当他们禁用安全性时),现在我需要启用他们的安全策略。他们给了我这个“规范”:

SOAP 1.1 SSL 仅 WS-Security 签名,可选加密...

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf

他们服务的 SAP 声明:

XML 签名的消息格式

SOAP 消息必须包含以下数据:

a) BinarySecurityToken 与 值类型“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3” 和 EncodingType "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"

b) 时间戳元素

c) 签名签名时间戳和正文,使用直接引用引用 BinarySecurityToken。

d) 摘要算法为http://www.w3.org/2000/09/xmldsig#sha1

e) 签名算法为http://www.w3.org/2000/09/xmldsig#rsa-sha1

这些信息足以让我完成这项工作吗?我不是 WCF 安全方面的专家,因此我很乐意提供任何帮助和有用的资源。

【问题讨论】:

【参考方案1】:

听起来您需要利用 WCF 消息检查器来拦截您发送和接收的消息并应用自定义的 soap 标头。

查看以下链接以获取有关如何实施它们的一些指导:

    MSDN - IDispatchMessageInspector - 修改发送的消息 MSDN - IClientMessageInspector - 拦截和阅读您收到的消息 Paolo Pialorsi Blog - Writing a WCF Message Inspector Kirk Evans Blog - Modify Message Content With WCF Steven Cheng Article - How to inspect and modify WCF message via custom MessageInspector

希望这会有所帮助。

【讨论】:

你刚刚成功地把我吓坏了 :) 我要去看看,谢谢 ;) 哈哈...如果您有任何其他问题,请回帖,我不久前实施了其中一些,并且知道设置起来可能很繁琐。 @Tanner 嘿伙计,单独的问题。抱歉恢复旧线程。我的 WSDL 包含一个时间戳,但它也需要对其进行签名。如何手动签署我的时间戳? (它是安全标头(WS-Security)的一部分)我对此有疑问:***.com/questions/50876441/…【参考方案2】:

我觉得你应该问问对方等待的肥皂信封。然后可能使用 CustomBinding 或实现 Message Inspector 接口。

【讨论】:

以上是关于如何针对这组安全要求配置 WCF 客户端的主要内容,如果未能解决你的问题,请参考以下文章

从 .Net 2.0 客户端调用 WCF 服务时如何配置安全性

如何仅针对某些端点从 WSDL 生成 WCF 客户端?

如何配置 WCF 以通过 Internet 使用 x509 证书?

WCF系列如何配置和承载服务

如何更改 wcf 客户端中的时间戳安全标头?

具有 basicHttpBinding、传输安全性和基本客户端凭据类型的自定义 WCF 凭据验证器