当前位置: 首页 > 知识库问答 >
问题:

无法连接到WebSphere MQ 7.1中的队列管理器

戎鹏云
2023-03-14

我在 Linux 平台上安装了 WebSphere MQ 7.1,之后我安装了 WebSphere 消息代理 8.0.0.1。现在,当我尝试创建执行组时,我得到一个异常:原因码 2035。此异常表示用户未经授权连接到队列管理器。我已将此用户添加到 mqm 组中。当我使用MQ 7.0.x时,我没有遇到任何这样的问题。我搜索了很多,知道 MQ 7.1 中存在用户 ID 阻塞。但是,我希望此用户能够创建执行组,我该怎么做?请指教。

共有2个答案

宋臻
2023-03-14

如果在 V7.1 或更高版本上创建新的 QMgr,它将附带以下默认的 CHLAUTH 规则:

SET CHLAUTH(SYSTEM.ADMIN.SVRCONN)           TYPE(ADDRESSMAP)
    DESCR(Default rule to allow MQ Explorer access)
    ADDRESS(*) 
    MCAUSER( )                              USERSRC(CHANNEL)

SET CHLAUTH(SYSTEM.*)                       TYPE(ADDRESSMAP)
    DESCR(Default rule to disable all SYSTEM channels)
    ADDRESS(*)
    MCAUSER( )                              USERSRC(NOACCESS)

SET CHLAUTH(*)                              TYPE(BLOCKUSER)
    DESCR(Default rule to disallow privileged users)
    USERLIST(*MQADMIN)

底部的那个告诉QMgr“如果有人试图使用管理用户ID通过SVRCONN进行连接,请在所有情况下阻止连接。

要允许来自代理工具包的连接,您有两种选择,如下所示:

    < li >从mqm组中删除mqbrkrs。这允许它在不触发阻止管理员用户的CHLAUTH规则的情况下进行连接。当然,您需要将mqbrkrs组的授权授予它需要访问的所有代理和应用程序队列,因为它不再是MQ管理员。 < li >覆盖CHLAUTH规则以允许broker toolkit作为系统管理员进行连接。BROKER.CONFIG通道。

作为安全专家,我倾向于第一种选择。不可避免的是,MQ管理员可以管理代理。然而,可以避免允许代理(以及所有的代理流)管理QMgr。

但是,如果您希望采用第二条路线,则需要覆盖阻止管理员访问的 CHLAUTH 规则。有几种方法可以做到这一点。您可以删除该规则,但这会将您的所有频道都打开到管理员连接。更精确的方法是仅为管理员要连接的通道提供规则。例如:

SET CHLAUTH(SYSTEM.BKR.CONFIG) TYPE(BLOCKUSER) +
    USERLIST('*NOACCESS')

由于WMQ应用了最具体的规则,所以新规则会覆盖默认规则,但仅适用于< code >系统。BKR.CONFIG频道。< code>BLOCKUSER规则语法允许我们指定拒绝谁,但不允许谁,它采用用户id而不是组id。为了允许管理员访问,需要指定一个不是< code>*MQADMIN的ID。我选择了< code>*NOACCESS,因为它不可能是实际的用户ID,并且是WMQ在其他地方使用的保留字。您可以轻松地使用任何用户ID,比如< code>nobody或者甚至< code>mqm。(阻止< code>mqm将允许< code>mqbrkrs,但不允许< code>mqm,但是由于< code>mqbrkrs在< code>mqm组中,因此不会限制mqbrkrs管理QMgr。)

最后,请注意,任何允许管理员访问的通道都应该经过严格的身份验证。如果您设置的唯一CHLAUTH规则是上面的规则,那么任何具有到QMgr的网络路由的人都可以通过在连接上声明< code>mqbrkrs用户ID来连接到该通道。一旦连接,他们将完全控制QMgr,并能够使用< code>mqm或< code>mqbrkrs用户id远程匿名执行命令。至少添加一个CHLAUTH规则来根据IP地址过滤这个通道上的连接。或者,更好的是,使用SSL并通过证书识别名过滤连接。

谷梁弘深
2023-03-14

MQ安全性在MQ v7.1中得到了很大的改进,与以前的MQ版本有所不同。在MQ v7.1中,默认情况下所有SYSTEM.channels都被阻塞。如果你试图使用这些系统中的任何一个。渠道,然后你会得到2035年,这是MQRC _没有_授权。推荐的方法是为broker创建自己的SVRCONN通道,并创建通道身份验证记录以允许用户访问队列管理器。

请参阅此链接,了解T.Rob关于类似问题的详细答案。

更新:

SVRCONN 通道定义队列管理器的endpoint,即客户机连接到队列管理器所需的连接信息。客户端应用程序使用此类型的通道向队列或主题发送消息/从队列或主题接收消息。

Message Broker toolkit是一个GUI,您可以使用它来管理Message Broker,例如创建执行组、创建流、部署bar文件等。工具包可以在Windows上使用,我猜它也可以在Linux上使用。

我知道MB工具包需要系统。这是一个连接到队列管理器的SVRCONN通道。我认为这是您需要授权的通道,以允许Message Broker连接到MQ。您能检查一下是否是这种情况吗?如果是,请为该渠道创建渠道认证记录。

 类似资料:
  • 我是WebSphere MQ的初学者,我在MQ6上工作,它工作得很好,但现在我安装了MQ7.1,当我试图创建一个新的队列管理器时,我可以创建它,但它不能连接,这给我带来了以下错误: 你对此有什么想法吗?谢谢:)

  • 我正在尝试使用ccdt.tab文件连接到队列管理器。以下是我所尝试的: 以下是ccdt.tab中的内容 有谁知道哪里出了问题,怎么修复? PS:我确实看到了那些帖子:在JMS中使用CCDT文件连接到IBM MQ 下面是链接的异常和异常在I时打印出来的: 以下是当我时链接的异常和异常打印:

  • 我所做的更改是使用defaut队列管理器(wmqconstants.wmq_queue_manager为空字符串)、使用“绑定”连接模式(wmqconstants.wmq_cm_bindings)和删除主机(wmqconstants.wmq_host_name为空字符串)。我收到以下例外: 当我指定主机时,它可以使用“客户端”连接模式,但不能使用绑定。此外,当指定队列管理器时,“绑定”连接模式也可

  • 我创建了一个队列管理器,队列,通道(服务器-连接)。当我尝试发送消息时,看到以下错误:com.ibm.msg.client.jms.DetailedIllegalStateException:JMSWMQ0018:无法连接到连接模式为“Client”、主机名为“epspa(1401)”的队列管理器“my_local_qm”。检查队列管理器是否已启动,如果在客户端模式下运行,则检查是否有侦听器正在运

  • 13:26:00,603信息[org.jboss.as](控制器引导线程)WFlySRV0051:管理控制台监听http://127.0.0.1:9990 但是当我通过浏览器转到这些URL时,什么也没发生。我也尝试访问http://127.0.0.1:9990/auth/admin/,但它不起作用。当我尝试连接时,在我的keycloak控制台中没有任何显示。 我遵循了教程,没有任何额外的设置。怎么