IBM MQ Connection с использованием учетных данных пользователя, а не входа в конфигурацию из службы - PullRequest
0 голосов
/ 30 января 2020

Описание проблемы:

При подключении к 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 ..

1 Ответ

3 голосов
/ 30 января 2020

Чтобы администратор очередей проверил предоставленные вами учетные данные, вы должны настроить его для этого. Вы уже нашли комментарий, который вам нужен. Чтобы объяснить команду, как кажется, это ваш вопрос:

Вы должны создать объект AUTHINFO, содержащий нужную вам конфигурацию, или изменить существующую. Либо этих команд MQS C будет в порядке. Строка 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.PW, либо SYSTEM.DEFAULT.AUTHINFO.IDPWOS, в зависимости от того, какую из указанных выше команд вы использовали.

ALTER QMGR CONNAUTH(name-of-object)

Затем, наконец, вы должны сообщить администратору очередей, что конфигурация была изменена с помощью следующей команды :

REFRESH SECURITY TYPE(CONNAUTH)

Относительно значений, используемых в полях CHCKLOCL и CHCKCLNT. Они имеют одинаковый выбор значений, но CHCKLOCL применяется к соединениям, которые выполняются с использованием соединения с локальными привязками (IP C), а CHCKCLNT применяется к соединениям, которые выполняются с использованием соединения клиента (сети). Если у вас есть OPTIONAL, то, если предоставлен пароль, он будет проверен, но пароли не требуются. Если у вас есть REQUIRED, тогда, если вы не предоставите пароль для проверки, администратор очередей не впустит вас.

...