【发布时间】:2021-03-14 08:43:16
【问题描述】:
根据我目前的理解,所有客户端连接都在两个级别进行身份验证,通道级别和队列管理器级别,
在队列管理器级别,如果 @987654324 @object 指定ADOPTCTX(YES),它使用包含在MQCSP 结构中的用户ID 作为应用程序上下文的用户ID,它用于授权,或者如果ADOPTCTX(NO) 存在,则客户端应用程序在其下运行的用户ID用作应用程序上下文的用户 ID,并且该用户 ID 用于授权。
在频道级别,没有任何关于授权的事情。只有身份验证发生在那里配置。对于更细粒度的访问控制,将一组通道身份验证记录应用于通道。 CONNAUTH 属性的 QMGR 值仍用于确定要对其进行身份验证的用户存储库。
问题:
- 到目前为止,我是否正确? (非常感谢您的更正/解释。)
- 通道对象的 MCAUSER 属性有什么作用?它的目的是什么?为什么消息通道代理在哪个用户下运行很重要?
- 毕竟,通道级别的身份验证实际上是如何与 MCAUSER 一起工作的?
- 这两个身份验证过程是按什么顺序完成的?是先做通道认证吗?
【问题讨论】:
-
如果您有
ADOPTCTX(YES)并且提供了用户名和密码并成功通过身份验证,则频道的MCAUSER将被覆盖。如果未提供用户名和密码,则MCAUSER将覆盖运行客户端应用程序的用户。如果您在QMGR AUTHINFO对象上或通过CHLAUTH规则没有CHKCLNT(REQUIRED),并且您没有MCAUSER,则客户端可以欺骗他们想要的任何用户。默认CHLAUTH规则将默认阻止 MQ 管理员用户。最佳做法是设置MCAUSER('*NOACCESS')并让CONNAUTH覆盖它。 -
这个问题目前包含多个问题。它应该只关注一个问题。
-
@Droid - 这是两个不能独立思考的问题 - 身份验证和授权如何交互。
-
@MoragHughson 我投票决定重新开放。
-
我也是@JoshMc。不要认为它应该首先被关闭。这是一个很好的问题,很多人都在问。
标签: authentication authorization ibm-mq messaging