微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebSphere MQ v7.1安全用户凭证

如何解决WebSphere MQ v7.1安全用户凭证

这行:

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具有staff或的主要组users,则该组将获得授权,而mq-users不是您想要的。始终使用,group以便通过setmqaut或获得预期的结果AUTHREC
  • ALL在QMgr上进行授予使ID /组具有管理性。QMgr级别的特权之一是SET,具有SET权限的组中的任何用户都可以设置授权控制列表等。因此,即使你只授予AUTHADD(INQ,DSP,PUT)mq-usersID可以提交PCF命令授予所有访问所有对象。如果您只需要批准,CONNECTINQUIRE在QMgr上。
  • 一个假设(实际上是黑体)表明您将需要通过用户凭证。请注意,如果您提供了用户ID和密码,WMQ不会对其进行验证。它接受您声明的ID。密码字段可用于退出,可用于根据LDAP或本地OS验证ID和密码。可以从第三方购买或退出此类出口,但是基本WMQ不会使用密码进行任何操作。如果您USERSRC(CHANNEL)在映射上指定了ID,那么您的ID将被使用,并且很可能被拒绝。但是拒绝的原因可能是因为它在mqm组中(CHLAUTH规则阻止了它),或者是因为它所在的组中没有AUTHREC记录。

欲了解更多有关硬化WMQ,还有一些收集的资源在这里。该 硬化的WebSphere MQ 表现为V7.0。尽管v7.1具有新的控件,但其原理保持不变:

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

解决方法

运行WebSphere MQ Server v7.1的Linux Server Box:

我在Linux中创建了一个属于’mq-users’组的用户’mq-
user’。然后,我创建了队列管理器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,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 Client Box:

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

需要任何其他详细信息,请让我知道。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。