我是WAS MQ的新手。我有一个名为QM1的qmgr和一个名为Q1的本地队列。有一个SVRCONN通道,MCA设置为mqm。
我想阻止通过此通道的传入消息到P1的PUT消息。 我使用的是setmqaut,但它没有按我的意愿工作。
答案 0 :(得分:1)
您无法通过该频道阻止特定API调用的原因是MCAUSER('mqm')
设置可确保通过该频道始终连接的任何内容都与完全管理权限相关联。无法使用setmqaut
或任何其他本机WMQ功能来阻止管理员访问队列。无论任何setmqaut
设置如何,QMgr始终允许管理员进行访问。
关于推荐什么有点不清楚,因为没有“WAS MQ”这样的东西。有WebSphere Application Server(WAS)和WebSphere MQ(WMQ)。 WAS过去曾与WMQ捆绑销售,但两者不是单一产品。
假设您的意思是WebSphere MQ而不是WebSphere App Server与WMQ交谈,我强烈建议您转到现代版本。 WMQ v7.0已经宣布终止生命,它缺乏版本v7.1及更高版本的身份验证功能。从v8.0开始,WMQ甚至可以验证用户ID和密码。
为了在WMQ中验证和应用粒度授权,您需要在频道的MCAUSER
中使用某些值其他而非“mqm”。标准建议是将MCAUSER
,RCVR
,RQSTR
和CLUSRCVR
类型的所有渠道SVRCONN
设置为*NOBODY
,然后安排根据有用的内容验证您的频道,例如证书的专有名称。验证连接的其他不太有用的方法(因为这些很难称为“身份验证”)包括查看入站连接的IP地址或SVRCONN
上声明的身份。
在v7.0中,这些需要退出,BlockIP2
是全球WMQ安装基础中使用的标准。在v7.1和v7.5中,只需使用标准CHLAUTH
脚本配置MQSC
规则即可实现相同的目的。
有几个会议演示文稿在t-rob.net页面的Links上讨论了如何执行此操作。我强烈建议转移到WMQ的v7.5,特别是作为开发人员的you can do so for free,无论运行QMgr的公司所购买的许可的状态如何。但是,如果正在维护,生产中的QMgr也可以免费升级到v7.5。如果你等到6月,你可以拥有v8.0,尽管尚未公布免费开发者版本的可用性,据我所知。
答案 1 :(得分:1)
我搜索了很长时间来解决这个问题,并且我还阅读了T.Rob个演示文稿,特别是this个。最后,我选择定义CHLAUTH
的解决方案,以便IP
想要连接到我的频道。
我将以下CHLAUTH
添加到我的队列管理器中,它可以正常工作。
SET CHLAUTH('SVRCONN') TYPE(BLOCKUSER) USERLIST('ALLOWANY') WARN(YES) ACTION(ADD)
SET CHLAUTH('SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS)
SET CHLAUTH('SVRCONN') TYPE(ADDRESSMAP) ADDRESS('192.168.148.40-60') MCAUSER('mqm')
我还建议您查看this。