ibm-mq - 如何在多个远程客户端之间共享Websphere MQ QM和监听器?

标签 ibm-mq

我需要在多个客户端之间共享 QM 及其监听器,以便利用系统资源。

我关心的是安全性——访问控制。 由于所有客户端都可以访问监听器端口,因此我无法使用防火墙来管理访问权限。

我如何确保客户端只能访问共享 QM 下的特定队列? 我知道我可以将 MCAUSER 分配给客户端级别 channel ,但是,是什么让客户端只能连接到特定 channel ?

我已将 MCAUSER 分配给 channel 并设置权限。 现在,从客户端 java JMS API,我如何连接到该特定 channel ,以及什么禁止其他客户端连接到该特定 channel ?

最佳答案

您走在正确的道路上。我建议阅读 IBM session 的安全演示文稿作为背景。前往this page并向下滚动一点。

请记住,客户端可以指定您为其配置的 channel 名称之外的任何 channel 名称,因此除了在一个 channel 上设置 MCAUSER 之外,您还需要在所有 channel 。应使用不能用作 valis 用户 ID 的 MCAUSER 禁用名为 SYSTEM.DEF.*SYSTEM.AUTO.* 的 channel 。我们目前建议使用 MCAUSER('*NOACCESS'),因为 *NOACCESS 是 WMQ V7.1 及更高版本中的保留字。

既然您已经阻止了未使用的 channel ,您需要安排将客户端连接映射到其各自的用户 ID。根据您拥有的 WMQ QMgr 版本,执行此操作的方式会有所不同。在 V7.0 及更早版本中,它需要退出。 BlockIP2 退出于 MrMQ.dk是社区多年来贡献的一个项目,由 IBM 员工拥有和维护。在 V7.1 及更高版本中,BlockIP2 中的功能已在 WMQ 中以 CHLAUTH 规则本地实现。

具体而言,退出或在 V7.1 中,CHLAUTH 规则允许您将连接客户端的断言 ID、IP 地址或 SSL 可分辨名称映射到用户 ID,以便在建立 channel 连接时放入 MCAUSER。

如果您需要验证用户 ID 和密码,那么您需要编写或购买退出来执行此操作。此时 WMQ 和 BlockIP2 都不会验证 ID 和密码。然而,Capitalware 等业务合作伙伴出售的退出恰恰可以做到这一点。如果您希望编写这样的导出,BlockIP2 源代码是一个很好的起点。

关于ibm-mq - 如何在多个远程客户端之间共享Websphere MQ QM和监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005608/

相关文章:

jms - 使用 com.ibm.mq.jakarta.client.jar 9.3 迁移到 Spring Boot 3 后,IBM MQ JMS 无法工作

java - JmsTemplate 没有发送超时

从 Sprint 客户端代码连接到 Websphere MQ 服务器的 SSL 错误

ssl - 使用 SSL 从 AIX 机器连接到远程队列管理器

go - 如何设置 SA_ONSTACK 标志

java - 集成总线添加外部 jar 异常

java - MQ 资源管理器 : Need to understand the field JMS_IBM_MQMD_ACCOUNTING TOKEN

ibm-mq - 如何更改 ibm mq qm 以与用户连接并传递

node.js - 如何在 Node v10 的 Google Cloud Functions 中使用 ffi-napi

java - 如何在 WebSphere MQ 的 rfhutilc 中设置 JMS 属性?