Authentication IBM MQ身份验证和授权

Authentication IBM MQ身份验证和授权,authentication,authorization,ibm-mq,messaging,Authentication,Authorization,Ibm Mq,Messaging,根据我目前的理解,所有客户端连接都在两个级别进行身份验证,即通道级别和队列管理器级别 在队列管理器级别,它使用QMGR的CONNAUTH属性值来确定身份验证是如何完成的,QMGR是AUTHINFO对象,例如:使用主机操作系统用户repo,如果AUTHINFO对象指定了ADOPTCTXYES,它使用MQCSP结构中包含的用户id作为应用程序上下文的用户id,并用于授权,或者如果存在ADOPTCTXNO,则运行客户端应用程序的用户id用作应用程序上下文的用户id,该用户id用于授权 在通道级别,未执

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

在队列管理器级别,它使用QMGR的CONNAUTH属性值来确定身份验证是如何完成的,QMGR是AUTHINFO对象,例如:使用主机操作系统用户repo,如果AUTHINFO对象指定了ADOPTCTXYES,它使用MQCSP结构中包含的用户id作为应用程序上下文的用户id,并用于授权,或者如果存在ADOPTCTXNO,则运行客户端应用程序的用户id用作应用程序上下文的用户id,该用户id用于授权

在通道级别,未执行任何有关授权的操作。只有身份验证按照配置进行。为了实现更细粒度的访问控制,将对通道应用一组通道身份验证记录。CONNAUTH属性的QMGR值仍然用于确定要进行身份验证的用户存储库

问题:

在这一点上我说的对吗?非常感谢您的更正/解释。 通道对象的MCAUSER属性做什么?它的目的是什么?为什么消息通道代理在哪个用户下运行很重要? 毕竟,通道级身份验证实际上如何与MCAUSER一起工作? 这两个身份验证过程按什么顺序进行?是否先进行通道身份验证?
您认为应该分两个阶段考虑客户端连接的MQ应用程序的安全性,这是正确的。有一个认证阶段你是谁?证明它!,授权阶段现在我知道你是谁了,你可以做你想做的事吗

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

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

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

为了总结和检查,我已经回答了您的所有问题:-

排序-阅读上面的文本 运行时的MCAUSER属性保存此客户端应用程序的最终确定的用户ID。在定义时,它可以硬编码为用户id一些人使用它硬编码垃圾用户id作为皮带和支架沿着CHLAUTH backstop规则。 通道级身份验证本质上设置MCAUSER的运行时值 身份验证发生在授权之前。 进一步阅读

-以前是一篇博文,现在已并入IBM知识中心
您认为应该分两个阶段考虑客户端连接的MQ应用程序的安全性,这是正确的。有一个认证阶段你是谁?证明它!,授权阶段现在我知道你是谁了,你可以做你想做的事吗

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

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

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

为了总结和检查,我已经回答了您的所有问题:-

排序-阅读上面的文本 运行时的MCAUSER属性保存此客户端应用程序的最终确定的用户ID。在定义时,它可以硬编码为用户id一些人使用它硬编码垃圾用户id作为皮带和支架沿着CHLAUTH backstop规则。 通道级身份验证本质上设置MCAUSER的运行时值 身份验证发生在授权之前。 进一步阅读

-以前是一篇博文,现在已并入IBM知识中心
如果您采用了CTXYES,并且提供了用户名和密码并成功进行了身份验证,则会覆盖通道的MCAUSER。如果未提供用户名和密码,则MCAUSER将覆盖运行客户端应用程序的用户。如果QMGR AUTHINFO对象或通过CHLAUTH规则都不需要chkclntre,并且没有MCAUSER,则客户端可以欺骗他们想要的任何用户。默认CHLAUTH规则默认情况下将阻止MQ管理员用户。最佳做法是设置MCAUSER“*NOACCESS”并让CONNAUTH覆盖它。此问题目前包含多个问题。它应该只关注一个问题。@Droid-这是两个无法独立思考的问题-身份验证和授权如何相互作用。@MoragHughson我投票决定重新打开。我也是@JoshMc。一开始我不认为它应该被关闭。这是一个很好的问题,也是很多人都在问的问题。如果您采用了CTXYES,并且提供了用户名和密码并成功进行了身份验证,则会覆盖通道的MCAUSER。如果未提供用户名和密码,则MCAUSER将覆盖运行客户端应用程序的用户。如果QMGR AUTHINFO对象或通过CHLAUTH规则都不需要chkclntre,并且没有MCAUSER,则客户端可以欺骗他们想要的任何用户。默认CHLAUTH规则默认情况下将阻止MQ管理员用户。最佳做法是设置MCAUSER“*NOACCESS”并让CONNAUTH覆盖它。此问题目前包含多个问题。它应该只关注一个问题。@Droid-这是两个无法独立思考的问题-身份验证和授权如何相互作用。@MoragHughson我投票决定重新打开。我也是@JoshMc。一开始我不认为它应该被关闭。这是一个很好的问题,也是很多人都在问的问题。如果我理解正确,MCA用户就是被授权执行操作的实际运行时用户。入站客户机连接提供2个用户ID,客户机应用程序运行时使用的用户ID和MQCSP中提供的用户ID以及密码。使用这些传入信息,完成识别和身份验证,最终确定运行时MCAUSER是的,我要补充的是,客户端还可以提供数字证书,该证书也可以用于识别和身份验证,并最终确定运行时MCAUSER(如果我理解正确),MCA用户是被授权执行操作的实际运行时用户。入站客户机连接提供2个用户ID,客户机应用程序运行时使用的用户ID和MQCSP中提供的用户ID以及密码。使用这些传入信息,完成标识和身份验证,最终确定运行时MCAUSER是的,我要补充的是,客户端还可以提供数字证书,该证书也可以用于标识和身份验证,并最终确定运行时MCAUSER