【问题标题】:IBM MQ Authentication and AuthorizationIBM MQ 认证和授权
【发布时间】:2021-03-14 08:43:16
【问题描述】:

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

在队列管理器级别,如果 @987654324 @object 指定ADOPTCTX(YES),它使用包含在MQCSP 结构中的用户ID 作为应用程序上下文的用户ID,它用于授权,或者如果ADOPTCTX(NO) 存在,则客户端应用程序在其下运行的用户ID用作应用程序上下文的用户 ID,并且该用户 ID 用于授权。

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

问题:

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

【问题讨论】:

  • 如果您有ADOPTCTX(YES) 并且提供了用户名和密码并成功通过身份验证,则频道的MCAUSER 将被覆盖。如果未提供用户名和密码,则 MCAUSER 将覆盖运行客户端应用程序的用户。如果您在QMGR AUTHINFO 对象上或通过CHLAUTH 规则没有CHKCLNT(REQUIRED),并且您没有MCAUSER,则客户端可以欺骗他们想要的任何用户。默认CHLAUTH 规则将默认阻止 MQ 管理员用户。最佳做法是设置 MCAUSER('*NOACCESS') 并让 CONNAUTH 覆盖它。
  • 这个问题目前包含多个问题。它应该只关注一个问题。
  • @Droid - 这是两个不能独立思考的问题 - 身份验证和授权如何交互。
  • @MoragHughson 我投票决定重新开放。
  • 我也是@JoshMc。不要认为它应该首先被关闭。这是一个很好的问题,很多人都在问。

标签: authentication authorization ibm-mq messaging


【解决方案1】:

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

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

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

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

总结(并检查我已经涵盖了你所有的问题):-

  1. 有点 - 阅读上面的文字
  2. MCAUSER 属性在运行时保存最终确定的此客户端应用程序的用户 ID。在定义时,它可以被硬编码为用户 ID(有些人使用它来将垃圾用户 ID 硬编码为与CHLAUTH 支持规则一起使用的大括号)。
  3. 通道级别身份验证实质上设置了MCAUSER 的运行时值
  4. 在授权之前进行身份验证。

进一步阅读

【讨论】:

  • 如果我理解正确的话,MCA用户是被授权执行操作的实际运行时用户。入站客户端连接提供 2 个用户 ID,即运行客户端应用程序的用户 ID 和 MQCSP 中提供的用户 ID 以及密码。使用这些传入的信息,完成识别和身份验证,最终确定运行时 MCAUSER
  • 是的,我要补充一点,客户端还可以提供一个数字证书,该证书也可以用于识别和身份验证,并最终确定运行时 MCAUSER
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 2018-07-25
  • 2010-11-14
  • 2021-11-08
相关资源
最近更新 更多