5.5.2. 使用 Kerberos 凭证验证客户端
AMQ Broker 支持使用简单 身份验证和安全层 (SASL)框架中的 GSSAPI 机制的 AMQP 连接的 Kerberos 身份验证。
代理通过使用 Java 身份验证和授权服务(JAAS)获取其 Kerberos 接受者 凭证。Java 安装中包含的 JAAS 库打包成登录模块 Krb5LoginModule
,用于验证 Kerberos 凭据。有关其 Krb5LoginModule
的更多信息,请参阅您的 Java 供应商文档。例如,Oracle 提供了有关 Krb5LoginModule
登录模块的信息,作为 Java 8 文档 的一部分。
先决条件
- 您必须先启用接收器的 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
由 JDK 的 Oracle 和 OpenJDK 版本提供。通过引用 Java 供应商的文档,验证Krb5LoginModule
及其可用选项的完全限定类名称。 useKeyTab
-
Krb5LoginModule
在验证主体时使用 Kerberos keytab。keytabs 使用来自 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. 使用其他配置范围
您可以通过在 AMQP 接受器的 URL 中添加参数 saslLoginConfigScope
来指定替代的配置范围。在以下配置中,为参数 saslLoginConfigScope
提供值 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>