4.4. 配置 AMQ 管理控制台
配置用户访问并请求对代理上资源的访问权限。
4.4.1. 使用红帽单点登录保护 AMQ 管理控制台
先决条件
- 红帽单点登录 7.4
流程
配置红帽单点登录:
-
导航到您要用于保护 AMQ 管理控制台的红帽单点登录中的域。红帽单点登录中的每个域都包含一个名为
Broker
的客户端。此客户端与 AMQ 无关。 -
在红帽单点登录中创建一个新客户端,如
artemis-console
。 进入客户端设置页面并设置:
有效的重定向 URI 到 AMQ 管理控制台 URL,后跟
*
,例如:https://broker.example.com:8161/console/*
-
Web 提取到与 Valid Redirect URI 相同的值。红帽单点登录允许您输入
+
,表示允许的 CORS 来源包括 Valid Redirect URI 的值。
-
为客户端创建一个角色,如
guest
。 - 确保需要访问 AMQ 管理控制台的所有用户都被分配了上述角色,例如使用红帽单点登录组。
-
导航到您要用于保护 AMQ 管理控制台的红帽单点登录中的域。红帽单点登录中的每个域都包含一个名为
配置 AMQ Broker 实例:
在您的
<broker-instance-dir>/instances/broker0/etc/login.config
文件中添加以下内容,将 AMQ 管理控制台配置为使用红帽单点登录:console { org.keycloak.adapters.jaas.BearerTokenLoginModule required keycloak-config-file="${artemis.instance}/etc/keycloak-bearer-token.json" role-principal-class=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal ; };
添加此配置可设置 JAAS 主体以及红帽单点登录对 bearer 令牌的要求。与 Red Hat Single Sign-On 的连接在
keycloak-bearer-token.json
文件中定义,如下一步中所述。创建一个包含以下内容的文件
<broker-instance-dir>/etc/keycloak-bearer-token.json
,以指定与用于 bearer 令牌交换的红帽单点登录连接:{ "realm": "<realm-name>", "resource": "<client-name>", "auth-server-url": "<RHSSO-URL>/auth", "principal-attribute": "preferred_username", "use-resource-role-mappings": true, "ssl-required": "external", "confidential-port": 0 }
<realm-name>
- 红帽单点登录中的域名称
<client-name>
- Red Hat Single Sign-On 中的客户端名称
<RHSSO-URL>
- Red Hat Single Sign-On 的 URL
创建一个包含以下内容的文件
<broker-instance-dir>/etc/keycloak-js-token.json
,以指定 Red Hat Single Sign-On 身份验证端点:{ "realm": "<realm-name>", "clientId": "<client-name>", "url": "<RHSSO-URL>/auth" }
通过编辑
<broker-instance-dir>/etc/bootstrap.xml
文件来配置安全设置。例如,要允许具有
amq 角色的用户
消耗信息并允许具有客户机
角色发送信息的用户,请添加以下内容:<security-setting match="Info"> <permission roles="amq" type="createDurableQueue"/> <permission roles="amq" type="deleteDurableQueue"/> <permission roles="amq" type="createNonDurableQueue"/> <permission roles="amq" type="deleteNonDurableQueue"/> <permission roles="guest" type="send"/> <permission roles="amq" type="consume"/> </security-setting>
- 运行 AMQ 代理实例并验证 AMQ 管理控制台配置。