ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – WebSphere MQ v7.1安全性用户凭据

2019-10-07 01:01:20  阅读:197  来源: 互联网

标签:java jms ibm-mq


运行WebSphere MQ Server v7.1的Linux Server Box:

我创建了一个用户’mq-user’,它属于Linux中的’mq-users’组.然后我创建了一个队列管理器QM_TEST,并使用MQSC发出以下命令来创建队列并设置安全性:

SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mq-user') AUTHADD(ALL)
SET AUTHREC PROFILE(SYSTEM.MQEXPLORER.REPLY.MODEL) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,GET)
SET SET AUTHREC PROFILE(SYSTEM.ADMIN.COMMAND.QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(INQ,DSP,PUT)
DEFINE CHANNEL (TEST_CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) MCAUSER('mq-user')
SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS(*) MCAUSER('mq-user')
DEFINE QLOCAL (TEST_QUEUE)
SET AUTHREC PROFILE(TEST_QUEUE) OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(ALL)
DEFINE LISTENER (TEST_LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT (1414)
START LISTENER (TEST_LISTENER)

运行WebSphere MQ Client v7.1和WebSphere MQ Explorer的Linux客户端Box:

我以我的用户名(arrehman)登录,该用户名不属于mq-users组.但是,我可以通过Java应用程序和MQ Explorer客户端访问我在上面创建的队列,而无需传递任何用户凭据.如果安全有效,为什么会这样?

如需更多详细信息,请告知我们.谢谢.

解决方法:

这一行:

SET CHLAUTH(TEST_CHANNEL)TYPE(ADDRESSMAP)ADDRESS(*)MCAUSER(‘mq-user’)

说如下:

>对于请求TEST_CHANNEL的连接…
>来自任何IP地址……
>将MCAUSER设置为mq-user

换句话说,启用通道,使得任何连接都继承mq-user的权限,无论它们来自何处以及它们呈现的身份.因此,您看到的行为是基于上述CHLAUTH规则的预期行为.

列出的规则还有一些其他问题:

>使用PRINCIPAL而不是GROUP.在非Windows服务器上,如果指定PRINCIPAL,那么QMgr会查找该ID,查询其主要组,然后根据该组设置授权.因此,如果mq-users有一组主要的员工或用户,那么获得授权而不是mq-users,可能不是你想要的.始终使用组,以便获得您想要的setmqaut或AUTHREC的结果.
>在QMgr上授予ALL使ID /组管理. QMgr级别的一个特权是SET,具有SET权限的组中的任何用户都可以设置授权控制列表等.因此,即使您只授予AUTHADD(INQ,DSP,PUT),mq-users ID也可以提交PCF命令以授予对所有对象的所有访问权限.如果您需要,只需在QMgr上授予CONNECT和INQUIRE.
>有一个假设(实际上是粗体)表示您可能需要传递用户凭据.请注意,如果您提供用户ID和密码,WMQ不会验证用户ID和密码.它接受您断言的ID.密码字段可用于退出,可用于验证ID和密码,例如LDAP或本地操作系统.这样的退出可以从第三方购买或写入,但基本WMQ不对密码做任何事情.如果您在映射上指定了USERSRC(CHANNEL),那么您的ID将被使用并且很可能被拒绝.但拒绝可能是因为它在mqm组中(由默认的CHLAUTH规则阻止),或者因为它所在的组没有AUTHREC记录.

有关加强WMQ的更多信息,有许多资源已收集here. Hardening WebSphere MQ演示文稿来自v7.0.虽然v7.1有新的控件,但是主体保持不变:

>使用IP过滤验证连接(对于连接源自锁定数据中心的应用程序或QMgrs),SSL / TLS和/或退出
>通过在通道中对其进行硬编码或使用exit或CHLAUTH规则动态设置,将经过身份验证的标识映射到MCAUSER值
>应使用TLS对管理连接和高价值应用程序进行身份验证

标签:java,jms,ibm-mq
来源: https://codeday.me/bug/20191007/1863474.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有