【问题标题】:How can I authenticate to IBM MQ using XMS .NET Core app running in Linux Docker?如何使用在 Linux Docker 中运行的 XMS .NET Core 应用程序向 IBM MQ 进行身份验证?
【发布时间】:2021-03-20 06:40:46
【问题描述】:

据我了解,XMS .NET 将使用登录用户的凭据进行身份验证,这就是我们的应用程序现在在 Windows 服务器上运行的操作。但是我们被要求将此应用程序移动到 Linux Docker 容器中,我不确定 XMS .NET 现在是如何尝试进行身份验证的。该进程在 root 下运行,所以我假设它正在尝试使用它进行身份验证并且失败了。

【问题讨论】:

  • 您使用的是哪个版本的 XMS/MQ?有 XMSC.USERID 和 XMSC.PASSWORD 连接工厂属性可用于指定您自己的用户 ID 和密码,用于向队列管理器进行身份验证。
  • 队列管理器是什么版本的MQ?
  • 您的问题字里行间有很多阅读内容。如果我们不必做出假设,这将使回答您的问题的任务更容易。它目前看起来好像您已经尝试过迁移代码,所以我猜它已经在使用 .net 核心。但是迁移的代码无法通过身份验证。这个对吗?如果是这样,您看到了什么错误?
  • @Shashi 我们在 IBM MQ 7 中,根据我的阅读和尝试,XMS 尝试使用运行进程的人的帐户,因此在案例和 Windows 帐户中。 XMSC.USERID 被忽略了,对吧? ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/…
  • 运行队列管理器的 MQ 版本必须是 MQ V8.0 或更高版本才能执行身份验证,或者您需要使用第 3 方解决方案(即安全出口),如 Capitalware 的 MQAUSX MQ 的所有版本。

标签: linux docker ibm-mq xms


【解决方案1】:

很抱歉,我之前没有发布我的问题的解决方案,但基本上,IBM MQ 服务器在 Windows 域中有一个服务帐户,我们需要对其进行身份验证。如果您使用 Windows 模拟运行 XMS .NET 客户端,您可以作为该服务帐户连接到 MQ。我们将这个 XMS .NET 客户端放在 Linux Docker 容器中,在 Linux 容器中创建了这个服务帐户,并在该帐户下运行。 IBM 允许将其作为“跨域”身份验证。维奥拉!

【讨论】:

  • 查看我的 cmets 关于您的问题,因为您的设置没有进行身份验证。任何对您的 Windows 队列管理器具有网络访问权限的人都可以执行与您相同的操作并进行连接。在队列管理器上启用 CONNAUTH 并让客户端发送用户名和密码实际上将进行身份验证,您无需担心在 Docker 容器中创建用户。
  • "IBM 允许将其作为“跨域”身份验证。"是一个错误的陈述。
  • 我将不得不与设置队列管理器的 Dev Ops 人员讨论如何使用 CONNAUTH。目前,您必须在特定服务帐户下运行客户端才能访问队列,但从技术上讲,我同意您没有通过队列管理器的身份验证。 IBM 似乎确实“允许”这样做。
  • 只有在您没有将其配置为要求身份验证时才允许这样做,这是可能的并且是推荐的。
  • 您的意思是“不推荐”吗?我的理解是这是“开箱即用”设置,因此我可以看到 DevOps 人员可能没有更改此默认行为。我显然是一个 IBM MQ 菜鸟,并且依赖我的 IBM MQ 管理员比我知道的更多。在这里提问之前,我确实阅读了大量文档,因此非常感谢您的意见。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 2019-11-18
相关资源
最近更新 更多