WebSphere Message Brokers
File: aq19820_
Writer: Terry Cowling

Reference topic

This build: July 31, 2007 21:35:47

Stream authority

In WebSphere MQ Publish/Subscribe, all publish and subscribe authority checks are performed against the stream queue:
  • Publishing applications must have the authority to put messages to the stream queue.
  • The WebSphere MQ Publish/Subscribe broker checks the authority of subscribing applications that want to browse the stream queue.
  • Subscribing applications must have the authority to put messages to the queue that it nominated to receive its publications.

The same check is made by WebSphere Message Broker brokers, but the subscribe authority (browse) is no longer checked.

Instead, WebSphere Message Broker allows both publish and subscribe access to be defined in a hierarchical manner right down to an individual topic level. To do this, use the workbench to create access control lists (ACLs).

Before you migrate a WebSphere MQ Publish/Subscribe broker to a replacement WebSphere Message Broker broker, or before you migrate your WebSphere MQ Publish/Subscribe applications to run on WebSphere Message Broker, you must consider the security implications:
  • Publishing applications are subject to the same checks even if your broker is not running with topic security enabled, because the authority to put a message to the stream or publication queue continues to be checked by WebSphere MQ.

    However, stream publications can be processed by WebSphere Message Broker on any input queue, because publishers no longer need to put to a queue with the same name as the stream. You should therefore set up equivalent ACLs for all streams using their corresponding topic level qualifiers

  • The WebSphere Message Broker broker does not check that subscribing applications have the authority to browse the stream queue. Instead, WebSphere Message Broker models streams by prefixing all topics that are not part of the default stream with the unique prefix, $SYS/STREAM/<streamname>/. This maintains the partitioning characteristics of streams and allows stream-specific ACLs to be set up. Topics in the default stream are not altered by the broker. Therefore, the root topic can be used to specify the authorities for default stream topics.
The diagram below shows the stream authorities that are required. The example assumes that you have updated the default ACL on the topic root for principal PublicGroup with authority for publish, subscribe, and persistent delivery all set to deny.
Stream authorities
Using this example, assume that the following groups are defined:
  • PDefault: the group of users that are authorized to publish on the default stream
  • SDefault: the group of users that are authorized to subscribe to the default stream
  • PStreamX: the group of users that are authorized to publish on StreamX
  • SStreamX: the group of users that are authorized to subscribe to StreamX
  • PStreamY: the group of users that are authorized to publish on StreamY
  • SStreamY: the group of users that are authorized to subscribe to StreamY
You must grant and deny authorities by setting up ACLs as follows:
  1. PDefault must be granted publish authority on the root; SDefault must be granted subscribe authority on the root.
  2. PDefault must be denied publish authority on $SYS/STREAM/; SDefault must be denied subscribe authority on $SYS/STREAM/.

    These settings ensure that publishers and subscribers on the default stream cannot automatically publish on, or subscribe to, other streams; an ACL must be defined that explicitly overrides that setting.

  3. PStreamX must be granted publish authority on $SYS/STREAM/StreamX/, SStreamX must be granted subscribe authority on $SYS/STREAM/StreamX/.

    These settings override any setting on parent topics and limit publish and subscribe activity to users within these specific groups.

  4. PStreamY must be granted publish authority on $SYS/STREAM/StreamY/, SStreamY must be granted subscribe authority on $SYS/STREAM/StreamY/.

    These settings override any setting on parent topics and limit publish and subscribe activity to users within these specific groups.

If you want to set up exceptions to this situation, introduce an ACL at the appropriate point. For example, to grant authority to publishers to the default stream (PDefault) to publish on StreamX, you must create an explicit ACL at point (3) to grant that authority, thus overriding the denial at point (2). In this scenario, users in PDefault still cannot publish on StreamY.

Related concepts
Authorization to access runtime resources
Related tasks
Publishing
Subscribing
Related reference
MQRFH2 header
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2007Copyright IBM Corporation 1999, 2007. All Rights Reserved.
This build: July 31, 2007 21:35:47

aq19820_ This topic's URL is: