ActiveMQ 认证与授权

Posted peter2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ 认证与授权相关的知识,希望对你有一定的参考价值。

使用ActiveMQ自带simpleAuthenticationPlugin

1.直接将用户名密码写入activemq.xml文件

<plugins>
     <simpleAuthenticationPlugin>
            <users>
                  <authenticationUser username="username" password="password" groups="users, admins" />
            </users>
     </simpleAuthenticationPlugin>
 </plugins>

2.可以使用凭证文件credentials.properties来存储

<plugins>
     <simpleAuthenticationPlugin>
           <users>
                <authenticationUser username="$activemq.username" password="$activemq.password" groups="users, admins" />
           </users>
     </simpleAuthenticationPlugin>
</plugins>

vim credentials.properties
    activemq.username=username
    activemq.password=password

activemq.xml 顶部导入了file:$activemq.conf/credentials.properties,我们可以使用变量的方式引用该文件内部的属性
groups="users, admins" 表示定义用户所属的用户组, activemq按照用户组分配权限,注意不能删除groups属性,可以置空

使用JAASAuthentication Plugin

JAAS 全称为Java Authentication and Authorization Service JAVA认证授权服务
JAASAuthentication Plugin依赖标准的JAAS机制来实现认证,默认使用login.config文件作为配置

vim login.config
activemq 
    org.apache.activemq.jaas.PropertiesLoginModule required
        org.apache.activemq.jaas.properties.user="users.properties"
        org.apache.activemq.jaas.properties.group="groups.properties";
;

login.config配置中引用了users.properties和groups.properties分别进行用户名密码和用户组配置

vim users.properties
    username=password
vim groups.properties
    groups=username1, username2...

在activemq.xml添加JAASAuthentication Plugin配置

<plugins>
    <jaasAuthenticationPlugin configuration="activemq" />
</plugins>

configuration="activemq" 指向login.config中配置的名称

使用authorizationPlugin进行授权

activemq可以对Queue,Topic的读写创建等进行权限控制,权限按照用户组分配

<plugins>
    <authorizationPlugin>
            <map>
                  <authorizationMap>
                       <authorizationEntries>
                            <authorizationEntry queue="activemq.>" read="users" write="users" admin="users"/>
                            <authorizationEntry topic="USER.>" read="admins" write="admins" admin="admins"/>
                       </authorizationEntries>
                   </authorizationMap>
             </map>
    </authorizationPlugin>
</plugins>

> 表示通配符 上述配置表明只有users组才能读写创建activemq.开头的队列,只有admins组才能读写创建USER.开头的主题
值的注意的是,"activemq.>"中通配符前的点符号必须存在否则无法生效,也就是说前缀必须以点号结尾
> 也可用 * 替换

以上是关于ActiveMQ 认证与授权的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ配置用户认证信息

ActiveMQ配置用户认证信息

ActiveMQ中的安全机制 [转]

转载-ActiveMQ通过JAAS实现的安全机制

Apache ActiveMQ实战-基本安装配置与消息类型

漫谈认证与授权