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
在 Windows 中:
<broker_instance_dir>\bin\artemis-service.exe stop
-
打开
<broker_instance_dir>/etc/login.config
配置文件。 添加名为
amqp-sasl-gssapi
的配置范围。以下示例显示了 JDK 的 Oracle 和 OpenJDK 版本中找到的Krb5LoginModule
的配置。amqp-sasl-gssapi { com.sun.security.auth.module.Krb5LoginModule required isInitiator=false storeKey=true useKeyTab=true principal="amqp/my_broker_host@example.com" debug=true; };
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
在 Windows 中:
<broker_instance_dir>\bin\artemis-service.exe start
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>