5.2.2. 根据属性文件配置用户和密码身份验证
AMQ Broker 支持灵活的基于角色的安全模型,以根据其地址将安全性应用到队列中。队列绑定到一对一(用于点对点消息)或多对一(用于发布-订阅消息传递)的地址。当消息发送到地址时,代理将查找与该地址绑定的一组队列,并将消息路由到该组队列。
当您需要基本用户和密码身份验证时,请使用 PropertiesLoginModule
定义它。此登录模块根据存储在代理本地的以下配置文件检查用户凭证:
artemis-users.properties
- 用于定义用户和相应密码
artemis-roles.properties
- 用于定义角色并将用户分配给这些角色
login.config
- 用于为用户和密码身份验证和虚拟客户机访问配置登录模块
artemis-users.properties
文件可以包含哈希密码,以提高安全性。
以下部分介绍如何配置:
5.2.2.1. 配置基本用户和密码身份验证
以下步骤演示了如何配置基本用户和密码身份验证。
流程
打开
<broker_instance_dir>/etc/login.config
配置文件。默认情况下,新 AMQ Broker 7.9 实例中的此文件包括以下行:activemq { org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule sufficient debug=false reload=true org.apache.activemq.jaas.properties.user="artemis-users.properties" org.apache.activemq.jaas.properties.role="artemis-roles.properties"; };
activemq
- 配置的别名.
org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule
- 实施类。
足够
指定
PropertiesLoginModule
所需成功级别的标志。您可以设置的值有:-
必需
:需要登录模块才能成功。无论成功还是失败,身份验证仍会继续执行在给定别名下配置的登录模块列表。 -
必需
:需要登录模块才能成功。失败会立即将控制权返回到应用。身份验证不会继续执行在给定别名下配置的登录模块列表。 -
足够
:成功不需要登录模块。如果成功,控制将返回到应用,并且不会进一步继续身份验证。如果失败,身份验证尝试会结束在给定别名下配置的登录模块列表。 -
可选
:成功不需要登录模块。无论成功还是失败,身份验证都会继续低于在给定别名下配置的登录模块列表。
-
org.apache.activemq.jaas.properties.user
- 指定为登录模块实施定义一组用户和密码的属性文件。
org.apache.activemq.jaas.properties.role
- 指定将用户映射到登录模块实施的已定义角色的属性文件。
-
打开
<broker_instance_dir>/etc/artemis-users.properties
配置文件。 添加用户并将密码分配给用户。例如:
user1=secret user2=access user3=myPassword
-
打开
<broker_instance_dir>/etc/artemis-roles.properties
配置文件。 将角色名称分配给之前添加到
artemis-users.properties
文件中的用户。例如:admin=user1,user2 developer=user3
-
打开
<broker_instance_dir>/etc/bootstrap.xml
配置文件。 如有必要,将您的安全域别名(在这个实例中为 activemq)添加到该文件中,如下所示:
<jaas-security domain="activemq"/>