для аутентификации QMGR мы используем PAM (Websphere MQ 9.1 в Linux
CONNAUTH(USE.PAM)
все соответствующие пользователи находятся в локальной группе пользователей «mqm». Это отлично работает для всех, кроме одного пользователя.
Я получаю следующие ошибки для указанного пользователя, когда я пытаюсь подключиться к QMGR с помощью MQ Explorer 9:
----- cmqxrsrv.c : 2390 ------------------------------------------------------- 03/27/19 14:01:03 - Process(10232.155) User(mqm) Program(amqzlaa0) Host(velpke.th) Installation(Installation1) VRMF(9.1.0.0) QMgr(QM.QMGRENT) Time(2019-03-27T13:01:03.599Z) CommentInsert1(testuser) CommentInsert2(MQ Explorer 9.1.0) CommentInsert3(Pipe returned 7 [Authentication failure]) AMQ5534E: User ID 'testuser' authentication failed EXPLANATION: The user ID and password supplied by the 'MQ Explorer 9.1.0' program could not be authenticated. Additional information: 'Pipe returned 7 [Authentication failure]'. ACTION: Ensure that the correct user ID and password are provided by the application. Ensure that the authentication repository is correctly configured. Look at previous error messages for any additional information. ----- amqzfuca.c : 4504 ------------------------------------------------------- 03/27/19 14:01:03 - Process(10232.155) User(mqm) Program(amqzlaa0) Host(velpke.th) Installation(Installation1) VRMF(9.1.0.0) QMgr(QM.QMGRENT) Time(2019-03-27T13:01:03.599Z) CommentInsert1(testuser) CommentInsert2(USE.PAM) CommentInsert3(CHCKCLNT(REQDADM)) AMQ5542I: The failed authentication check was caused by the queue manager CONNAUTH CHCKCLNT(REQDADM) configuration. EXPLANATION: The user ID 'testuser' and its password were checked because the queue manager connection authority (CONNAUTH) configuration refers to an authentication information (AUTHINFO) object named 'USE.PAM' with CHCKCLNT(REQDADM). This message accompanies a previous error to clarify the reason for the user ID and password check. ACTION: Refer to the previous error for more information. Ensure that a password is specified by the client application and that the password is correct for the user ID. The authentication configuration of the queue manager connection determines the user ID repository. For example, the local operating system user database or an LDAP server. If the CHCKCLNT setting is OPTIONAL, the authentication check can be avoided by not passing a user ID across the channel. For example, by omitting the MQCSP structure from the client MQCONNX API call. To avoid the authentication check, you can amend the authentication configuration of the queue manager connection, but you should generally not allow unauthenticated remote access. ----- amqzfuca.c : 4527 ------------------------------------------------------- 03/27/19 14:01:04 - Process(10380.163) User(mqm) Program(amqrmppa) Host(velpke.th) Installation(Installation1) VRMF(9.1.0.0) QMgr(QM.QMGRENT) Time(2019-03-27T13:01:04.599Z) ArithInsert1(2) ArithInsert2(2035) CommentInsert1(mqm) CommentInsert2(testuser) AMQ9557E: Queue Manager User ID initialization failed for 'mqm'. EXPLANATION: The call to initialize the User ID 'mqm' failed with CompCode 2 and Reason 2035. If an MQCSP block was used, the User ID in the MQCSP block was 'testuser'. ACTION: Correct the error and try again. ----- cmqxrsrv.c : 2390 ------------------------------------------------------- (END)
Пользователь может подключиться по SSH к серверу (который также использует PAM). Он также попытался скопировать и вставить свой пароль и попытался изменить его.
Я также проверил с помощью "dspmqaut", который вернул правильные права.
Я не обнаружил никакой разницы между его пользователем и моим пользователем и пользователем другого коллеги (оба - мой и коллега-пользователь - работают).
Когда в MQ Explorer выбран режим совместимости, пароль ограничен 12 символами. Если у вас не выбран режим совместимости, MQ будет использовать структуру MQCSP для отправки пароля, и вы можете отправить пароль длиной до 256 символов. Некоторые ссылки ниже.
Страница центра знаний IBM MQ 9.1.0 Защита> Обзор безопасности> Механизмы безопасности IBM MQ> Аутентификация соединения> Аутентификация соединения с клиентом Java:
Режим совместимости
До IBM MQ версии 8.0 клиент Java мог отправлять ID пользователя и пароль по каналу клиентского соединения в канал соединения с сервером и передавать их на выход безопасности в RemoteUserIdentifier и RemotePassword поля структуры MQCD. В режиме совместимости это поведение сохраняется.
...
Выбор режима аутентификации в IBM MQ Explorer
IBM MQ Explorer - это приложение Java, поэтому эти два режима, режим совместимости и режим аутентификации MQCSP, также применимы к нему.
На панелях, где предоставляется идентификация пользователя, есть флажок для включения или отключения режима совместимости:
- Начиная с версии 9.1.0, по умолчанию этот флажок не установлен. Чтобы использовать режим совместимости, установите этот флажок.
Страница центра знаний IBM MQ 9.1.0 Справка> Справочник по разработке приложений> Справочник по пользовательским программам, выходам API и устанавливаемым службам> Вызовы выхода из канала и структуры данных> MQCD - Определение канала> Поля> RemotePassword (MQCHAR12):
Длина этого поля задается MQ_PASSWORD_LENGTH.
Страница центра знаний IBM MQ 9.1.0 Справочник> Справочник по разработке приложений> Справочник по приложениям MQI> Константы> Константы> MQ_ * (длины строк):
+-------------------+-----+-------------+ |MQ_PASSWORD_LENGTH | 12 | X'0000000C' | +-------------------+-----+-------------+
Страница центра знаний IBM MQ 9.1.0 Справочник> Справочник по разработке приложений> Справочник по приложениям MQI> Типы данных, используемые в MQI> MQCSP - Параметры безопасности> Поля для MQCSP> CSPPasswordLength (MQLONG):
Максимальная длина пароля - MQ_CSP_PASSWORD_LENGTH, что составляет 256 символов. Если длина пароля превышает максимально допустимую длину, запрос аутентификации завершается ошибкой с MQRC_NOT_AUTHORIZED.