流权限

WebSphere MQ Publish/Subscribe中,所有发布和预订权限检查都是依据流队列执行的:
  • 发布应用程序需要可将消息放入流队列的权限。
  • WebSphere MQ Publish/Subscribe代理检查要浏览流队列的预订应用程序的权限。
  • 预订应用程序需要可将消息放入推荐接收发布内容的队列的权限。

WebSphere Message Broker 代理进行同样的检查,但不再检查预订权限(浏览)。

相反,WebSphere Message Broker 允许以分层方式(在个别主题级别下)定义发布和预订访问权。要这样操作,请使用工作台创建访问控制表(ACL)。

WebSphere MQ Publish/Subscribe 代理迁移到替换的 WebSphere Message Broker 代理前,或将 WebSphere MQ Publish/Subscribe 应用程序迁移到 WebSphere Message Broker 上运行前,必须考虑隐含的安全性问题:
  • 因为 WebSphere MQ 持续地检查将消息放入流或发布队列的权限,所以即使代理在没有启用主题安全性的情况下运行,发布应用程序也将受到同样的检查。

    但是,WebSphere Message Broker 可以在任何输入队列上处理流发布内容, 因为发布程序不再需要放入与流同名的队列。 因此,您应使用所有流的相应主题级别限定符来设置所有流的等值 ACL。

  • WebSphere Message Broker 代理不检查预订应用程序对流队列是否具有浏览权限。WebSphere Message Broker 实际上在不是缺省流的部分的所有主题前加上唯一前缀 $SYS/STREAM/<streamname>/,以进行流的模型化。这可以维护流的分区特征并允许设置特定于流的 ACL。 代理没有改变缺省流中的主题。因此,根主题可用于指定缺省流主题的权限。
下图显示了所需的流权限。 该示例假设发布、预订和持久传递都设置为拒绝,并且您已经使用该设置的权限更新 PublicGroup 主体上主题根的缺省 ACL。

流权限
使用该示例,假设定义了下列组:
  • PDefault:授权在缺省流上进行发布的用户组
  • SDefault:授权预订缺省流的用户组
  • PStreamX:授权在 StreamX 上进行发布的用户组
  • SStreamX:授权预订 StreamX 的用户组
  • PStreamY:授权在 StreamY 上进行发布的用户组
  • SStreamY:授权预订 StreamY 的用户组
必须通过设置 ACL 来授予和拒绝权限,具体操作如下所示:
  1. 必须授予 PDefault 在根上的发布权限;必须授予 SDefault 在根上的预订权限。
  2. 必须拒绝 PDefault 在 $SYS/STREAM/ 上的发布权限;必须拒绝 SDefault 在 $SYS/STREAM/ 上的预订权限。

    这些设置确保缺省流上的发布程序和订户无法在其他流上自动发布或预订;必须定义明确覆盖该设置的 ACL。

  3. 必须授予 PStreamX 在 $SYS/STREAM/StreamX/ 上的发布权限,必须授予 SStreamX 在 $SYS/STREAM/StreamX/ 上的预订权限。

    这些设置覆盖父代主题上的所有设置,并将发布和预订活动限于这些特定组内部的用户。

  4. 必须授予 PStreamY 在 $SYS/STREAM/StreamY/ 上的发布权限,必须授予 SStreamY 在 $SYS/STREAM/StreamY/ 上的预订权限。

    这些设置覆盖父代主题上的所有设置,并将发布和预订活动限于这些特定组内部的用户。

如果要设置例外情况,需要在适当点引入 ACL。例如,如果要授予缺省流(PDefault)发布程序在 StreamX 上的发布权限, 必须在点(3)上创建一个显式 ACL 来授予该权限,从而覆盖点(2)上的拒绝权。在这种情况下,PDefault 中的用户仍不能在 StreamY 进行发布。

声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
aq19820_