2014-01-28 85 views
1

我有一个BizTalk应用程序启动并正在运行当前正在使用WCF-BasicHttp适配器。目前它仅使用使用UserName凭证类型的Message安全性,并且所有工作都正常。将非BizTalk WCF配置转换为BizTalk WCF定制端点

事情已经发生变化,我们现在需要接受传输(IIS)级别的客户端证书以进行服务授权,并且仍然继续使用消息安全性进行服务验证。

多的痛苦和搜索之后,我能得到这个在非的BizTalk WCF环境中工作立足我这个this post位的配置,并结束了与以下customBinding配置:

<customBinding> 
    <binding name="CustomCDARequestEndpointBinding">      
     <textMessageEncoding messageVersion="Soap11" /> 
     <security authenticationMode="UserNameOverTransport" /> 
     <httpsTransport requireClientCertificate="true" /> 
    </binding> 
    </customBinding> 

这导致了WCF客户端配置,如下所示:

<customBinding> 
    <binding name="CDARequestEndpoint"> 
     <security defaultAlgorithmSuite="Default" authenticationMode="UserNameOverTransport" 
     requireDerivedKeys="true" includeTimestamp="true" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"> 
     <localClientSettings detectReplays="false" /> 
     <localServiceSettings detectReplays="false" /> 
     </security> 
     <textMessageEncoding messageVersion="Soap11" /> 
     <httpsTransport requireClientCertificate="true" /> 
    </binding> 
    </customBinding> 
</bindings> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="ohBehave"> 
     <clientCredentials useIdentityConfiguration="false"> 
     <clientCertificate findValue="6D0DBF387484B25A16D0E3E53DBB178A366DA954" storeLocation="CurrentUser" 
      x509FindType="FindByThumbprint" /> 
     </clientCredentials> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

这工作完全正常在非的BizTalk环境,这似乎是配置的关键部分是由于的<httpsTransport requireClientCertificate="true" /> config元素属性。问题是,无论我尝试什么,我都无法在任何地方的BizTalk WCF-Custom/customBinding配置中找到类似的设置。我不能添加<httpsTransport>绑定元素扩展,因为它不”在BizTalk

enter image description here

为存在于选项有谁知道我的选择是在这里吗?

  • 我可以直接编辑web.config吗?
  • 是否有另一个扩展我可以添加到BizTalk GUI中实现相同的效果?
  • 我可以在编排中编写一些东西,以我提议的方式手动设置这个接收位置吗?

回答

2

因为WCF-BasicHttp适配器只表面某些属性,你不能使用你的目的。

相反:

  1. 开始与WCF的自定义适配器
  2. BindingType = customBinding
  3. 删除httpTransport
  4. 添加httpsTransport(然后你会看到requireClientCertificate)
  5. 添加clientCredentials行为和在“凭据”选项卡中设置您的选项和凭据。
+0

我想我并不清楚,我已经使用WCF的自定义适配器......有一件事我根本就没想到做的是删除'httpTransport' ......更别说它会暴露'httpsTransport'。这给了我希望! – Bensonius

+0

这是它boatmen!虽然现在看起来很明显,当httpTransport已经存在时,GUI不会显示httpsTransport元素,但当它是您第一次进入customBinding配置屏幕时,似乎并不明显,这是肯定的。 – Bensonius