原文:http://www.searchsoa.com.cn/showcontent_52265.htm
【TechTarget中国原创】TIBCO EMS是一款基于JMS标准的消息中间件产品,具有良好的扩展性、易用性和高效性,很多客户将其作为企业内部的消息总线,在企业应用集成平台架构中担任重要的角色,因此,它的安全性也就显的非常重要,往往会影响到整个企业应用集成平台的运行。在默认情况下,TIBCO EMS对连接用户没有任何限制,即使没有用户名和密码,用户一样可以连接到消息服务器,并对服务器中的主题及队列进行操作。本文中,我们将一步步打造安全的TIBCO EMS消息服务器。
1. 启用用户认证
如下设置TIBCO EMS主配置文件tibemsd.conf中的认证选项:
authorization = enabled (默认为disabled)
或者在EMS管理工具中执行命令:
set server authorization=enabled
设置该选项后,用户连接TIBCO EMS服务器必须进行用户名和密码的验证,否则不能进行连接。
2. 建立用户和组
与数据库的管理类似,TIBCO EMS服务器中也可以建立用户和用户组,以便我们将来使用不同的用户来管理不同的消息应用。
用户信息存储在users.conf,格式如下:
<user-name>:[password]:<description>
其中password会以加密数据方式存储在文件中。可以通过create user命令创建用户,例如:
create user orderuser 订单创建用户 password=orderuserpasswd
组信息存储在groups.conf,格式如下:
<group-name1>:[<description>]
<user-name1>
<user-name2>
. . .
<user-nameN>
可以通过create group命令创建组,例如:
Create group ordergroup 订单组
通过add member命令为组增加用户,例如:
Add member ordergroup orderuser
用户和用户组类似于数据库用户管理中的用户和角色的概念。
3. 访问控制列表
通过访问控制列表(ACL)可以控制用户或用户组对EMS服务器中特定目的地(队列或主题)的访问权限。访问控制列表信息存储在acl.conf,格式如下:
TOPIC=<topic> USER=<user> PERM=<permissions>
TOPIC=<topic> GROUP=<group>PERM=<permissions>
QUEUE=<queue> USER=<user> PERM=<permissions>
QUEUE=<queue> GROUP=<group>PERM=<permissions>
通过上述访问控制信息将主题(TOPIC)或者队列(QUEUE)的权限分配给用户或者用户组。
其中主题(TOPIC)上的权限如下所示:
权限 |
权限名称 |
说明 |
subscribe |
订阅 |
在主题上建立非持久化订阅的权限 |
publish |
发布 |
向主题上发布消息的权限 |
durable |
持久化 |
在主题上建立、删除或者修改持久化订阅的权限 |
use_durable |
使用持久化 |
使用主题上已经存在的持久化订阅的权限,但是不能进行持久化订阅的创建、删除或修改 |
队列(QUEUE)上的权限如下所示:
权限 |
权限名称 |
说明 |
receive |
接收 |
从队列上接收消息的权限 |
send |
发送 |
向队列上发送消息的权限 |
browse |
浏览 |
浏览队列上的消息的权限 |
通过设置主题和队列的访问控制列表,来阻止非法用户对目的地的非法访问,保证消息总线中信息传递的正确性。
4. 启动目的地访问控制
为了使主题和队列的访问控制生效,需要激活目的地上的安全访问机制,即为主题和队列增加安全(secure)属性。可用如下命令为目的地增加安全属性:
addprop topic <topic-name> secure
addprop queue <queue-name> secure
访问控制启用后,如果有无权限的用户试图对目的地进行操作,会产生javax.jms.JMSSecurityException: Not permitted异常。
通过上述步骤,即可实现TIBCO EMS的访问控制管理,为用户打造一个安全的信息总线环境。
应用案例
以我们客户的一个应用场景为例,我们为客户建立了用户主数据库,管理企业中的用户信息,企业内应用系统中的用户数据都从用户主数据库中获得,当用户主数据库中的用户数据发生变化,变化的数据需要实时的更新到所有的应用系统中,保证各个系统内用户数据的统一性。这里,我们使用TIBCO EMS作为用户信息传输的消息总线,其中EMS的访问控制配置如下:
l 建立用户数据传输主题(TOPIC),并激活访问控制属性,运行命令如下:
createtopic topic.masterdata.user
addproptopic topic.masterdata.user secure
l 建立用户主数据发布用户,运行命令如下:
create user mduser 用户主数据发布用户 password=mduserpassw
l 建立用户主数据订阅用户组,包括财务、计划、生产、客服四个系统用户,运行命令如下:
create user financial 财务用户 password=financialpasswd
create user plan 计划用户 password=planpasswd
create user product 生产用户 password=productpasswd
create user service 客户用户 password=servicepasswd
create groupsubmdusers 订阅用户主数据用户组
add member submdusersfinancial
add member submdusers plan
add member submdusersproduct
add member submdusersservice
l 为用户主数据发布用户在主题上设置发布权限,运行命令如下:
grant topic topic.masterdata.useruser=mduser publish
l 为订阅用户主数据用户组在主题上设置持久化订阅权限,运行命令如下:
grant topictopic.masterdata.user group=submdusers durable
根据上述设置,只有用户主数据管理系统使用的mduser用户才能够向topic.masterdata.user主题发送消息;也只有财务、计划、生产、客服四个系统使用的financial、plan、product和service用户才能从topic.masterdata.user主题订阅用户数据信息。使用其他EMS用户对topic.masterdata.user主题进行操作均会出现权限不足异常
相关推荐
在实际应用中,TIBCO ESB与BusinessWorks通常结合使用,ESB负责底层的数据和系统集成,BusinessWorks则处理业务逻辑和流程控制。这样的组合使得企业能够快速构建出适应性强、可扩展性好的IT架构。 **案例分析** ...
TIBCO公司及ESB/SOA方案介绍 PPT
tibco development including tibco esb introduce!
1. **Tibco BusinessWorks**:作为Tibco的核心产品之一,BusinessWorks是一款强大的企业服务总线(ESB),它支持快速开发和部署集成解决方案。文档将详细介绍如何设计和构建流程,使用数据映射,以及与其他系统(如...
1. **TIBCO ActiveMatrix BusinessWorks**:这是一个可视化的企业服务总线(ESB)工具,用于设计、部署和管理业务流程。用户可以学习如何使用它的图形化界面来创建、编排和优化工作流。 2. **TIBCO EMS**:这是...
【Tibco设计模式库】是一个集合了Tibco企业服务总线(Tibco Enterprise Service Bus,简称Tibco ESB)中的高效且可复用的设计模式,它旨在提高开发人员在构建分布式企业级应用时的效率和可维护性。这个库提供了各种...
在IT行业中,Tibco软件公司以其企业服务总线(ESB)和复杂事件处理(CEP)解决方案而闻名。面试中,对于Java开发者来说,理解Tibco的相关技术是至关重要的。本压缩包文件“tibco.rar_The Question_tibco_tibco_java...
TIBCO ActiveMatrix ESB 是一款强大的ESB产品,它提供了一种灵活的方式来连接、管理和集成各种IT资产。ESB的主要功能包括服务代理、转换、路由和管理,它能够实现不同应用之间的松耦合,降低系统的维护成本。 TIBCO...
tib_bs_om_user.pdf可能涉及到TIBCO BusinessStudio的Operations Manager部分,这是一个用于监控和管理TIBCO应用运行时状态的工具。通过Operations Manager,管理员可以实时查看应用程序性能、诊断问题、配置警报和...
TIBCO的产品线包括用于企业服务总线(ESB)、事件处理、数据集成等的企业级中间件解决方案。在TIBCOExtensibility中,XML DTD(Document Type Definition)扮演了关键角色。 XML DTD 是一种用于定义XML文档结构的...
TIBCO ActiveMatrix BusinessWorks™是一种先进的企业服务总线(ESB),允许企业构建、部署和管理服务导向架构(SOA)解决方案。 ActiveMatrix BusinessWorks™ BPEL Extension User's Guide是TIBCO为用户提供的一份...
TIBCO(The Information Bus Company)是一家专注于企业级中间件软件的公司,其产品和服务广泛应用于全球各行各业,尤其在企业服务总线(ESB)、事件驱动架构(EDA)和实时大数据处理方面享有盛誉。本压缩包包含的三...
本文将深入解析Tibco的核心产品之一——Tibco iProcess 10.6,探讨其在业务流程管理和企业信息化中的关键作用。 Tibco iProcess,全称为Tibco BusinessWorks Process Edition,是一款强大的业务流程管理(BPM)工具...
JBoss ESB是JBoss公司推出的一款ESB产品,它基于Rosetta网关,与JBoss MQ消息中间件、JBoss rules规则引擎、jBPM流程管理引擎以及JBoss WS组成了一整套强大的企业级集成解决方案。JBoss ESB专注于简化复杂系统的集成...
8. **ESB产品**:市场上的主流ESB产品包括IBM WebSphere ESB、Apache ServiceMix、Tibco Enterprise Message Service等,它们都提供了丰富的功能和API,以满足不同企业的需要。 9. **微服务架构**:随着微服务的...
在IT行业中,Tibco(Tibco Software Inc.)是一家专注于企业中间件和集成解决方案的提供商,其产品广泛应用于企业服务总线(ESB)、实时数据流处理、消息传递等多个领域。本项目主要涉及的是C#语言下,Tibco服务端与...
Tibco BusinessWorks是一款强大的企业服务总线(ESB)工具,能够帮助企业集成各种不同的系统和服务。BusinessWorks提供了一种灵活且可扩展的方法来构建复杂的业务流程,并支持多种消息传递协议和数据格式。其核心功能...
- ESB的选择与配置,例如Apache ServiceMix、IBM WebSphere ESB或Tibco ActiveMatrix ESB - OSGi框架的使用,如Apache Felix或Eclipse Equinox - 服务注册、发现、调用的示例代码 - 如何利用ESB进行服务的中介、转换...
ESB中间件产品通常依赖于Web服务标准,比如Web服务描述语言(WSDL)来封装消息中间件(MOM)协议,如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ。这些产品共同的特点包括连接多种异构MOM系统,...