一、 问题提出
在BizTalk应用集成项目中,BizTalk集成了多个应用系统,在BizTalk应用里很可能会出现有多个(甚至很多)端口指向同一个应用(这个应用可能是SAP系统,也可能是一个SQL Server的数据库),类似这样:
在每个端口的设置中都需要设置用户凭据,如果是SQL Server的话,就是SQL的用户名和密码:
一般使用中都是对每个端口分别就行设置,分别设置每个端口的用户凭据,输入用户名和密码。
如果端口不多的情况下,这么做也很正常,但是如果针对某一个系统的端口比较的的时候,比如连接到外部一个SQL Server数据库的端口有几十个,那么每个端口都需要输入一遍同样的用户名密码将是很麻烦的事情。
二、 解决方案
针对这样的情况,有个很好的解决方案。BizTalk本来就依赖也ESSO(Enterprise Single sign-on)服务,用来保存物理端口的配置参数,而ESSO具有用户映射的功能,即把Windows的用户映射为外部用户。
每个BizTalk的物理端口都会运行在某个BizTalk的主机实例下,而每个BizTalk的主机实例都是一个Windows服务,由一个Windows账户启动。所以我们只需要把运行这些端口主机实例的那个Windows账号统一映射为某一个账户就可以实现统一设置了。
下面是具体步骤:
1、 建立SSO关联应用
在ESSO中建立关联应用,针对需要映射用户的外部系统在SSO中建立关联应用,比如BizTalk需要跟外部一个TestApp的应用连接,并且有很多端口指向这个系统,而这个系统暴露给BizTalk的是个Sql server数据库。
打开SSO Administration,新建一个关联应用:
创建一个叫TestApp的关联应用,一路默认设置:
2、 新建用户映射
在新建的关联应用中,新建一个用户映射:
选择需要映射的Windows账户,这个账户是运行这个应用对应那些端口的BizTalk主机实例的那个Windows账户,必须是域账户。外部用户就是TestApp的Sql server数据库给BizTalk系统提供的访问数据的用户:
为数据库用户设置密码:
用户映射建立后:
可以看出,在TestApp应用中,sql2008这个域用户映射到外部SQL数据库的gkj这个用户,用户的密码也保存在ESSO数据库中。
3、 端口中设置
先查看主机实例,BizTalkServerApplication主机实例的启动用户为cmict\sql2008,即为前面ESSO中设置的用户映射的那个Windows域用户。
再看一个连接TestApp的sql端口的设置,注意主机实例为BizTalkServerApplication,说明此端口对应的Windows的用户就是cmict\sql2008:
端口配置,在WCF-SQL端口的属性中,凭据标签,选择“使用单一登录”,关联应用选择TestApp即可:
在TestApp已经设置cmict\sql2008映射到外部用户gkj,并保存了密码,所以BizTalk根据这里的设置会到ESSO数据库中查到gkj用户和密码,作为用户凭据访问外部数据库。
所有连接TestApp应用数据库的端口,用户凭据的设置都可以选择使用ESSO凭据,指向TestApp即可,无需给每个连接TestApp应用数据库的端口分别设置用户名和密码。

![clip_image002[4] clip_image002[4]](http://images0.cnblogs.com/blog/11951/201303/12150144-16911770ce62438f96752b58642184d4.jpg)
![clip_image004[4] clip_image004[4]](http://images0.cnblogs.com/blog/11951/201303/12150145-ea1178cceef645a796d8b237fbdfa1a3.jpg)
![clip_image006[4] clip_image006[4]](http://images0.cnblogs.com/blog/11951/201303/12150145-58bd643b18ae4977b72639717be8deb3.jpg)
![clip_image008[4] clip_image008[4]](http://images0.cnblogs.com/blog/11951/201303/12150146-268a170806274c73a4c95cc0a82e4d81.jpg)
![clip_image010[4] clip_image010[4]](http://images0.cnblogs.com/blog/11951/201303/12150147-1234e28713a84845b1200468c54ca8b6.jpg)
![clip_image012[4] clip_image012[4]](http://images0.cnblogs.com/blog/11951/201303/12150148-477dc0990b4041ef9707e162658208f9.jpg)
![clip_image014[4] clip_image014[4]](http://images0.cnblogs.com/blog/11951/201303/12150149-18a87fc538d546c8811ef061cc9f8033.jpg)
![clip_image016[4] clip_image016[4]](http://images0.cnblogs.com/blog/11951/201303/12150149-717af983800c4ef9bc88e3b1d8d31fde.jpg)
![clip_image018[4] clip_image018[4]](http://images0.cnblogs.com/blog/11951/201303/12150150-de1d71643a5f46608a91c74d3e49bb0f.jpg)
![clip_image020[4] clip_image020[4]](http://images0.cnblogs.com/blog/11951/201303/12150150-5380ad6df3104281838ff6353e45595a.jpg)
![clip_image022[4] clip_image022[4]](http://images0.cnblogs.com/blog/11951/201303/12150151-44275c811b1040fa8611efe4274f59a4.jpg)
![clip_image024[4] clip_image024[4]](http://images0.cnblogs.com/blog/11951/201303/12150152-5ba025a2ac8c425b825e9538942b129e.jpg)
![clip_image026[4] clip_image026[4]](http://images0.cnblogs.com/blog/11951/201303/12150153-73ff34e984464c8cad51b3bbb325e434.jpg)
![clip_image028[4] clip_image028[4]](http://images0.cnblogs.com/blog/11951/201303/12150154-b28cdc2c21a141d191788d18b1a6ccd6.jpg)
浙公网安备 33010602011771号