`

TIBCO ESB实战系列:TIBCO EMS的访问控制管理

    博客分类:
  • JMS
 
阅读更多

原文: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-SOA介绍

    在实际应用中,TIBCO ESB与BusinessWorks通常结合使用,ESB负责底层的数据和系统集成,BusinessWorks则处理业务逻辑和流程控制。这样的组合使得企业能够快速构建出适应性强、可扩展性好的IT架构。 **案例分析** ...

    TIBCO公司及ESB/SOA方案介绍

    TIBCO公司及ESB/SOA方案介绍 PPT

    tibco esb introduce

    tibco development including tibco esb introduce!

    Tibco英文说明档

    1. **Tibco BusinessWorks**:作为Tibco的核心产品之一,BusinessWorks是一款强大的企业服务总线(ESB),它支持快速开发和部署集成解决方案。文档将详细介绍如何设计和构建流程,使用数据映射,以及与其他系统(如...

    TIBCO学习资料(英文版)

    1. **TIBCO ActiveMatrix BusinessWorks**:这是一个可视化的企业服务总线(ESB)工具,用于设计、部署和管理业务流程。用户可以学习如何使用它的图形化界面来创建、编排和优化工作流。 2. **TIBCO EMS**:这是...

    tibco design pattern library

    【Tibco设计模式库】是一个集合了Tibco企业服务总线(Tibco Enterprise Service Bus,简称Tibco ESB)中的高效且可复用的设计模式,它旨在提高开发人员在构建分布式企业级应用时的效率和可维护性。这个库提供了各种...

    tibco.rar_The Question_tibco_tibco java

    在IT行业中,Tibco软件公司以其企业服务总线(ESB)和复杂事件处理(CEP)解决方案而闻名。面试中,对于Java开发者来说,理解Tibco的相关技术是至关重要的。本压缩包文件“tibco.rar_The Question_tibco_tibco_java...

    几类中间件和对应的TIBCO产品介绍

    TIBCO ActiveMatrix ESB 是一款强大的ESB产品,它提供了一种灵活的方式来连接、管理和集成各种IT资产。ESB的主要功能包括服务代理、转换、路由和管理,它能够实现不同应用之间的松耦合,降低系统的维护成本。 TIBCO...

    TIBCO学习资料(2)-可惜是e文的

    tib_bs_om_user.pdf可能涉及到TIBCO BusinessStudio的Operations Manager部分,这是一个用于监控和管理TIBCO应用运行时状态的工具。通过Operations Manager,管理员可以实时查看应用程序性能、诊断问题、配置警报和...

    TIBCO Extensibility

    TIBCO的产品线包括用于企业服务总线(ESB)、事件处理、数据集成等的企业级中间件解决方案。在TIBCOExtensibility中,XML DTD(Document Type Definition)扮演了关键角色。 XML DTD 是一种用于定义XML文档结构的...

    TIBCO-BW全集(8部)-02

    TIBCO ActiveMatrix BusinessWorks™是一种先进的企业服务总线(ESB),允许企业构建、部署和管理服务导向架构(SOA)解决方案。 ActiveMatrix BusinessWorks™ BPEL Extension User's Guide是TIBCO为用户提供的一份...

    TIBCO学习资料(1)-可惜是e文的

    TIBCO(The Information Bus Company)是一家专注于企业级中间件软件的公司,其产品和服务广泛应用于全球各行各业,尤其在企业服务总线(ESB)、事件驱动架构(EDA)和实时大数据处理方面享有盛誉。本压缩包包含的三...

    Tibco 产品解析

    本文将深入解析Tibco的核心产品之一——Tibco iProcess 10.6,探讨其在业务流程管理和企业信息化中的关键作用。 Tibco iProcess,全称为Tibco BusinessWorks Process Edition,是一款强大的业务流程管理(BPM)工具...

    ESB产品说明

    JBoss ESB是JBoss公司推出的一款ESB产品,它基于Rosetta网关,与JBoss MQ消息中间件、JBoss rules规则引擎、jBPM流程管理引擎以及JBoss WS组成了一整套强大的企业级集成解决方案。JBoss ESB专注于简化复杂系统的集成...

    ESB大合集ESB大合集

    8. **ESB产品**:市场上的主流ESB产品包括IBM WebSphere ESB、Apache ServiceMix、Tibco Enterprise Message Service等,它们都提供了丰富的功能和API,以满足不同企业的需要。 9. **微服务架构**:随着微服务的...

    C# Tibco 服务端与客户端

    在IT行业中,Tibco(Tibco Software Inc.)是一家专注于企业中间件和集成解决方案的提供商,其产品广泛应用于企业服务总线(ESB)、实时数据流处理、消息传递等多个领域。本项目主要涉及的是C#语言下,Tibco服务端与...

    Tibco Pattern (英文)

    Tibco BusinessWorks是一款强大的企业服务总线(ESB)工具,能够帮助企业集成各种不同的系统和服务。BusinessWorks提供了一种灵活且可扩展的方法来构建复杂的业务流程,并支持多种消息传递协议和数据格式。其核心功能...

    基于SOA和ESB企业总线的OSGi企业级应用

    - ESB的选择与配置,例如Apache ServiceMix、IBM WebSphere ESB或Tibco ActiveMatrix ESB - OSGi框架的使用,如Apache Felix或Eclipse Equinox - 服务注册、发现、调用的示例代码 - 如何利用ESB进行服务的中介、转换...

    ESB企业服务总线简介(1)

    ESB中间件产品通常依赖于Web服务标准,比如Web服务描述语言(WSDL)来封装消息中间件(MOM)协议,如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ。这些产品共同的特点包括连接多种异构MOM系统,...

Global site tag (gtag.js) - Google Analytics