Ibm mq AMQ9776:通道被阻止

Ibm mq AMQ9776:通道被阻止,ibm-mq,Ibm Mq,我需要帮助,我有以下问题: 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

我需要帮助,我有以下问题:

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)     

所以我不知道我还能做什么,我一直在读关于这个问题的书,我创建了连接到频道的规则,并授予用户特权。我错过了什么

请注意,对于MQ v8及更高版本,当MQ将MQ客户端用户与
类型(BLOCKUSER)
规则的
USERLIST
类型(USERMAP)
规则上的
CLNTUSER
进行比较时,可以将其设置为查看运行客户端进程的用户,或者查看MQCSP中显示并由CONNAUTH成功验证的用户。要获得后面的行为,必须在
qm.ini
频道:
节中设置
chlauthorlyadopt=y
。对于在MQ v8.0 LTS和MQ v9.0 LTS下创建的新队列管理器,默认情况下不会设置此值,MQ将查看客户机进程正在运行的用户。对于MQ v9.0.5 CD、MQ v9.1 LTS和MQ v9.1 CD,默认设置为设置它,MQ将查看在MQCSP中发送并由CONNAUTH成功验证的用户

请注意,
chlauthorlyadopt
设置是在8.0.0.5中添加的,在此之前,它将始终查看客户端进程正在运行的用户


默认情况下,MQ附带以下规则:

CHLAUTH(*)                              TYPE(BLOCKUSER)
USERLIST(*MQADMIN)     
该规则阻止MQ认为具有MQ管理权限的所有用户连接到队列管理器上的任何
SVRCONN
通道


您添加了以下两条规则(注意,除非您将所有添加到显示命令,否则它不会显示所有属性,因此我只能讨论您显示的内容):


第一个(
类型(地址映射)
)将允许从
地址(10.0.2.4)
连接到此频道,并将用户设置为在频道上协商的内容。但是,如果没有任何其他映射规则通过设置
USERSRC(NOACCESS)
来阻止连接,那么该规则实际上没有任何作用

如果您有一个
SVRCONN
通道,其中有一个空的
MCAUSER
,则MQ将接受从客户端发送的用户名。对于大多数客户机,这是流程运行的用户,对于Java和JMS,发送任何用户(包括空白值)都非常容易。如果客户端发送的用户和通道上的
MCAUSER
均为空,则协商的
MCAUSER
将是消息通道代理进程运行的用户,在unix上,这通常是
mqm


第二条规则(
TYPE(BLOCKUSER)
)实际上是专门告诉MQ,如果用户从客户端发送
mqm
,则阻止任何通道,这可能与您试图实现的相反


如果客户端连接不是一个管理应用程序,那么解决这一问题的最佳方法是定义另一个用户并授予该用户对其所需内容的权限

有关如何向低权限用户提供MQ权限的更多详细信息,请参阅我对以下问题的回答:


允许应用程序连接到一个没有安全性的SVRCONN通道不是一个好做法,您没有提到您是否正在使用
CONNAUTH
TLS
证书来提供通道的安全性,但如果您不是,您应该使用其中一个来锁定可以连接到该通道的用户。

Hi,是的,我正在使用CONNAUTH:1:DISPLAY QMGR CONNAUTH AMQ8408:DISPLAY队列管理器详细信息。QMNAME(QM_TEST1)CONNAUTH(SYSTEM.DEFAULT.AUTHINFO.IDPWOS)或是验证谁可以连接到通道的方法?任何管理ID都将无法连接,除非您专门禁用该通道的检查。如果要使用
CONNAUTH
,则应设置
chlauthorlyadopt=y
,并在
AUTHINFO
对象集上设置
ADOPTCTX(是)
。如果所有客户端连接都需要CONNAUTH,则在
AUTHINFO
对象级别设置
CHCKCLNT(必需)
。如果只有一些频道需要CONNAUTH,则在
AUTHINFO
级别设置
CHCKCLNT(可选)
,然后使用与频道匹配的
CHLAUTH
规则将其提升到
CHCKCLNT(必需)
。非常感谢。)我懂了
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)