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)。
这个集成解决方案使用当前环境的安全框架。这可以减少修改当前应用程序的工作量和促进快速开发新的应用程序。
正如本系列的第 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. 安全令牌流程
流程的步骤如下:
- AAP 把包含 LTPA 令牌的 authData 元素传递给 TfimMdmIdentityMediator 类(仲裁器类)。
- 仲裁器类提取出 authData 元素中的客户机部分(在这里是 LTPA 令牌)。
- 仲裁器类创建一个 WS-Trust Request Security Token 消息(其中包含提取出的元素)并把请求发送给配置的 STS。
- STS 检验接收的安全令牌。
- STS 应用所需的身份映射(获取组,获取属性)。
- STS 按照 MDM Server 支持的格式颁发一个 SAML 1.1 断言。
- STS 返回 SAML 断言。
- 当仲裁器类从 STS 服务器接收到返回的 SAML 1.1 断言时,把它传递给默认的 MDM SAML 1.1 断言解析器。
- 解析 SAML 1.1 断言,产生的 authData 最终返回给 AAP。
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)。
要想执行这个步骤,首先需要从本文的 下载 部分下载 TFIM-MDMS.zip 文件。下面讨论的文件都包含在这个 zip 文件中。
- 把 tfimmdm.tar 解压到 MDM-App.ear EARs 目录中。
Linux® 的默认目录是:/opt/ibm/websphere/AppServer/profiles/profile name/installedApps/cell name/MDM-App.ear - 把 com.ibm.tivoli.fimmdm.jar 复制到 MDM-App.ear 目录中。
- 把 DWLCommonServicesEJB.jar 复制到 MDM-App.ear 目录中。
- 把 tfim-mdm.properties 复制到 WebSphere Application Server 的 lib/ext 目录中。
Linux 的默认目录是:/opt/ibm/websphere/AppServer/lib/ext - 更新 tfim-mdm.properties,指向适当的 STS 端点。
在这一步中,使用 MDM Server 的 Administration 应用程序创建一个组并把适当的事务分配给这个组。
- 在 Web 浏览器中,登录 Administration 应用程序:
http://server-name:port/CustomerBusinessAdminWeb/ - 创建一个组:
- 进入 Add User Group 页面:Security -> User Groups。
- 单击 Add 按钮。
- 在 Add User Group 页面上,输入 User Group Name 和可选的 Description。
- 单击 Submit 按钮。
图 2. Add User Group 页面
- 把要测试的事务与刚创建的组关联起来。对于这个示例,使用 searchPerson 事务。
- 进入 Transaction Association 页面:Security -> Transaction Associations。
- 从 Select User Group to Assign Transactions 菜单选择组并单击 GO 按钮。
图 3. Transaction Association 页面
- 在 Assign Transaction to a User Group 页面中,从 Select Transaction to Assign 菜单???择 searchPerson 并单击 ADD 按钮。
- 页面刷新之后,单击 SUBMIT 按钮。
图 4. Assign Transaction to a User Group 页面
在这一步中,把 MDM Server 的 SAML/security_data_parser 参数设置为扩展类的名称,确保在环境中启用安全性。
- 启动 MDM Server 管理代理。
- 进入管理代理目录:
MDM 主目录 /ManagementAgent - 运行 startAgent.sh 脚本。
- 进入管理代理目录:
- 启动 MDM Server Management Console。
- 进入 Management Console 目录:
MDM 主目录 /ManagementConsole - 运行 console.sh 脚本。
- 进入 Management Console 目录:
-
通过菜单修改参数值。
- 把 /IBM/DWLCommonServices/Security/SAML/security_data_parser 配置元素设置为自己的类名。对于这个示例,使用 com.ibm.tivoli.fim.mdm.TfimMdmIdentityMediator 类。
- 把 /IBM/DWLCommonServices/Security/enabled 配置元素设置为 true(如果还未设置为 true 的话)。
配置 TFIM Security Token Service (STS) 链
这个示例使用 LTPAv1 令牌类型。
- 在 Web 浏览器中,打开 TFIM 管理控制台:
http://console.tfim.domain.com:9060/ibm/console - 进入 Trust Service Chains 面板:Tivoli Federated Identity Manager -> Configure Trust Service -> Trust Service Chains。
-
单击 Create... 按钮。
图 5. Trust Service Chains 面板
- 在 Trust Service Chain Mapping 向导的 Introduction 面板上,单击 Next 按钮。
图 6. Trust Service Chain Mapping 向导 — Introduction
- 在 Chain Mapping Identification 面板上,输入 Chain Mapping name 和可选的 Description。单击 Next 按钮。
图 7. Trust Service Chain Mapping 向导 — Chain Mapping Identification
- 在 Chain Mapping Lookup 面板上,输入 AppliesTo Address(例如,http://mdm.ibm.com/saml11)和 Issuer Address(例如,http://ibm.com/ldap)。
注意:使用的 AppliesTo Address 和 Issuer Address 应该与步骤 1 中在 tfim-mdm.properties 文件中指定的值匹配。
- 在 Chain Identification 面板上,输入新链的 Chain Name 和可选的 Description。单击 Next 按钮。
图 8. Trust Service Chain Mapping 向导 — Chain Identification
- 在 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
- 使用 LTPA Token Module Configuration 面板配置 STSLTPATokenModule 模块。导入一个 LTPA 导出的密钥(可以使用 WebSphere Application Server 安全管理面板导出 LTPA 密钥)。导入密钥之后,输入密钥的密码并单击 Next 按钮。
图 10. Trust Service Chain Mapping 向导 — LTPA Token Module Configuration
- 使用 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
- 使用 SAML Module Configuration 面板配置 SAMLTokenSTSModule,从而颁发 MDM Server 可以使用的断言。输入颁发断言的组织的名称,清空 Sign SAML Assertion 复选框(MDM Server 不检验签名的断言)。
设置配置选项之后,单击 Next 按钮。
图 12. Trust Service Chain Mapping 向导 — SAML Module Configuration
- 在 Summary 面板上,检查前面定义的链。检查之后,单击 Finish 按钮创建链。
图 13. Trust Service Chain Mapping 向导 — Summary
通过以下测试检验 MDM Server 和 TFIM 的集成。这个测试使用 MDM Server 提供的 Install Verification Tool (IVT)。
- 从 下载 部分提供的 TFIM-MDMS.zip 文件中提取出 SearchPersonWithLTPA.xml 文件。
- 编辑 SearchPersonWithLTPA.xml 并根据环境做必要的修改,包括用新的 LTPA 令牌更新 BinarySecurityToken。
- 把 SearchPersonWithLTPA.xml 文件复制到以下目录:
MDM 安装目录 /IVT/xml/
(例如,/opt/ibm/infosphere/MDMServer/IVT/xml) - 进入 IVT 目录:
MDM 安装目录 /IVT - 运行 verify.sh(或 Windows® 上的 verify.bat)脚本以启动测试。
- 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.zip | 11.8MB | HTTP |
学习
-
理解 IBM InfoSphere MDM Server 安全性,第 1 部分:Master Data Management Server 安全性概述 概述 MDM Server 的安全性特性及其工作方式。
- 理解 IBM InfoSphere MDM Server 安全性,第 2 部分:验证服务简介 详细介绍了两个场景的配置和实现:一个是 Java 应用程序客户机,另一个是 Web 服务应用程序客户机。
- 理解 IBM InfoSphere MDM Server 安全性,第 3 部分:使用 LDAP 实现事务授权 通过一个示例演示如何使用 LDAP 服务器实现事务授权 provider 类。
-
理解 IBM InfoSphere MDM Server 安全性,第 4 部分:在 MDM Server 安全中使用 SAML 概述 MDM Server 中的身份传播。
-
Enterprise Master Data Management: An SOA Approach to Managing Core Information:这是一份权威的独立于厂商的 MDM 技术参考资料,适合各种相关人员参考,包括架构师、技术分析师、顾问、解决方案设计师和高级 IT 决策者。
-
IBM InfoSphere Master Data Management Server Information Center 提供 MDM Server 的文档。
-
Tivoli Federated Identity Manager Information Center 提供 TFIM 的文档。
-
访问 developerWorks 上的 InfoSphere 专题,阅读文章和教程并连接到其他参考资料,从而扩展您的 InfoSphere 技能。
-
developerWorks Information Management 专区:学习关于 Information Management 的更多知识。在这里可以找到技术文档、how-to 文章、培训、下载、产品信息等等。
-
随时关注developerWorks 技术活动 和 网络广播。
获得产品和技术
-
使用可直接从 developerWorks 下载的 IBM 产品评估试用软件 构建您的下一个开发项目。
讨论
- 参与论坛讨论。
-
参与 developerWorks blogs 并加入 developerWorks 社区。

