2012-04-27 111 views
4

现在我使用websphere MQ客户端连接到使用c#的远程MQ服务器(7.0版本),并发生权限问题,运行MQ客户端应用程序的用户的权限不足访问qmgr的权限。然后,我使用'setmqaut'命令来给用户足够的权限并且它可以工作。MQ客户端连接到远程MQ服务器的权限不足

我认为这不是很方便,必须是更好的方法。可以通过在MQ Server中添加用户IP吗?但我不知道该怎么做。

任何建议将不胜感激。 谢谢

回答

5

WebSphere MQ不执行任何验证。本地应用程序由操作系统进行身份验证,因此他们的ID可以被信任。 (根据定义,如果您不能相信本地操作系统认证,那么整个服务器都会受到影响。)与本地连接一样,WMQ相信远程连接的ID是真实的。由WMQ管理员决定采用哪种认证级别。在WMQ v7中,有两种选择 - 使用SSL/TLS通道进行身份验证,或使用通道出口进行身份验证。

无论是哪种情况,通道的MCAUSER值都决定了用于授权的ID。如果MCAUSER留空,则通道将使用客户端发送的用户标识。在你的情况下,你收到了2035错误,因为客户端发送了一个不在管理(mqm)组中的ID。如果您的客户端发送了ID'mqm'(或在Windows'MUSR_MQADMIN'上),连接将会成功。如果您的程序是Java或JMS,则选择提供的ID的功能是API的一部分。只要告诉QMgr你想成为谁。

如果您愿意允许远程连接在服务器上执行操作系统命令,那么只需将管理标识置于通道的MCAUSER中即可。 (例如,UNIX/Linux上的MCAUSER('mqm')或Windows上的MCAUSER('MUSR_MQADMIN'))。但是,请注意,具有管理权限的远程用户可以使用QMgr远程执行任意OS命令行代码。这是WMQ的一项功能,不是bug,因此我们绝不会在生产中推荐此功能。事实上,我个人建议开发环境能够实现安全性。等待Production直至找出如何认证连接以及需要哪些授权通常会导致不必要的部署延迟。

如果要使用IP筛选来减轻威胁,可以选择本地包含此功能的WMQ v7.1,也可以使用BlockIP2等退出。这两种解决方案都允许您创建按IP地址,用户ID等过滤传入连接请求的规则。

请注意,在v7.0 QMgr中,所有通道默认情况下都不受保护。因此,即使您在一个通道上过滤了传入请求,但如果其他人仍处于其默认状态,任何人仍可以以管理员身份连接并执行命令。要全面了解所有这些内容,请参阅位于t-rob.net的Hardening WebSphere MQ演示文稿。向下滚动到v7.0演示文稿。

+0

谢谢,T.Rob.It真的很有帮助!现在我知道该怎么做了。 – 2012-04-27 16:43:10

相关问题