首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMQ9776:频道被封锁

AMQ9776:频道被封锁
EN

Stack Overflow用户
提问于 2018-09-27 21:30:18
回答 1查看 5.7K关注 0票数 3

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

代码语言:javascript
复制
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)'.

我有以下官方记录:

代码语言:javascript
复制
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)     

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-28 07:06:58

请注意,对于MQ v8,以及稍后当MQ将MQ客户端用户与TYPE(BLOCKUSER)规则的USERLISTTYPE(USERMAP)规则上的CLNTUSER进行比较时,可以将其设置为查看客户端进程在MQCSP中运行的用户或在MQCSP中显示并通过CONNAUTH成功验证的用户。要获得后面的行为,必须在ChlauthEarlyAdopt=yChannels:节中设置qm.ini。对于在MQV8.0LTS和MQv9.0LTS下创建的新队列管理器,默认情况下不会设置这个队列管理器,MQ将查看客户端进程所使用的用户。对于MQv9.0.5CD、MQv9.1LTS和MQv9.1CD,默认设置它,MQ将查看在MQCSP中发送并由CONNAUTH成功验证的用户。

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

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

代码语言:javascript
复制
CHLAUTH(*)                              TYPE(BLOCKUSER)
USERLIST(*MQADMIN)     

该规则阻止MQ认为具有MQ管理权限的所有用户连接到队列管理器上的任何SVRCONN通道。

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

代码语言:javascript
复制
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)到这个通道的连接,并将用户设置为在该信道上协商的内容。但是,如果没有任何其他通过设置USERSRC(NOACCESS)阻止连接的映射规则,则此规则实际上不会执行任何操作。

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

第二条规则(TYPE(BLOCKUSER))实际上是告诉MQ阻塞用户所在的任何通道,mqm是从客户端发送的,这可能与您试图完成的任务截然相反。

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

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52545419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档