WebSphere MQ v7.1安全性用户凭据

时间:2012-02-23 15:56:13

标签: java jms ibm-mq

运行WebSphere MQ Server v7.1的Linux服务器盒:

我创建了一个用户'mq-user',它属于Linux中的'mq-users'组。然后我创建了一个队列管理器QM_TEST,并使用MQSC发出以下命令来创建队列并设置安全性:

SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mq-user') AUTHADD(ALL)
SET AUTHREC PROFILE(SYSTEM.MQEXPLORER.REPLY.MODEL) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,GET)
SET SET AUTHREC PROFILE(SYSTEM.ADMIN.COMMAND.QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,PUT)
DEFINE CHANNEL (TEST_CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) MCAUSER('mq-user')
SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS(*) MCAUSER('mq-user')
DEFINE QLOCAL (TEST_QUEUE)
SET AUTHREC PROFILE(TEST_QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(ALL)
DEFINE LISTENER (TEST_LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT (1414)
START LISTENER (TEST_LISTENER)

运行WebSphere MQ Client v7.1和WebSphere MQ Explorer的Linux客户端框:

我以我的用户名(arrehman)登录,该用户名不属于mq-users组。但是,我可以通过Java应用程序和MQ Explorer客户端访问我在上面创建的队列,而无需传递任何用户凭据。如果安全有效,为什么会这样呢?

需要进一步的详细信息,请告知我们。感谢。

1 个答案:

答案 0 :(得分:6)

这一行:

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS(*) MCAUSER('mq-user')

说以下内容:

  • 对于请求TEST_CHANNEL ...
  • 的连接
  • 来自任何 IP地址......
  • 将MCAUSER设置为mq-user

换句话说,启用频道,使得任何连接都会继承mq-user的权限,无论它们来自何处以及它们呈现的身份。因此,您看到的行为是基于上述CHLAUTH规则的预期行为。

列出的规则存在一些其他问题:

  • 使用PRINCIPAL而不是GROUP。在非Windows服务器上,如果指定PRINCIPAL,QMgr会查找该ID,查询其主要组,然后根据该组设置授权。因此,如果mq-users的主要群组staffusers获得授权而非mq-users,则可能不是您的意图。始终使用group,以便获得您想要的结果setmqautAUTHREC
  • 在QMgr上授予ALL会使ID /组受管理。 QMgr级别的一个权限是SET,具有SET权限的组中的任何用户都可以设置授权控制列表。因此,即使您只授予AUTHADD(INQ,DSP,PUT) mq-users ID,也可以提交PCF命令以授予对所有对象的所有访问权限。如果您需要,只需在QMgr上授予CONNECTINQUIRE
  • 有一个假设(实际上是粗体)表示您可能需要传递用户凭据。请注意,如果您提供用户ID和密码,WMQ不会验证用户ID和密码。它接受您断言的ID。密码字段可用于退出,可用于验证ID和密码,例如LDAP或本地操作系统。这样的退出可以从第三方购买或写入,但基本WMQ不对密码做任何事情。如果您在映射上指定了USERSRC(CHANNEL),那么您的ID将被使用并且很可能被拒绝。但拒绝可能是因为它位于mqm组(被默认的CHLAUTH规则阻止),或者因为它所在的组没有AUTHREC条记录。

有关加强WMQ的更多信息,收集了大量资源here强化WebSphere MQ 演示文稿来自v7.0。尽管v7.1具有新控件,但主体保持不变:

  • 使用IP过滤验证连接(对于连接源自锁定数据中心的应用或QMgrs),SSL / TLS和/或退出
  • 通过在渠道中对其进行硬编码或使用退出或MCAUSER规则动态设置
  • ,将经过身份验证的身份映射到CHLAUTH
  • 应使用TLS
  • 对管理连接和高价值应用程序进行身份验证