身份验证
现在我们已经准备好了接受器和地址,是时候处理代理安全了。Artemis 继承了 ActiveMQ 的大多数安全概念。最显著的区别之一是 ActiveMQ 的组现在在 Artemis 中被称为角色。除此之外,对于现有的 ActiveMQ 用户来说,这些东西应该非常熟悉。让我们从研究身份验证机制和定义用户和角色(组)开始。
ActiveMQ 和 Artemis 都使用 JAAS 来定义身份验证凭据。在 ActiveMQ 中,这是通过在 conf/activemq.xml
中的适当代理插件来配置的。
<plugins>
<jaasAuthenticationPlugin configuration="activemq" />
</plugins>
JAAS 域的名称被指定为配置参数。
在 Artemis 中,通过在 etc/bootstrap.xml
中定义 <jaas-security>
配置来实现相同的功能。
<jaas-security domain="activemq"/>
从这一点开始,您可以在适当的文件中定义您的用户及其角色,例如 ActiveMQ 中的 conf/users.properties
和 conf/groups.properties
。类似地,etc/artemis-users.properties
和 etc/artemis-roles.properties
文件用于 Artemis。这些文件是可互换的,因此您应该能够将现有的配置复制到新的代理。
如果您的部署比这更复杂,需要一些高级 JAAS 配置,您需要去修改 etc/login.config
文件。重要的是要说,您在 ActiveMQ 中使用的所有自定义 JAAS 模块和配置都应该与 Artemis 兼容。
最后,如果您仍在使用 ActiveMQ 的简单身份验证插件,该插件在代理的 xml 配置文件中直接定义用户和组,您需要迁移到 JAAS,因为 Artemis 不支持类似的概念。