理解 IBM InfoSphere MDM Server 安全性,第 1 部分: Master Data Management Server 安全性概述

MDM Server 8 中的认证、授权和审计

Master Data Management(MDM)解决方案的最终目标是成为整个企业所有重要的共享数据的权威来源。因此,这种信息的安全性至关重要。安全性的有些方面是 IBM InfoSphere MDM Server 直接解决的,有些方面是通过它所在的环境解决的。本系列的第 1 部分主要关注前者,并详细描述这些方面的组件。本系列接下来的一篇文章 将详述如何使用和配置这些组件,以解决现实中的业务问题。

Miguel A Ortiz, 软件工程师, IBM

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



Lee McCallum, 顾问 IT 架构师, IBM

作者照片:Lee McCallumLee McCallum 是 IBM 多伦多实验室的一名顾问 IT 架构师。他主要负责设计和领导 MDM Server 特性的开发,重点是 Product Domain。虽然他的大部分时间花在构建 J2EE 平台的产品上,但是他在闲暇时间也涉猎其他的技术。他最近关注的技术是 Ruby on Rails。



2009 年 1 月 05 日

简介

InfoSphere MDM Server 安全性概述

IBM InfoSphere MDM Server 为解决企业主数据管理问题(包括账户、客户和产品数据)提供了一个集中式架构。在这个环境中,对数据机密性、完整性和可用性的保护至关重要,不适当的信息安全措施可能导致商业智能(BI)被损坏、信用卡被窃取、隐私被侵犯甚至法律问题。

用于本系列中所有文章的软件栈

围绕 MDM Server 的所有讨论都与 InfoSphere MDM Server 8.0 及其相关栈有关。本文假设读者熟悉 MDM Server 和它的产品手册中使用的术语。

从 “Enterprise Master Data Management: An SOA Approach to Managing Core Information”(参见 参考资料 小节)中描述的逻辑 SOA 安全架构可以看到,一共有 3 层安全服务:

  • 业务安全服务:负责实现企业的安全和保密目标,包括不可否认(non-repudiation)服务、遵从性和报告等。
  • 安全策略管理:负责确保整个企业一致地定义和管理安全策略。这一层可以看作业务安全服务与 IT 安全服务之间的链接,它包括策略管理和分发等领域。
  • IT 安全服务:负责提供企业所需的核心安全服务。这一层涉及认证和机密性服务领域。

本文主要关注 MDM Server 中解决 MDM IT 安全服务的认证、授权和审计等方面的组件。在更高层面,这 3 个领域分别解决客户身份的确定、对服务的访问权,以及最终提供行为的跟踪记录。本文还概述了在设计 MDM 解决方案时对安全环境要考虑的一些方面。

InfoSphere MDM Server 安全性演示

为简单起见,本文引用图 1 描绘的一个基本的 MDM 事务场景。

图 1. 简单的 MDM 场景
简单的 MDM 场景

这个场景中有一个终端用户 Jane Doe,她与一个 MDM 客户机应用程序中心进行交互,比如一个呼叫。这个客户机应用程序使用 MDM Server 作为主数据源。在图 1 中,终端用户 Jane 更新了客户 Maria 的信息。

身份验证和身份断言

终端用户与系统用户身份

在 MDM 架构中,终端用户与系统用户是有区别的。终端用户是指通过使用一个系统用户间接生成 MDM 事务的实体。这个实体可以是一个人,也可以是一个系统。在这里,终端用户是 Jane,她是一位客户服务代表,正在与一个呼叫中心应用程序户交互。Jane 甚至不知道有很多这样的交互在调用 MDM Server。

在这个场景中,呼叫中心应用程序,也称 MDM 客户机应用程序,就是系统用户。这个系统用户充当终端用户与 MDM Server 中存储的数据之间的桥梁。它充当终端用户的一个接口应用程序,将终端用户的请求转换成一组 MDM Server 事务。注意,系统用户和 MDM Server 共享一个可信关系。

图 2. 简单的 MDM 身份认证流程
简单的 MDM 身份认证流程

终端用户认证

当在一个 MDM 架构中考虑终端用户认证时,要记住以下几点:

  • 终端用户从不直接与 MDM Server 交互。它们通过系统用户间接地进行交互。
  • MDM Server 和系统用户共享一个可信关系。

基于以上事实,MDM Server 信任系统用户执行适当的身份验证和凭证验证。凭证验证的例子有:一个用户名和密码对,一个证书,或一个标志。

系统用户身份验证

如果系统用户要访问 MDM Server 组件,则需要向 J2EE 容器提供凭证,建立一个可信通道。J2EE 容器是指容纳 MDM Server 的应用服务器。目前支持的容器有 Web Logic 和 WebSphere Application Server。

系统用户还应该包括在 ServiceConsumer 角色中,该角色授予对 MDM 组件的有限的访问权。本文后面的 授权 小节将对角色加以解释。

身份断言

虽然 MDM Server 将终端用户认证委托给系统用户,但是它必须知道终端用户的身份,以提供事务性授权和数据授权。在这个环境中,系统用户按逐个事务断言终端用户的身份。

终端用户信息被放入事务消息主体中的 DWL Control 存根中,并发送给 MDM Server。下面的示例 XML 事务消息突出显示了该数据,它表示图 2 中的步骤 4。

清单 1. XML 事务消息中的 DWL Control
<?xml version="1.0" encoding=UTF-8"?>
<TCRMService>
	<RequestControl>
		<requestID> 504000</requestID>
		
		<DWLControl>
			<requesterName>jdoe</requesterName>
			<userRole>CallCentAppUser</userRole>
			<userRole>CstSuppRepL2</userRole>
		</DWLControl>
		
	</RequestControl>
	<TCRMTx>
		<TCRMTxType>updatePerson</TCRMTxType>
		<TCRMTxObject>TCRMPersonBObj</TCRMTxObject>
		<TCRMObject>
			<TCRMPersonBObj>
				<PersonPartyId>111</PersonPartyID>
				<TCRMPersonNameBObj>
					<GivenNameOne>Maria</GivenNameOne>
				</TCRMPersonNameBObj>
			</TCRMPersonBObj>
		</TCRMObject>
	</TCRMTx>
</TCRMService>
图 3. 身份验证断言解析器
身份验证断言解析器

其他关于身份验证断言解析器的文章

这个系列接下来的文章将进一步解释身份验证断言解析器(AAP)的功能。本系列的第 5 篇将展示如何扩展 AAP,以支持很多其他标志和使用 Tivoli Federated Identity Manager 验证它们。

除了标准的 DWL Control XML 节点外,MDM Server 还允许在 DWL Control 存根中插入身份标志。然后,AAP 解析这种标志,并提取必要的信息。AAP 的默认实现支持 SAML 1.1。但是,这是一个定制的点,可以替换它以支持其他标志、标志验证或外部服务。重要的是,默认情况下,在 MDM Server 中的断言不再需要验证。

授权

EJB 组件授权

EJB 组件授权是在 MDM Server 所在的应用服务器中管理和实施的。通过 Web 服务或 RMI 访问 MDM Server 并成功通过应用服务器认证的客户机应用程序,将被授予 ServiceConsumer 角色。

如果一个 MDM 客户机应用程序通过 Java Messaging Services(JMS)和 WebSphere MQ(JMS/MQ)访问 MDM Server,则由 JMS/MQ 实用程序负责向应用程序容器提供认证,让实用程序本身断言 Service Consumer 的角色。WebSphere MQ 实用程序可能需要进一步的安全保障,从而只允许 MDM 客户机应用程序访问 MDM Server。

ServiceConsumer 与 ServiceProvider 角色

有两个用户角色与 MDM Server 相关,那就是 ServiceConsumer 和 ServiceProvider。每个 MDM Entry Point Component(包括 Web 服务、服务控制器和过程控制)被配置为只将访问权授给具有 ServiceConsumer 角色的系统用户。然后,在将事务传送到 MDM Server 内部进行处理时,每个进入点使用 ServiceProvider 角色作为 Run As 安全角色。

ServiceConsumer 角色授予对 MDM Server 组件的有限的访问权。需要注意的是,默认情况下,ServiceConsumer 角色被指定给 MDM Server 所属安全域中的 All Authenticated。建议配置这个角色,使之只包括具有访问 MDM Server 的有效权限的特定系统用户。

事务授权

事务安全是 MDM Server 中实施的第一级授权。这个过程是由事务授权 Provider 组件执行,它决定是否允许终端用户调用被请求事务。默认情况下,MDM Server 在 MDM Security Manager 中被配置为事务授权 Provider。MDM Security Manager 是 MDM Server 的一个庞大组件,它配有一个包含用户和组概要信息的数据模型。这个模型直接嵌入 MDM Server 的元数据模型,标识用户和组有权调用的事务。

图 4. 事务授权
事务授权

Transaction Authorization Provider 组件可配置为利用 LDAP 服务器或定制构建的解决方案,而不是 MDM Security Manager。实际上,可以配置多个 Transaction Authorization Provider,以实现复杂的供应模式。

图 5. 事务授权实现选项
事务授权实现选项

如果终端用户没有被授权调用这个服务,那么会遇到一个错误,事务被标记为回滚。

持久性授权

持久性授权是 MDM Server 实施的第二级授权,在调用控制器级事务之前,通过验证持久性授权,可确保更改数据的用户拥有更改数据的权利。例如,终端用户(Jane Doe)可能可以查看 Maria Gutierrez 的记录,但是 Jane 可能没有权限更改 Maria 的优先级字段。这种约束是在 Persistency Entitlements 组件中配置的。

图 6. 持久性授权的流程
持久性授权的流程

在这个场景中,Jane 尝试更新 Maria 的姓名,这触发对 Jane 修改 name 字段的权限的检查。如果 Jane 的确经过授权,那么事务得以继续。如果她没有经过授权,那么出现一个错误,事务被标记为回滚。

关于如何确定终端用户可以持久化哪些属性和实体,可在 MDM Server 中进行大量的配置。要了解更多信息,请参阅 MDM Developer's Guide。

可见性规则(RoV)

RoV 是 MDM Server 中的第三级授权。它实施一个授权过程。在调用控制器级事务之后,这可能限制终端用户可查看的记录数量。

图 7. RoV 的流程
RoV 的流程

例如,Jane 是一个 2 级客户服务代表,她被允许查看高优先级的客户和较低优先级的客户。一个较低级的客户服务代表可能不能看到高优先级的客户。对于主数据管理而言,这是一个特别重要的特性,因为数据有不同的敏感程度,同时组织中也有不同的角色。

访问标志

访问标志(access token)是 RoV 的一个变体,它提供一个较粗粒度的授权级别和更佳的性能。访问标志的概念非常类似于基于标签的授权控制。标志被指定给特定的终端用户或组,同时也被指定给特定用户可以访问的记录。在请求时,终端用户只能访问被指定相同标志的记录。

图 8. 访问标志的流程
访问标志的流程

例如,Jane 可能负责一组客户。在这里,可以将一个标志指定给 Jane,同时也指定给她的客户记录。当 Jane 请求查看所有客户时,只显示她的客户列表。

与终端用户的组成员关系不同,标志信息不能在 DWL Control 中传递。标志信息存放在 MDM Server 数据库中,在处理每次事务时被访问。而且,将标志指定给组或记录不属于 MDM Server 的工作。

审计

事务审计信息日志(TAIL)

如果事务被完全授权,则 TAIL 会记录一个日志条目。MDM Server 最初被配置为将所有外部(控制器级)和内部(组件级)事务和关键概念性信息(例如实体 ID)记录到应用程序的运行表中。记录的事件可在 MDM Server Administration 服务的 Transaction Audit Information 屏幕中进行配置。可以根据用户类型、事务类型、实体和数据范围等标准检索该信息。可以在 TAIL 数据模型中配置被记录的事务和数据。

要了解更多关于 TAIL 的信息,请参阅 “IBM InfoSphere Master Data Management Server (MDM Server) System Management Guide”。

历史

最后,在事务被提交之后,会调用一个或多个数据库触发器,后者用一条关于谁做了什么更改以及其他事情的记录更新相应的历史表。在发生更改时跟踪更改,可以及时重建记录,从而提供特定记录的完整审计轨迹。

结束语

MDM Server 提供了很多功能,可以解决主数据架构的认证、授权和审计需求。MDM Server 高度可定制的特点提供了一个平台,通过这个平台可以配置已有的组件和服务(例如访问标志的使用),还可以完全替换它们以解决更高级的专用需求(例如提供一个定制的与 LDAP 集成的认证解析器,以提供事务性终端用户认证)。本系列的后续文章将谈到定制和配置应用程序的安全性,这有很多不同的方式。

参考资料

学习

获得产品和技术

  • 用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。

讨论

条评论

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=362119
ArticleTitle=理解 IBM InfoSphere MDM Server 安全性,第 1 部分: Master Data Management Server 安全性概述
publish-date=01052009