AMQ9776: канал был заблокирован - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужна помощь, у меня возникла следующая проблема:

AMQ9776: Channel was blocked by userid 

EXPLANATION: 
The inbound channel 'TEST1.SRVCONN' was blocked from address '10.0.2.4' 
because the active values of the channel were mapped to a userid which should 
be blocked. The active values of the channel were 'MCAUSER(mqm) CLNTUSER(mqm)'.

И у меня есть следующие авторитетные записи:

DISPLAY CHLAUTH(*)
    37 : DISPLAY CHLAUTH(*)
AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(SYSTEM.ADMIN.SVRCONN)           TYPE(ADDRESSMAP)
   ADDRESS(*)                              USERSRC(CHANNEL)

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(TEST1.SRVCNN)                   TYPE(ADDRESSMAP)
   ADDRESS(10.0.2.4)                       USERSRC(CHANNEL)

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(TEST1.SRVCNN)                   TYPE(BLOCKUSER)
   USERLIST(mqm)                        

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(SYSTEM.*)                       TYPE(ADDRESSMAP)
   ADDRESS(*)                              USERSRC(NOACCESS)

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(*)                              TYPE(BLOCKUSER)
   USERLIST(*MQADMIN)     

Так что я не знаю, что еще я могу сделатьЯ читал об этой проблеме, и я создал правило для подключения к каналу, и я предоставил привилегию пользователю.¿Что мне не хватает?

1 Ответ

0 голосов
/ 28 сентября 2018

Обратите внимание, что для MQ v8 и более поздних версий, когда MQ сравнивает пользователя клиента MQ с USERLIST правила TYPE(BLOCKUSER) или с CLNTUSER в правиле TYPE(USERMAP), его можно настроить на просмотр либопользователь клиентский процесс выполняется под или на пользователя, который представлен в MQCSP и успешно аутентифицирован CONNAUTH.Чтобы получить более позднее поведение, вы должны установить ChlauthEarlyAdopt=y в разделе Channels: в qm.ini.Для новых администраторов очередей, созданных в MQ v8.0 LTS и MQ v9.0 LTS, значение по умолчанию НЕ будет устанавливать это, и MQ будет смотреть на пользователя, под которым выполняется клиентский процесс.Для CD MQ v9.0.5, MQ v9.1 LTS и MQ v9.1 CD по умолчанию его устанавливают, и MQ будет смотреть на пользователя, отправленного в MQCSP и успешно аутентифицированного CONNAUTH.

Примечаниепараметр ChlauthEarlyAdopt был добавлен в 8.0.0.5, до этого он всегда смотрел на пользователя, под которым выполняется клиентский процесс.


По умолчанию MQ поставляется со следующим правилом:

CHLAUTH(*)                              TYPE(BLOCKUSER)
USERLIST(*MQADMIN)     

Это правило блокирует всех пользователей, которые, как считает MQ, имеют права администратора MQ, подключаться к ЛЮБОМУ SVRCONN каналу в администраторе очередей.


Вы добавили следующие два правила (обратите внимание, есливы добавляете ВСЕ в свою команду DISPLAY, она не отображает все атрибуты, поэтому я могу обсуждать только то, что вы показываете):

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(TEST1.SRVCNN)                   TYPE(ADDRESSMAP)
   ADDRESS(10.0.2.4)                       USERSRC(CHANNEL)

AMQ8878: Ver detalles de registro de autenticación de canal.
   CHLAUTH(TEST1.SRVCNN)                   TYPE(BLOCKUSER)
   USERLIST(mqm)         

Первый (TYPE(ADDRESSMAP)) разрешит соединение с ADDRESS(10.0.2.4) к этому каналу и оставьте пользователя установленным для того, что согласовано на канале.Но в отсутствие любого другого правила MAP, которое блокирует соединения путем установки USERSRC(NOACCESS), это правило действительно ничего не делает.

Если у вас есть SVRCONN канал с пустым MCAUSER, тогда MQ примет имя пользователяэто отправлено от клиента.Для большинства клиентов это пользователь, под которым выполняется процесс, для Java и JMS очень легко отправить любого пользователя, включая пустое значение.Если оба пользователя, отправленные клиентом, и MCAUSER на канале являются пустыми, то согласованный MCAUSER будет тем пользователем, под которым выполняется процесс агента канала сообщений, в unix это обычно будет mqm.

* 1036.*

Второе правило (TYPE(BLOCKUSER)) на самом деле говорит MQ специально блокировать любой канал, куда пользователь mqm посылает с клиента, это, скорее всего, противоположно тому, что вы пытались выполнить.


Если клиентское подключение не является административным приложением, лучший способ исправить это - определить другого пользователя и дать ему разрешение на то, что ему нужно.

См. Мой ответ наСледующий вопрос для получения более подробной информации о том, как предоставить разрешения MQ для пользователя с низким уровнем привилегий: Ошибки авторизации с MQ8 + JDk8

Не было бы хорошей практикой разрешать приложениям подключаться к SVRCONNканал, который не имеет безопасности, вы не упоминаете, используете ли вы CONNAUTH или TLS сертификаты для обеспечения безопасности каналаЭл, но если нет, вам следует использовать один или другой, чтобы определить, кто может подключиться к каналу.

...