目前在BizTalk中配置WCF端口,我在PortBindingsMaster文件中提供了用户名和密码,任何人都可以看到。这是一个重大的安全漏洞。我希望保持我的用户名和密码加密,并且在BTDF部署时,它应该使用相应的用户名和密码配置相应的WCF端口。
我的当前WCF端口之一的CustomProps配置如下: -
<CustomProps>
<OrderedProcessing vt="11">0</OrderedProcessing>
<BindingConfiguration vt="8">
<binding name="oracleDBBinding" pollWhileDataFound="true"/>
</BindingConfiguration>
<InboundBodyPathExpression vt="8" />
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<AffiliateApplicationName vt="8" />
<BindingType vt="8">oracleDBBinding</BindingType>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<OutboundXmlTemplate vt="8">
<bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml" />
</OutboundXmlTemplate>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<CredentialType vt="8">UserAccount</CredentialType>
<UserName vt="8">Adminxyz</UserName>
<Password vt="8">angf123#%</Password>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
</CustomProps>
如您所见,我在PortBindingsMaster文件中提供用户名和密码。我不想在PortBindingsMaster文件中添加它。任何帮助将不胜感激。
注意: - 我还有一个约束,我甚至无法在我的环境设置文件中添加用户名和密码。
答案 0 :(得分:1)
对于一个特定的客户端,我编写了一个WCF扩展(MessageInspector),它从SSO检索用户名和密码并将它们插入到请求中。
这将告诉您有关WCF消息检查员的更多信息:https://msdn.microsoft.com/en-us/library/aa717047(v=vs.110).aspx
这正是您从SSO存储/检索数据所需的: https://seroter.wordpress.com/2007/09/21/biztalk-sso-configuration-data-storage-tool/
您需要做的是使用该工具将值存储到SSO中。 然后,您的消息检查器将检索它们并将它们发送到请求中,然后再将它们发送出去。它们甚至不会显示在BizTalk跟踪中,因为它们只是在跟踪后才会被添加! (当时对我来说也是一个要求)。
在您需要部署的每个环境中,这些可能会有所不同。 它还为管理员提供了滚动/更改密码的可能性,而无需在绑定中配置或更改任何内容!
希望这有帮助, 彼得
答案 1 :(得分:1)
另一个选项也适用于SSO,但如果适配器有端口,则在端口上使用SSO Affiliate设置。查看我为How can I set SB-Messaging adapter credentials securely?
所做的答案使用此方法,您可以将凭据作为Affiliate应用程序存储在SSO中,并将BizTalk凭据映射到目标凭据。您还需要创建一个SSO票证,但这可以通过BRE管道框架轻松完成。
此方法的一个优点是,您只需为每个环境创建和设置一次凭据,即使您使用BTDF取消部署和重新部署,它们也会持续存在。