![[AIX、Linux 和 Windows]](../ngalw.gif)
保护 AMQP 客户机安全
您可以使用一系列安全机制来保护来自 AMQP 客户机的连接,并确保数据在网络上受到适当保护。 您可以将安全性构建到 MQ Light 应用程序中。 您还可以将 IBM® MQ 的现有安全性功能与 AMQP 客户机配合使用,其方式与将这些功能用于其他应用程序的方式相同。
通道认证规则 (CHLAUTH)
您可以使用通道认证规则来限制与队列管理器的 TCP 连接。 AMQP 通道支持使用您为队列管理器配置的通道认证规则。 如果为通道认证规则定义的概要文件与队列管理器上的任何 AMQP 通道匹配,那么这些规则适用于这些通道。 缺省情况下,在新的 IBM® MQ 队列管理器上会启用通道认证,因此您必须至少完成某些配置后才能使用 AMQP 通道。
有关如何配置通道认证规则以允许 AMQP 连接到队列管理器的更多信息,请参阅 创建和使用 AMQP 通道。
连接认证 (CONNAUTH)
您可以使用连接认证来认证与队列管理器的连接。 AMQP 通道支持使用连接认证来控制 AMQP 应用程序对队列管理器的访问。
AMQP 协议使用 SASL(简单认证与安全层)框架来指定认证连接的方式。 有各种 SASL 机制, IBM MQ 支持两种 SASL 机制 :ANONYMOUS 和 PLAIN。
如果使用 ANONYMOUS,那么客户机不会向队列管理器传递任何凭证来进行认证。 如果 CONNAUTH 属性中指定的 MQ AUTHINFO 对象的 CHCKCLNT 值为 REQUIRED 或 REQDADM(如果以管理用户身份进行连接),那么将拒绝连接。 如果 CHCKCLNT 值为 NONE 或 OPTIONAL,那么将接受连接。
如果使用 PLAIN,那么客户机会将用户名和密码传递到队列管理器来进行认证。 如果 CONNAUTH 属性中指定的 MQ AUTHINFO 对象的 CHCKCLNT 值为 NONE,那么将拒绝连接。 如果 CHCKCLNT 值为 OPTIONAL、REQUIRED 或 REQDADM(如果以管理用户身份进行连接),那么队列管理器将检查用户名和密码。 队列管理器会检查操作系统(如果 AUTHINFO 对象的类型为 IDPWOS)或 LDAP 存储库(如果 AUTHINFO 对象的类型为 IDPWLDAP)。
| SASL 机制 | 凭证从客户机传递至队列管理器? | CHCKCLNT 值 |
|---|---|---|
| ANONYMOUS | 否 | REQUIRED 或 REQDADM - 拒绝连接
NONE 或 OPTIONAL - 接受连接 |
| PLAIN | 是,用户名和密码 | REQUIRED , REQDADM 或 OPTIONAL-队列管理器检查的用户名和密码
NONE-连接被拒绝 |
amqp://mwhitehead:mYp4ssw0rd@localhost:5672/sports/football
通道上的 MCAUSER 设置
AMQP 通道具有 MCAUSER 属性,您可以使用该属性来设置授权与该通道的所有连接使用的 IBM MQ 用户标识。 从 AMQP 客户机到该通道的所有连接都将采用您所配置的 MCAUSER 标识。 该用户标识用于授权各个主题上的消息传递。
建议使用通道认证 (CHLAUTH) 来保护与队列管理器的连接安全。 如果要使用通道认证,那么建议将 MCAUSER 的值配置为非特权用户。 这样可确保,如果与通道的某个连接与 CHLAUTH 规则不匹配,那么该连接将无权在队列管理器上执行任何消息传递。
注: 在 Windows上,在 IBM MQ 9.2之前,只有长度不超过 12 个字符的用户标识才支持 MCAUSER 用户标识设置。 从 IBM MQ 9.2 Long Term Support开始,将除去 12 个字符的限制。SSL/TLS 支持
AMQP 通道支持使用为队列管理器配置的密钥存储库中的密钥来进行 SSL/TLS 加密。 用于 SSL/TLS 加密的 AMQP 通道配置选项与其他类型的 MQ 通道支持相同的选项;您可以指定密码规范以及队列管理器是否需要来自 AMQP 客户机连接的证书。
通过使用队列管理器的 FIPS 属性,您可以控制用于保护来自 AMQP 客户机的连接安全的 SSL/TLS 密码套件。
有关如何为队列管理器设置密钥存储库的信息,请参阅 在 AIX, Linux和 Windows 上使用 SSL/TLS。
有关如何为 AMQP 客户机连接配置 SSL/TLS 支持的信息,请参阅 创建和使用 AMQP 通道。
Java 认证和授权服务 (Java Authentication and Authorization Service, JAAS)
您可以选择为 AMQP 通道配置 JAAS 登录模块,该模块会对 AMQP 客户机提供的用户名和密码执行检查。 请参阅 为 AMQP 通道配置 JAAS。