5.5.2. 使用 Kerberos 凭证验证客户端
AMQ Broker 支持使用 简单身份验证和安全层(SASL)框架中的 GSSAPI 机制的 AMQP 连接的 Kerberos 身份验证。
代理通过使用 Java 身份验证与授权服务 (JAAS)获取其 Kerberos 接收器凭证。Java 安装中包含的 JAAS 库打包为登录模块 Krb5LoginModule,用于验证 Kerberos 凭证。有关 Krb5LoginModule 的更多信息,请参阅来自您的 Java 厂商的文档。例如,Oracle 在其 Java 8 文档中 提供有关其 Krb5LoginModule 登录模块的信息。
先决条件
- 您必须启用接收器的 GSSAPI 机制,然后才能使用 Kerberos 安全凭证验证 AMQP 连接。如需更多信息,请参阅 第 5.5.1 节 “配置网络连接以使用 Kerberos”。
流程
停止代理。
在 Linux 中:
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Windows 中:
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
打开
<broker_instance_dir>/etc/login.config配置文件。 添加名为
amqp-sasl-gssapi的配置范围。以下示例显示了 JDK 的 Oracle 和 OpenJDK 版本中找到的Krb5LoginModule的配置。Copy to Clipboard Copied! Toggle word wrap Toggle overflow amqp-sasl-gssapi-
默认情况下,代理上的 GSSAPI 机制实施使用名为
amqp-sasl-gssapi的 JAAS 配置范围来获取其 Kerberos 接收器凭证。 Krb5LoginModule-
这个版本的
Krb5LoginModule由 Oracle 和 OpenJDK 版本的 JDK 提供。通过参考来自 Java 供应商的文档,验证Krb5LoginModule的完全限定类名称及其可用选项。 useKeyTab-
在验证主体时,
Krb5LoginModule配置为使用 Kerberos keytab。keytab 使用来自 Kerberos 环境的工具生成。有关生成 Kerberos keytab 的详细信息,请参阅供应商的文档。 principal-
Principal 设置为
amqp/my_broker_host@example.com。这个值必须与您的 Kerberos 环境中创建的服务主体对应。有关创建服务主体的详情,请查看您供应商的文档。
启动代理。
在 Linux 中:
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Windows 中:
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.2.1. 使用替代配置范围 复制链接链接已复制到粘贴板!
您可以通过将 saslLoginConfigScope 参数添加到 AMQP 接收器的 URL 来指定替代配置范围。在以下配置示例中,slLoginConfigScope 参数被赋予值 alternative-sasl-gssapi。结果是一个接收器,它使用名为 alternative-sasl-gssapi 的替代范围,它在 <broker_instance_dir>/etc/login.config 配置文件中声明。
<acceptor name="amqp"> tcp://0.0.0.0:5672?protocols=AMQP;saslMechanisms=GSSAPI,PLAIN;saslLoginConfigScope=alternative-sasl-gssapi` </acceptor>
<acceptor name="amqp">
tcp://0.0.0.0:5672?protocols=AMQP;saslMechanisms=GSSAPI,PLAIN;saslLoginConfigScope=alternative-sasl-gssapi`
</acceptor>