zoukankan      html  css  js  c++  java
  • BizTalk中利用ESSO保存外部系统用户凭据

    BizTalk中利用ESSO保存外部系统用户凭据

    一、 问题提出

    在BizTalk应用集成项目中,BizTalk集成了多个应用系统,在BizTalk应用里很可能会出现有多个(甚至很多)端口指向同一个应用(这个应用可能是SAP系统,也可能是一个SQL Server的数据库),类似这样:

    clip_image002[4]

    在每个端口的设置中都需要设置用户凭据,如果是SQL Server的话,就是SQL的用户名和密码:

    clip_image004[4]

    一般使用中都是对每个端口分别就行设置,分别设置每个端口的用户凭据,输入用户名和密码。

    如果端口不多的情况下,这么做也很正常,但是如果针对某一个系统的端口比较的的时候,比如连接到外部一个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,新建一个关联应用:

    clip_image006[4]

    创建一个叫TestApp的关联应用,一路默认设置:

    clip_image008[4]

    clip_image010[4]

    clip_image012[4]

    clip_image014[4]

    2、 新建用户映射

    在新建的关联应用中,新建一个用户映射:

    clip_image016[4]

    选择需要映射的Windows账户,这个账户是运行这个应用对应那些端口的BizTalk主机实例的那个Windows账户,必须是域账户。外部用户就是TestApp的Sql server数据库给BizTalk系统提供的访问数据的用户:

    clip_image018[4]

    为数据库用户设置密码:

    clip_image020[4]

    用户映射建立后:

    clip_image022[4]

    可以看出,在TestApp应用中,sql2008这个域用户映射到外部SQL数据库的gkj这个用户,用户的密码也保存在ESSO数据库中。

    3、 端口中设置

    先查看主机实例,BizTalkServerApplication主机实例的启动用户为cmict\sql2008,即为前面ESSO中设置的用户映射的那个Windows域用户。

    clip_image024[4]

    再看一个连接TestApp的sql端口的设置,注意主机实例为BizTalkServerApplication,说明此端口对应的Windows的用户就是cmict\sql2008:

    clip_image026[4]

    端口配置,在WCF-SQL端口的属性中,凭据标签,选择“使用单一登录”,关联应用选择TestApp即可:

    clip_image028[4]

    在TestApp已经设置cmict\sql2008映射到外部用户gkj,并保存了密码,所以BizTalk根据这里的设置会到ESSO数据库中查到gkj用户和密码,作为用户凭据访问外部数据库。

    所有连接TestApp应用数据库的端口,用户凭据的设置都可以选择使用ESSO凭据,指向TestApp即可,无需给每个连接TestApp应用数据库的端口分别设置用户名和密码。

     
     
    分类: biztalk
  • 相关阅读:
    Java:JSON和Map相互转换
    Mysql Join语法解析与性能分析
    python MySQLdb 字典(dict)结构数据插入mysql
    boost thread 参数传递
    gnuplot 教程
    Visual Studio 不同版本对C++11的支持进度
    werqtrr
    python pip 修改为国内源
    命名管道不能实现局域网内通信,该怎么处理
    飞思卡尔单片机P&E开发工具硬件及软件
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2955885.html
Copyright © 2011-2022 走看看