7.3. 配置 SASL 身份验证
AMQ C++ 使用 SASL 协议来执行身份验证。SASL 可以使用多种不同的 验证机制。当两个网络对等连接时,它们交换其允许的机制,并选择了这两者允许的最强机制。
客户端使用 Cyrus SASL 执行身份验证。Cyrus SASL 使用插件来支持特定的 SASL 机制。在使用特定的 SASL 机制前,必须安装相关的插件。例如,您需要 cyrus-sasl-plain 插件才能使用 SASL PLAIN 身份验证。
要查看 Red Hat Enterprise Linux 中的 Cyrus SASL 插件列表,请使用 yum search cyrus-sasl 命令。要安装 Cyrus SASL 插件,请使用 yum install PLUG-IN 命令。
默认情况下,AMQ C++ 允许本地 SASL 库配置支持的所有机制。要限制允许的机制,从而控制可以协商哪些机制,请使用 sasl_allowed_mechs 连接选项。这个选项接受包含空格分隔的机制名称列表的字符串。
示例:配置 SASL 身份验证
proton::connection_options opts {};
opts.sasl_allowed_mechs("ANONYMOUS");
container.connect("amqps://example.com", opts);
proton::connection_options opts {};
opts.sasl_allowed_mechs("ANONYMOUS");
container.connect("amqps://example.com", opts);
这个示例强制连接使用 ANONYMOUS 机制进行身份验证,即使我们连接的服务器可以提供其他选项。有效机制包括 ANONYMOUS,PLAIN,SCRAM-SHA-256,SCRAM-SHA-1,GSSAPI, 和 EXTERNAL。
AMQ C++ 默认启用 SASL。要禁用它,将 sasl_enabled 连接选项设置为 false。
示例:禁用 SASL
proton::connection_options opts {};
opts.sasl_enabled(false);
container.connect("amqps://example.com", opts);
proton::connection_options opts {};
opts.sasl_enabled(false);
container.connect("amqps://example.com", opts);