理解 IBM InfoSphere MDM Server 安全性,第 5 部分: 集成 Master Data Management Server 和 Tivoli Federated Identity Manager

促进 MDM Server 环境中的身份传播

本文延续本系列的第 4 部分 “理解 IBM InfoSphere MDM Server 安全性,第 4 部分:在 MDM Server 安全中使用 SAML”,讲解 IBM® InfoSphere™ Master Data Management (MDM) Server 和 IBM Tivoli® Federated Identity Manager (TFIM) 的集成如何扩展 MDM Server 的身份传播功能和促进客户机应用程序开发。学习如何使用和配置这些组件来解决实际业务问题。

Miguel A Ortiz, 软件工程师, IBM

作者照片:Miguel OrtizMiguel A. Ortiz, Jr. 是 IBM Austin 实验室 Information Platform and Solutions 小组的软件工程师。他主要从事 MDM Server 安全性、IPS 产品集成和第三方产品集成方面的工作。



Patrick Wardrop, 软件工程师, IBM

Patrick WardropPatrick Wardrop 是 Tivoli Federated Identity Manager 团队的开发人员。他拥有加拿大 Ontario 的 University of Guelph 的计算机信息科学学士学位。



2009 年 4 月 20 日

简介

InfoSphere Master Data Management (MDM) Server 常常用在复杂的环境中。在这种环境中,可以通过与外部安全产品集成降低成本,降低环境的复杂性,提供更安全的体系结构。

通过集成 MDM Server 和 Tivoli Federated Identity Manager (TFIM),可以改进 MDM Server 的安全环境,满足当前的 Web 安全标准的规定。本文详细讲解如何用定制的 TFIM V6.2 身份验证解析器 (TfimMdmIdentityMediator) 扩展 MDM Server V8.0.1 提供的默认身份验证解析器 (SAML11Parser)。

本系列中所有文章使用的软件组合

在本系列中,“MDM Server” 是指 InfoSphere MDM Server 8.0 和相关软件组合。本文假设读者熟悉 MDM Server 和它的产品手册中使用的术语。

这个集成解决方案使用当前环境的安全框架。这可以减少修改当前应用程序的工作量和促进快速开发新的应用程序。

场景

正如本系列的第 4 部分 “在 MDM Server 安全中使用 SAML” 所指出的,MDM Server 可以接收包含用户身份和组成员关系的 SAML 1.1 令牌作为替代的身份验证断言。(DWL Control 令牌是默认的令牌)。MDM 客户机应用程序负责组合 MDM Server 所需的安全信息并把信息添加到相应的事务中。

如果 MDM 客户机所处的安全体系结构使用 SAML 1.1 令牌,那么这个特性非常有帮助。但是,不同的环境中常常使用其他许多标准和专有的安全令牌。例如,Kerberos 令牌是 Microsoft® 使用的默认安全令牌,在大型机环境中常常使用 PassTickets,在 WebSphere® Application Server 环境中使用 Lightweight Third-Party Authentication (LTPA),在 Tivoli Access Manager 环境中使用 iv_creds

如果安全体系结构不使用 SAML 1.1 令牌,那么 MDM 客户机需要从环境的默认令牌中解析和提取出用户信息,然后正确地构建 DWL Control 令牌,或者通过访问用户存储库获取用户信息。但是,这两种方法都会增加应用程序开发过程和安全体系结构的复杂性。

第三种方法是扩展 MDM Server,让它能够理解环境的默认令牌并使用这种令牌作为有效的身份验证断言,也就是实现与 SAML 1.1 支持相似的支持。本文讲解如何通过集成 MDM Server 和 TFIM 的 Security Token Service (STS) 来扩展它的令牌支持,从而提供这种方式的一个示例。通过与 TFIM 集成,MDM Server 就能够使用 TFIM STS 理解的任何令牌或令牌组合。

通过集成 MDM Server 和 TFIM,可以扩展标准兼容范围,还有以下好处:

  • 能够检验令牌的数字签名
  • 能够接受加密的令牌内容
  • 能够把令牌中的身份映射到 MDM Server 的本地身份

集成设计和体系结构

当 DWLControl 中的安全令牌到达 MDM Entry Point 时,MDM Server 把消息转发给 Authentication Assertion Parser (AAP) 组件。AAP 把处理委托给 MDM 配置表参数 /IBM/DWLCommonServices/Security/SAML/security_data_parser 中配置的解析器类。默认设置的解析器类是 SAML11Parser 类。集成这两个产品的关键是扩展 MDM SAML 1.1 断言解析器,在其中包含一个 STS 客户机,它使用 WS-Trust 协议与 STS 服务器通信。在这个场景中,解析器类名为 TfimMdmIdentityMediator。

安全令牌流程

图 1 所示的令牌流程是在 AAP 组件接收到包含 LTPA 令牌的客户机请求时发生的处理过程。

图 1. 安全令牌流程
安全令牌流程

流程的步骤如下:

  1. AAP 把包含 LTPA 令牌的 authData 元素传递给 TfimMdmIdentityMediator 类(仲裁器类)。
  2. 仲裁器类提取出 authData 元素中的客户机部分(在这里是 LTPA 令牌)。
  3. 仲裁器类创建一个 WS-Trust Request Security Token 消息(其中包含提取出的元素)并把请求发送给配置的 STS。
  4. STS 检验接收的安全令牌。
  5. STS 应用所需的身份映射(获取组,获取属性)。
  6. STS 按照 MDM Server 支持的格式颁发一个 SAML 1.1 断言。
  7. STS 返回 SAML 断言。
  8. 当仲裁器类从 STS 服务器接收到返回的 SAML 1.1 断言时,把它传递给默认的 MDM SAML 1.1 断言解析器。
  9. 解析 SAML 1.1 断言,产生的 authData 最终返回给 AAP。

什么是 TFIM?

IBM Tivoli Federated Identity Manager (TFIM) 通过一个简单的松散耦合的模型跨公司和安全域管理身份和资源访问。TFIM 提供一个简单的模型,可以以可信的方式管理身份并提供对信息和服务的访问,在公司或域中不需要复制身份和安全管理信息。

对于部署面向服务体系结构和 Web 服务的公司,TFIM 为联合 Web 服务提供基于策略的集成的安全管理。TFIM 的基础是数据的可信性、完整性和私密性。对于基于 Web 的应用程序,TFIM 支持最常用的以用户为中心和以企业为中心的联合单点登录协议,比如 InfoCard、OpenID、SAML 1.0/1.1/2.0 和 WS-Federation。

本文讲解如何使用 TFIM 的 Security Token Service (STS),通常在 SOA 场景中使用 STS 进行身份仲裁。STS 在两方或多方之间建立 “信任” 关系,帮助它们安全地交换安全凭证。客户机通过 WS-Trust 与 STS 进行远程通信,WS-Trust 是 WS-Security 标准的扩展。STS 能够检验、交换和颁发安全凭证,通常采用 XML 安全凭证的形式。最常用的安全凭证类型是 SAML Assertion 1.0/1.1/2.0、GSS Kerberos V5 AP_REQ、PassTickets 和 Lightweight Third-Party Authentication (LTPA)。

配置 MDM Server

步骤 1:准备 MDM Server 环境

要想执行这个步骤,首先需要从本文的 下载 部分下载 TFIM-MDMS.zip 文件。下面讨论的文件都包含在这个 zip 文件中。

  1. 把 tfimmdm.tar 解压到 MDM-App.ear EARs 目录中。
    Linux® 的默认目录是:/opt/ibm/websphere/AppServer/profiles/profile name/installedApps/cell name/MDM-App.ear
  2. 把 com.ibm.tivoli.fimmdm.jar 复制到 MDM-App.ear 目录中。
  3. 把 DWLCommonServicesEJB.jar 复制到 MDM-App.ear 目录中。
  4. 把 tfim-mdm.properties 复制到 WebSphere Application Server 的 lib/ext 目录中。
    Linux 的默认目录是:/opt/ibm/websphere/AppServer/lib/ext
  5. 更新 tfim-mdm.properties,指向适当的 STS 端点。

步骤 2:配置和授权一个用于测试的用户组

在这一步中,使用 MDM Server 的 Administration 应用程序创建一个组并把适当的事务分配给这个组。

  1. 在 Web 浏览器中,登录 Administration 应用程序:
    http://server-name:port/CustomerBusinessAdminWeb/
  2. 创建一个组:
    1. 进入 Add User Group 页面:Security -> User Groups。
    2. 单击 Add 按钮。
    3. 在 Add User Group 页面上,输入 User Group Name 和可选的 Description。
    4. 单击 Submit 按钮。
      图 2. Add User Group 页面
      Add User Group 页面
  3. 把要测试的事务与刚创建的组关联起来。对于这个示例,使用 searchPerson 事务。
    1. 进入 Transaction Association 页面:Security -> Transaction Associations。
    2. 从 Select User Group to Assign Transactions 菜单选择组并单击 GO 按钮。
      图 3. Transaction Association 页面
      Transaction Association 页面
    3. 在 Assign Transaction to a User Group 页面中,从 Select Transaction to Assign 菜单???择 searchPerson 并单击 ADD 按钮。
    4. 页面刷新之后,单击 SUBMIT 按钮。
      图 4. Assign Transaction to a User Group 页面
      Assign Transaction to a User Group 页面

步骤 3:更新 MDM Server 配置

在这一步中,把 MDM Server 的 SAML/security_data_parser 参数设置为扩展类的名称,确保在环境中启用安全性。

  1. 启动 MDM Server 管理代理。
    1. 进入管理代理目录:
      MDM 主目录 /ManagementAgent
    2. 运行 startAgent.sh 脚本。
  2. 启动 MDM Server Management Console。
    1. 进入 Management Console 目录:
      MDM 主目录 /ManagementConsole
    2. 运行 console.sh 脚本。
  3. 通过菜单修改参数值。
    1. 把 /IBM/DWLCommonServices/Security/SAML/security_data_parser 配置元素设置为自己的类名。对于这个示例,使用 com.ibm.tivoli.fim.mdm.TfimMdmIdentityMediator 类。
    2. 把 /IBM/DWLCommonServices/Security/enabled 配置元素设置为 true(如果还未设置为 true 的话)。

配置 TFIM Security Token Service (STS) 链

步骤 4:通过 TFIM 管理控制台配置 STS

这个示例使用 LTPAv1 令牌类型。

  1. 在 Web 浏览器中,打开 TFIM 管理控制台:
    http://console.tfim.domain.com:9060/ibm/console
  2. 进入 Trust Service Chains 面板:Tivoli Federated Identity Manager -> Configure Trust Service -> Trust Service Chains。
  3. 单击 Create... 按钮。
    图 5. Trust Service Chains 面板
    Trust Service Chains 面板
  4. 在 Trust Service Chain Mapping 向导的 Introduction 面板上,单击 Next 按钮。
    图 6. Trust Service Chain Mapping 向导 — Introduction
    Trust Service Chain Mapping 向导 - Introduction
  5. 在 Chain Mapping Identification 面板上,输入 Chain Mapping name 和可选的 Description。单击 Next 按钮。
    图 7. Trust Service Chain Mapping 向导 — Chain Mapping Identification
    Trust Service Chain Mapping 向导 - Chain Mapping Identification
  6. 在 Chain Mapping Lookup 面板上,输入 AppliesTo Address(例如,http://mdm.ibm.com/saml11)和 Issuer Address(例如,http://ibm.com/ldap)。

    注意:使用的 AppliesTo Address 和 Issuer Address 应该与步骤 1 中在 tfim-mdm.properties 文件中指定的值匹配。

  7. 在 Chain Identification 面板上,输入新链的 Chain Name 和可选的 Description。单击 Next 按钮。
    图 8. Trust Service Chain Mapping 向导 — Chain Identification
    Trust Service Chain Mapping 向导 - Chain Identification
  8. 在 Chain Assembly 面板上,用以下模块构造一个链:
    • com.tivoli.am.fim.trustserver.sts.modules.STSLTPATokenModule
    • com.tivoli.am.fim.trustserver.sts.modules.STSMapDefault
    • com.tivoli.am.fim.trustserver.sts.modules.SAMLTokenSTSModule
    图 9. Trust Service Chain Mapping 向导 — Chain Assembly
    Trust Service Chain Mapping 向导 - Chain Assembly
  9. 使用 LTPA Token Module Configuration 面板配置 STSLTPATokenModule 模块。导入一个 LTPA 导出的密钥(可以使用 WebSphere Application Server 安全管理面板导出 LTPA 密钥)。导入密钥之后,输入密钥的密码并单击 Next 按钮。
    图 10. Trust Service Chain Mapping 向导 — LTPA Token Module Configuration
    Trust Service Chain Mapping 向导 - LTPA Token Module Configuration
  10. 使用 Default Map Module 面板配置 STSMapDefault 模块。选择用于身份映射的 XSLT 文件。可以使用 下载 部分提供的 TFIM-MDMS.zip 文件中包含的 ltpa_saml_1x.xsl 文件,但是一定要把用户角色由 ALLOWEDGROUP 改为适当的角色。这个示例只为用户设置一个组,但是也可以包含多个组。还可以使用 DirectoryIntegratorSTSModule(TDI 模块)作为映射模块。TDI 模块能够通过查询外部数据源来获取属性和用户组。

    完成选择之后,单击 Next 按钮。

    图 11. Trust Service Chain Mapping 向导 — Default Map Module
    Trust Service Chain Mapping 向导 - Default Map Module
  11. 使用 SAML Module Configuration 面板配置 SAMLTokenSTSModule,从而颁发 MDM Server 可以使用的断言。输入颁发断言的组织的名称,清空 Sign SAML Assertion 复选框(MDM Server 不检验签名的断言)。

    设置配置选项之后,单击 Next 按钮。

    图 12. Trust Service Chain Mapping 向导 — SAML Module Configuration
    Trust Service Chain Mapping 向导 - SAML Module Configuration
  12. 在 Summary 面板上,检查前面定义的链。检查之后,单击 Finish 按钮创建链。
    图 13. Trust Service Chain Mapping 向导 — Summary
    Trust Service Chain Mapping 向导 - Summary

测试

通过以下测试检验 MDM Server 和 TFIM 的集成。这个测试使用 MDM Server 提供的 Install Verification Tool (IVT)。

  1. 下载 部分提供的 TFIM-MDMS.zip 文件中提取出 SearchPersonWithLTPA.xml 文件。
  2. 编辑 SearchPersonWithLTPA.xml 并根据环境做必要的修改,包括用新的 LTPA 令牌更新 BinarySecurityToken。
  3. 把 SearchPersonWithLTPA.xml 文件复制到以下目录:
    MDM 安装目录 /IVT/xml/
    (例如,/opt/ibm/infosphere/MDMServer/IVT/xml)
  4. 进入 IVT 目录:
    MDM 安装目录 /IVT
  5. 运行 verify.sh(或 Windows® 上的 verify.bat)脚本以启动测试。
  6. verify.sh 脚本执行完之后,检查 ResponseSearchPersonWithLTPA.xml 文件中的结果:
    MDM 安装目录 /IVT/xml/response/

    如果这个文件不包含任何错误消息,就说明集成是成功的。

注意

可以考虑对 TfimMdmIdentityMediator 类做以下改进:

  • 可以添加缓存,从而避免在后续的事务中重复检验相同的令牌。
  • 可以启用提供的安全令牌的内省,从而允许一个 MDM 实例使用多种令牌类型。

结束语

通过使用 IBM InfoSphere MDM Server 提供的灵活的安全框架和 IBM Tivoli Federated Identity Manager 的安全功能,可以建立一个更安全、兼容性和适应性更强的 Master Data Management Server 环境。


下载

描述名字大小
本文的示例文件TFIM-MDMS.zip11.8MB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=383754
ArticleTitle=理解 IBM InfoSphere MDM Server 安全性,第 5 部分: 集成 Master Data Management Server 和 Tivoli Federated Identity Manager
publish-date=04202009