使用用户凭证的IBM MQ连接不是从服务配置登录

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

问题陈述:

连接到IBM MQ时,凭证是从运行该应用程序的用户那里获得的,而不是在尝试连接的应用程序中设置的MQ配置属性。

错误:未经授权

EX:

        var htProperties = new Hashtable();
        htProperties[MQC.HOST_NAME_PROPERTY] = "IPADDRESS";
        htProperties[MQC.PORT_PROPERTY] = PORT;
        htProperties[MQC.CHANNEL_PROPERTY] = "CHANNEL";
        htProperties[MQC.USER_ID_PROPERTY] = "user_id";
        htProperties[MQC.PASSWORD_PROPERTY] = "password";

我希望队列管理器验证传递到目标系统上Hashtable的凭据,但是它将从我的源计算机获取当前登录名,并检查它们是否是目标系统上的本地帐户。

如何覆盖本地身份验证,而仅使用服务提供的身份验证?关于目标系统上的凭据,我必须设置什么?

我在文档中找到了。。

ALTER QMGR CONNAUTH(USE.PW)
DEFINE AUTHINFO(USE.PW) +
AUTHTYPE(IDPWOS) +
FAILDLAY(10) +
CHCKLOCL(OPTIONAL) +
CHCKCLNT(REQUIRED)
REFRESH SECURITY TYPE(CONNAUTH)

但是,我不知道“ USE.PW”的值是什么,并且当一次执行所有命令时,会出现多个语法错误。另外,我是否可以打开CHCKLOCL(OPTIONAL)?正确的逻辑是什么..

谢谢

c# ibm-mq mq
1个回答
0
投票

为了使队列管理器验证您提供的凭据,必须对其进行配置。您已找到所需的评论。要解释该命令,因为这似乎是您的问题:

您必须创建一个包含所需配置的AUTHINFO对象,或更改一个现有的配置。这些MQSC命令的Either可以。在第一个示例中,字符串USE.PW只是对象的名称。

DEFINE AUTHINFO(USE.PW) +
       AUTHTYPE(IDPWOS) +
       FAILDLAY(10) +
       CHCKLOCL(OPTIONAL) +
       CHCKCLNT(REQUIRED) +
       ADOPTCTX(YES)


ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) +
      AUTHTYPE(IDPWOS) +
      CHCKLOCL(OPTIONAL) +
      CHCKCLNT(REQUIRED) +
      ADOPTCTX(YES)

然后,必须在队列管理器的CONNAUTH字段中提供所使用的对象的名称,以确保队列管理器正在使用此对象中的配置。名称将为USE.PWSYSTEM.DEFAULT.AUTHINFO.IDPWOS,具体取决于您使用了上面的哪个命令。

ALTER QMGR CONNAUTH(name-of-object)

然后,最后,您必须告诉队列管理器,已经使用以下命令更改了配置:

REFRESH SECURITY TYPE(CONNAUTH)

关于CHCKLOCLCHCKCLNT字段中使用的值。它们具有相同的值选择,但是CHCKLOCL适用于使用本地绑定连接(IPC)进行的连接,CHCKCLNT适用于使用客户端连接(网络)进行的连接。如果您有OPTIONAL,则如果提供了密码,将对其进行检查,但是没有强制要求密码。如果您有REQUIRED,则如果您不提供要检查的密码,队列管理器将不允许您进入。

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