IBM MQ 身份验证和授权

IBM MQ Authentication and Authorization

根据我目前的理解,所有客户端连接都在两个级别进行身份验证,通道级别和队列管理器级别,

在队列管理器级别,它使用 CONNAUTH 属性 的 QMGR 值,这是一个 AUTHINFO 对象来确定如何完成身份验证(例如:使用主机 OS 用户存储库),如果 AUTHINFO 对象指定 ADOPTCTX(YES),它使用包含在 MQCSP 结构中的用户 ID 作为应用程序上下文的用户 ID并且它用于授权,或者如果 ADOPTCTX(NO) 存在,则客户端应用程序 运行 下的用户 ID 用作应用程序上下文的用户 ID,并且该用户 ID 用于授权。

在频道级别,没有做任何关于授权的事情。只有身份验证会按照配置在那里进行。为了更细粒度的访问控制,一组通道认证记录被应用于通道。 CONNAUTH 属性 的 QMGR 值仍用于确定要根据其进行身份验证的用户存储库。

问题:

  1. 到目前为止我是否正确? (corrections/explanations 非常感谢。)
  2. 通道对象的 MCAUSER 属性有什么作用?它的目的是什么?为什么消息通道代理在哪个用户下运行很重要?
  3. 毕竟,通道级身份验证实际上如何与 MCAUSER 一起工作?
  4. 这两个验证程序是按什么顺序完成的?是否先进行频道认证?

您说得对,应该分两个阶段考虑客户端连接的 MQ 应用程序的安全性。有一个身份验证阶段(你是谁?证明它!)和一个授权阶段(既然我知道你是谁,你可以做你想做的事吗?)。

客户端连接的 MQ 应用程序的身份验证可以通过检查应用程序(在 MQCSP 中)或通道级别的某些内容提供的用户 ID 和密码来完成。这本质上是对通道连接进行身份验证,但它与客户端应用程序有着千丝万缕的联系。此通道身份验证可以使用 TLS 证书或安全出口以您喜欢的任何方式询问远程方。 [还有IP地址过滤,但我不会这么称呼那个身份验证]。

这些身份验证的目的是确定连接方是谁(并在必要时拒绝他们!)并为下一步(授权检查)分配适当的用户 ID。可以通过接受经过密码验证的用户 ID (ADOPTCTX(YES)) 来分配此用户 ID;通过使用 CHLAUTH 规则映射证书 DN(或 IP 地址);通过安全出口设置 MCAUSER;或者通过简单地将用户 ID 硬编码到 MCAUSER 中(不是身份验证,但仍然是一种为以后的授权检查分配用户 ID 的方法)。所有这些都有一个共同点,它们所做的最终会出现在 运行ning SVRCONNMCAUSER 字段中。您可以使用 DISPLAY CHSTATUS.

显示它

客户端连接的 MQ 应用程序的授权就像本地绑定的 MQ 应用程序一样发生。根据相同的规则检查相同的操作。是否允许此用户“打开此队列进行放置”,或“查询此 QMgr 对象”,或“订阅此主题”等。区别仅在于如何获取授权检查中使用的用户 ID - 即如何获取进入 MCAUSER.

总结(并检查我是否涵盖了您所有的问题):-

  1. 有点 - 阅读上面的文字
  2. 运行 时的 MCAUSER 属性保存此客户端应用程序的最终确定的用户 ID。在定义时,它可以被硬编码为用户 ID(有些人使用它来将垃圾用户 ID 硬编码为 CHLAUTH 后备规则旁边的安全带)。
  3. 通道级身份验证实质上设置了 MCAUSER
  4. 的 运行 时间值
  5. 认证发生在授权之前。

进一步阅读