连接到 IBM MQ 上的 C# 库的用户名和密码

问题描述 投票:0回答:2

我的任务是在工作中配置和测试 IBM MQ。这样,我使用 AMQP.Net Lite 以 C# 语言实现了一个库,以连接到 IBM MQ 并发送和接收消息。然而,即使阅读了 IBM 自己的教程和文档,我也无法确定如何创建连接到库(无论是 C# 还是 Java)时将使用的用户名和密码。你能帮我解决这个问题吗?

在这种情况下,我在 Windows 计算机上使用版本 9.2,即使遵循此 tutorial,我也无法成功使用它。

使用 AMQP.Net Lite 实现时,按照本教程,为了建立连接,需要提供用户名和密码。提供用户名和密码的实现如下:

Address address = new Address("amqp://username:password@hostname:port");
Connection connection = new Connection(address);
Session session = new Session(connection);

其他实现,包括使用 IBM 自己的库,引用了必须输入的应用程序用户名和密码。然而,我需要实现的库侧重于 AMQP 实现

ibm-mq amqp
2个回答
0
投票

我认为这归结为如何在 Windows 上运行的队列管理器上“创建用于运行 MQ 客户端应用程序的用户和组”。

要在 Windows 上创建队列管理器,您可以按照以下步骤操作 获取用于在 Windows 上进行开发的 IBM MQ 队列教程。其中第 5 步是“第 5 步:创建用于运行 MQ 客户端应用程序的用户和组”。


0
投票

您的问题不是很清楚您在哪个方面遇到问题,只是说:“如何创建用户名和密码”。

所以,我同意您是 IBM MQ、AMQP 的新手,也可能是 Windows 的新手。 (无意冒犯。)

关键评论是 JoshMc 的评论:“IBM MQ 没有自己的用户存储库。默认情况下,IBM MQ 将针对操作系统进行身份验证。您的其他选择是针对 LDAP。

这意味着 MQ 本身不进行身份验证,而是将其外包或外包给另一个应用程序(即操作系统或 LDAP)。因此,您需要检查的第一件事是您为CONNAUTH(队列管理器参数)设置了什么?默认为 'SYSTEM.DEFAULT.AUTHINFO.IDPWOS',这是本地操作系统身份验证的身份验证信息对象。

因此,您可以使用自己的用户 ID 和密码,当您的应用程序与您的凭据连接时,它会要求操作系统(即 Windows)执行身份验证。我强烈建议您不要使用自己的用户名和密码,因为这是一个安全风险,而且您的公司可能会将其视为安全风险并解雇您。最好创建一个仅供测试的帐户。

您在自己的 PC 上完成所有操作,因此,您需要成为 3 个领域的专家:开发人员、MQAdmin 和 SysAdmin。

首先,在您的系统管理员工作中,我们首先在您的 PC 上创建一个仅测试帐户,并将其命名为“mqtester”,密码为“BlueSky#2023”。

打开命令提示符并发出以下命令:

net user mqtester BlueSky#2023 /add

对于 MQ 授权,最好按组而不是单个 UserId 进行。我稍后会谈到这一点,所以只需创建一个名为“mqtest”的组即可。

net localgroup mqtest /add

现在将您的新用户 ID 添加到新组中:

net localgroup mqtest mqtester /add

MQAdmin 作业,现在假设您没有更改默认身份验证,队列管理器现在可以通过 Windows 验证您的新用户 ID 和密码。

接下来,您的 MQAdmin 工作是向 UserId 或更具体地说是您创建的新组授予授权。

您需要允许您的 UserId 授权连接到队列管理器,此检查是在身份验证后完成的。我们将按组而不是 UserId 进行授权。

setmqaut -m {QM_NAME} -t qmgr -g mqtest +connect +inq +dsp

其中 {QM_NAME} 是您的队列管理器的名称。

接下来,您需要允许您的 UserId 访问队列以获取或放置消息。假设您的队列名为“TEST.Q01”。要授权您的新组访问队列,您需要发出以下命令:

setmqaut -m {QM_NAME} -n TEST.Q01 -t queue -g mqtest +allmqi +dsp

如果您想访问以“TEST”开头的所有队列。然后使用你的通配符。是的,它是 2 个星号(即“**”)。

setmqaut -m {QM_NAME} -n TEST.** -t queue -g mqtest +allmqi +dsp

最后,作为开发人员,您现在应该能够运行您的程序、连接到队列管理器、对您的用户 ID 和密码进行身份验证,并有权访问队列管理器和您想要的队列。

© www.soinside.com 2019 - 2024. All rights reserved.