【问题标题】:WebSphere 7, configuring JMS Q connection factory without user id: MQRC_NOT_AUTHORIZEDWebSphere 7,配置没有用户 ID 的 JMS Q 连接工厂:MQRC_NOT_AUTHORIZED
【发布时间】:2011-08-26 03:16:01
【问题描述】:

我有一个 WebSphere 6 实例和一个 WebSphere 7 实例。每个实例都有一个 WebSphere MQ 消息传递提供程序、一个队列连接工厂和一个以类似方式配置的队列。所有用户 ID 字段都保留为空,身份验证别名保留为“无”。

在 WAS6 中它工作正常。

在 WAS7 中出现错误:

JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager 'MYQMNGR' with connection mode 'Client' and host name '10.11.22.33(51001)'.; nested exception is com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager 'MYQMNGR' with connection mode 'Client' and host name '10.11.22.33(51001)'. Please check if the supplied username and password are correct on the QueueManager you are connecting to; nested exception is com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').

如果没有提供用户 ID,WAS7 与 MQ 的连接方式与 WAS6 有什么不同?

我对该 MQ(版本 7)没有任何可见性或访问权限,从 WAS 6 访问时不需要用户 ID,因此我需要让 WAS7 正常工作。

【问题讨论】:

    标签: security jms websphere ibm-mq


    【解决方案1】:

    在 WAS 6 中,如果您将管理面板中的用户 ID 留为空白,则会将空白传递给 WMQ。即使 WMQ 无法确定远程用户,WMQ 也会运行该通道,在这种情况下,该通道以消息通道代理 (MCA) 的权限运行,该代理始终是管理的。因此,在 V6 中,它可以工作。

    从 V7 开始,如果您在 WAS 管理面板中将其留空,WMQ 客户端将更加努力地确定要传递的 ID,并将获取 JVM ID 并将其传递给 CONNECT 调用。这就是2035的源头。

    解决此问题的正确方法是 WMQ 管理员应在 SVRCONN 通道的 MCAUSER 字段中放置一个低特权 ID。该 ID 应该被授权给 Java EE 服务器需要的任何队列,而不是命令队列和各种其他管理队列。这将解决 WAS 7 发送无法识别的 ID 的问题并且它会阻止任何类型的远程客户端在该通道上获得管理员访问权限。

    替代方法是转至 WMQ 连接的 WAS 管理面板并将用户 ID 设置为 mqm。 (如果 WMQ 在分布式非 Windows 系统上运行,则此方法有效。如果 WMQ 在 Windows、z/OS 或其他系统上运行,请在此处替换平台等效 ID。)尽管这将使 WAS 启动并运行,但它不能解决QMgr 公开管理访问的事实。

    请参阅http://t-rob.net/links 上的 WMQ 强化演示和实验室,以更全面地了解如何识别和修复 QMgr 的基础安全漏洞。

    【讨论】:

    • 感谢 Maxim 发布这个紧迫的问题,也感谢 T.Rob 的准确回答
    猜你喜欢
    • 2013-10-22
    • 2013-05-03
    • 1970-01-01
    • 2017-03-13
    • 2014-09-05
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多