![](/img/trans.png)
[英]Decrypt a blob from Azure blob storage with key vault using version 12.x Azure storage libraries
[英]Decrypt WCF callback with Certificate from Azure Blob Storage
我是WCF的新手,我正在使用customBinding(他们不是我的)使用安全的WCF服务。
var sbe = SecurityBindingElement.CreateMutualCertificateDuplexBindingElement(MessageSecurityVersion.WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10);
sbe.EndpointSupportingTokenParameters.Signed.Add(new UserNameSecurityTokenParameters());
sbe.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10;
sbe.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic256Rsa15;
sbe.AllowSerializedSigningTokenOnReply = true;
sbe.IncludeTimestamp = true;
sbe.SecurityHeaderLayout = SecurityHeaderLayout.Lax;
sbe.MessageProtectionOrder = MessageProtectionOrder.EncryptBeforeSign;
编辑:
决定简化新要求以确定是否有帮助。
我想有一个回调端点,它使用单个合同并使用上面的绑定。 问题是发送到此服务的邮件将由不同的证书(我们的客户端公共证书)加密。
我不希望有数百个端点,我可以明确指定用于解密的证书,因为我们可能需要修改/添加/删除,因为我已经发现,你不能在serviceHost打开后执行此操作我们无法服务下来/重启它。
是否有可能拦截消息,解密并以某种方式传递它? (我现在正在查看消息拦截,看看这是否可行)。
消息拦截和解密
请参阅此链接使用WCF解密安全令牌
在处理相互证书身份验证时,您拥有客户端证书的私钥。
使用Message Inspectors,可以拦截传入的消息,并使用客户端证书的私钥对其进行解密。
在WCF服务的使用者端使用AfterReceiveReply事件来覆盖WCF中的解密逻辑
public void AfterReceiveReply(ref Message reply, object correlationState)
{}
Message Inspectors必须包含在配置文件的绑定扩展中
<extensions>
<behaviorExtensions>
<add name="customMessageInspector" type="WCFComponents.CustomMessageInspector.CustomMessageInspectorBehaviorElement, WCFComponents"/>
</behaviorExtensions>
</extensions>
并且此行为必须包含在WCF代理端点行为中
var behavior = new CustomMessageInspectorBehavior();
_serviceProxy.Endpoint.Behaviors.Add(behavior);
在此处下载示例WCF消息检查器项目
您必须执行WCF自定义才能实现此目的。
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.