IBM MQ 身份验证和授权
IBM MQ Authentication and Authorization
根据我目前的理解,所有客户端连接都在两个级别进行身份验证,通道级别和队列管理器级别,
在队列管理器级别,它使用 CONNAUTH
属性 的 QMGR
值,这是一个 AUTHINFO
对象来确定如何完成身份验证(例如:使用主机 OS 用户存储库),如果 AUTHINFO
对象指定 ADOPTCTX(YES)
,它使用包含在 MQCSP
结构中的用户 ID 作为应用程序上下文的用户 ID并且它用于授权,或者如果 ADOPTCTX(NO)
存在,则客户端应用程序 运行 下的用户 ID 用作应用程序上下文的用户 ID,并且该用户 ID 用于授权。
在频道级别,没有做任何关于授权的事情。只有身份验证会按照配置在那里进行。为了更细粒度的访问控制,一组通道认证记录被应用于通道。 CONNAUTH
属性 的 QMGR
值仍用于确定要根据其进行身份验证的用户存储库。
问题:
- 到目前为止我是否正确? (corrections/explanations 非常感谢。)
- 通道对象的 MCAUSER 属性有什么作用?它的目的是什么?为什么消息通道代理在哪个用户下运行很重要?
- 毕竟,通道级身份验证实际上如何与 MCAUSER 一起工作?
- 这两个验证程序是按什么顺序完成的?是否先进行频道认证?
您说得对,应该分两个阶段考虑客户端连接的 MQ 应用程序的安全性。有一个身份验证阶段(你是谁?证明它!)和一个授权阶段(既然我知道你是谁,你可以做你想做的事吗?)。
客户端连接的 MQ 应用程序的身份验证可以通过检查应用程序(在 MQCSP 中)或通道级别的某些内容提供的用户 ID 和密码来完成。这本质上是对通道连接进行身份验证,但它与客户端应用程序有着千丝万缕的联系。此通道身份验证可以使用 TLS 证书或安全出口以您喜欢的任何方式询问远程方。 [还有IP地址过滤,但我不会这么称呼那个身份验证]。
这些身份验证的目的是确定连接方是谁(并在必要时拒绝他们!)并为下一步(授权检查)分配适当的用户 ID。可以通过接受经过密码验证的用户 ID (ADOPTCTX(YES)
) 来分配此用户 ID;通过使用 CHLAUTH
规则映射证书 DN(或 IP 地址);通过安全出口设置 MCAUSER
;或者通过简单地将用户 ID 硬编码到 MCAUSER
中(不是身份验证,但仍然是一种为以后的授权检查分配用户 ID 的方法)。所有这些都有一个共同点,它们所做的最终会出现在 运行ning SVRCONN
的 MCAUSER
字段中。您可以使用 DISPLAY CHSTATUS
.
显示它
客户端连接的 MQ 应用程序的授权就像本地绑定的 MQ 应用程序一样发生。根据相同的规则检查相同的操作。是否允许此用户“打开此队列进行放置”,或“查询此 QMgr 对象”,或“订阅此主题”等。区别仅在于如何获取授权检查中使用的用户 ID - 即如何获取进入 MCAUSER
.
总结(并检查我是否涵盖了您所有的问题):-
- 有点 - 阅读上面的文字
- 运行 时的
MCAUSER
属性保存此客户端应用程序的最终确定的用户 ID。在定义时,它可以被硬编码为用户 ID(有些人使用它来将垃圾用户 ID 硬编码为 CHLAUTH
后备规则旁边的安全带)。
- 通道级身份验证实质上设置了
MCAUSER
的 运行 时间值
- 认证发生在授权之前。
进一步阅读
- CHLAUTH – the back-stop rule
- All the ways to set MCAUSER
- Interaction of CHLAUTH and CONNAUTH - 以前是博客 post 现在并入 IBM 知识中心
根据我目前的理解,所有客户端连接都在两个级别进行身份验证,通道级别和队列管理器级别,
在队列管理器级别,它使用 CONNAUTH
属性 的 QMGR
值,这是一个 AUTHINFO
对象来确定如何完成身份验证(例如:使用主机 OS 用户存储库),如果 AUTHINFO
对象指定 ADOPTCTX(YES)
,它使用包含在 MQCSP
结构中的用户 ID 作为应用程序上下文的用户 ID并且它用于授权,或者如果 ADOPTCTX(NO)
存在,则客户端应用程序 运行 下的用户 ID 用作应用程序上下文的用户 ID,并且该用户 ID 用于授权。
在频道级别,没有做任何关于授权的事情。只有身份验证会按照配置在那里进行。为了更细粒度的访问控制,一组通道认证记录被应用于通道。 CONNAUTH
属性 的 QMGR
值仍用于确定要根据其进行身份验证的用户存储库。
问题:
- 到目前为止我是否正确? (corrections/explanations 非常感谢。)
- 通道对象的 MCAUSER 属性有什么作用?它的目的是什么?为什么消息通道代理在哪个用户下运行很重要?
- 毕竟,通道级身份验证实际上如何与 MCAUSER 一起工作?
- 这两个验证程序是按什么顺序完成的?是否先进行频道认证?
您说得对,应该分两个阶段考虑客户端连接的 MQ 应用程序的安全性。有一个身份验证阶段(你是谁?证明它!)和一个授权阶段(既然我知道你是谁,你可以做你想做的事吗?)。
客户端连接的 MQ 应用程序的身份验证可以通过检查应用程序(在 MQCSP 中)或通道级别的某些内容提供的用户 ID 和密码来完成。这本质上是对通道连接进行身份验证,但它与客户端应用程序有着千丝万缕的联系。此通道身份验证可以使用 TLS 证书或安全出口以您喜欢的任何方式询问远程方。 [还有IP地址过滤,但我不会这么称呼那个身份验证]。
这些身份验证的目的是确定连接方是谁(并在必要时拒绝他们!)并为下一步(授权检查)分配适当的用户 ID。可以通过接受经过密码验证的用户 ID (ADOPTCTX(YES)
) 来分配此用户 ID;通过使用 CHLAUTH
规则映射证书 DN(或 IP 地址);通过安全出口设置 MCAUSER
;或者通过简单地将用户 ID 硬编码到 MCAUSER
中(不是身份验证,但仍然是一种为以后的授权检查分配用户 ID 的方法)。所有这些都有一个共同点,它们所做的最终会出现在 运行ning SVRCONN
的 MCAUSER
字段中。您可以使用 DISPLAY CHSTATUS
.
客户端连接的 MQ 应用程序的授权就像本地绑定的 MQ 应用程序一样发生。根据相同的规则检查相同的操作。是否允许此用户“打开此队列进行放置”,或“查询此 QMgr 对象”,或“订阅此主题”等。区别仅在于如何获取授权检查中使用的用户 ID - 即如何获取进入 MCAUSER
.
总结(并检查我是否涵盖了您所有的问题):-
- 有点 - 阅读上面的文字
- 运行 时的
MCAUSER
属性保存此客户端应用程序的最终确定的用户 ID。在定义时,它可以被硬编码为用户 ID(有些人使用它来将垃圾用户 ID 硬编码为CHLAUTH
后备规则旁边的安全带)。 - 通道级身份验证实质上设置了
MCAUSER
的 运行 时间值
- 认证发生在授权之前。
进一步阅读
- CHLAUTH – the back-stop rule
- All the ways to set MCAUSER
- Interaction of CHLAUTH and CONNAUTH - 以前是博客 post 现在并入 IBM 知识中心