【问题标题】:Ibm mq, sending messages to queue without specifying a useribm mq,在不指定用户的情况下将消息发送到队列
【发布时间】:2019-01-30 18:30:18
【问题描述】:

我有一个 spring 应用程序,并且我收到了连接到 ibm mq 的信息。除了用户名和密码,我什么都有。当我使用docker image 时,我有一个用户名和密码(使用MQ_APP_PASSWORD 环境变量指定)。很明显,我可以只用一个用户名连接到 ibmmq 队列,但问题是,我是否可以在没有这两个用户名的情况下连接? ibmmq 允许这样的事情吗?

【问题讨论】:

  • 这取决于 MQ 管理员如何设置队列管理器。如果他们提供了通道和端口但没有用户/密码,那么他们可能已经设置了连接以将特定用户与通道相关联,如果他们没有通过 TLS 证书提供任何额外的安全性,那么任何可以访问 IP 和端口并图出频道名就可以连接了。
  • 将 MQ 或您的客户端应用程序设置为不需要用户 ID 和密码是一个非常糟糕的主意。安全性很重要,从一开始就设置好一切是最好的解决方案,除非你想对坏人(也就是黑客)从你的公司倾销数据负责。
  • "(...) but no user/password then they may have setup the connection to associate a specific user to the channel (...)" 所以理论上可以配置管理器让连接到它而不给用户?
  • 是的,有可能。

标签: ibm-mq


【解决方案1】:

MQ Advanced for Developers 容器映像带有一个default configuration,它可以实现安全性。在此配置中,应用程序使用DEV.APP.SVRCONN 通道进行连接。我认为你应该看看CONNAUTH 中的CHCKCLNT 属性。在默认配置中,如果您在容器上设置了密码(通过设置 MQ_APP_PASSWORD 环境变量),则通道 (CHLAUTH) 上的 CHCKCLNT 属性设置为 REQUIRED,否则设置为 ASQMGR .这将回退到的队列管理器设置是使用 CONNAUTH 在AUTHINFO 对象上设置的,默认情况下设置为REQDADM。因此,不发送用户 ID 和密码应该已经可以了。但是,如果没有,请尝试调整 AUTHINFO 对象的 CHCKCLNT 设置。请注意,这也可能对DEV.ADMIN.SVRCONN 频道产生连锁反应,该频道也使用此默认设置。

您可以通过添加 MQSC 来更改 Docker 映像中使用的 MQ 配置,如here 所述。您需要在 MQSC 结束时刷新安全性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2021-10-03
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    相关资源
    最近更新 更多