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.8 实例中,这个文件包括以下行: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"/>