簡體   English   中英

ActiveMQ授權

[英]ActiveMQ authorization

如果要在Apache ActiveMQ上實現JAAS授權,是否必須使用activemq.xml配置文件中的插件?

這種方式確實不好,因為如果要更改授權,則必須更改activemq.xml文件並重新啟動服務器才能正常工作。

是否可以通過更改其他屬性文件而不是activemq.xml文件來使用類似JAAS身份驗證的方法? 還是可以自定義我自己的授權插件?

謝謝。

每當我設置ActiveMQ安全性時,我都發現最好使用帶通配符的普通AuthorizationPlugin來表示所覆蓋的目的地(這就是為什么在隊列和主題中使用命名約定確實很方便)的原因。 這樣的想法是,您定義了少數用戶組,並授予他們訪問這些目的地的權限。

從用戶名分配組的角色由身份驗證插件之一處理-JAAS插件對於在LDAP目錄中的ActiveMQ配置之外外部化此信息特別有用。

請查閱FuseSource的《 ActiveMQ安全指南》 (需要注冊)以獲取更多信息。

更新2018-07-02 ActiveMQ安全指南 ,現在位於redhat上。

我發現了一些代碼片段,這些片段最終對入門這個主題非常有幫助:

http://activemq.2283324.n4.nabble.com/Fully-programmatic-authorization-map-tp2344815.html

這是我最終使用它的方式(可能不是最好的方法):

public class TestAuthorizationPlugin extends AuthorizationPlugin {

然后:

@Override
public Broker installPlugin(Broker broker) {
    List<DestinationMapEntry> entries = new ArrayList<DestinationMapEntry>(); 
    try {
        entries.add(makeTopicAuthorization("groupA.topic", "groupA", "groupA", "groupA"));
        entries.add(makeQueueAuthorization("groupA.queue", "groupA", "groupA", "groupA"));
        entries.add(makeQueueAuthorization("groupB.queue", "groupB", "groupB", "groupB"));
        entries.add(makeTopicAuthorization("ActiveMQ.Advisory.>", "all", "all", "all"));
        AuthorizationMap authMap = new DefaultAuthorizationMap(entries);
        return new AuthorizationBroker(broker, authMap);
    } catch (Exception e) {
        LOGGER.error(e);
    } 

    return new AuthorizationBroker(broker, null);
}

將其罐入並粘貼在<activemq_home>/lib/

修改activemq.xml:

<plugins>
    <!--  use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->
    <jaasAuthenticationPlugin configuration="activemq" />

    <!-- Authorization control -->
    <bean xmlns="http://www.springframework.org/schema/beans" class="com.blackstrype.activemq.security.TestAuthorizationPlugin"/>
</plugins>

有關autho插件dev的更多信息的另一個有用鏈接:

http://mariuszprzydatek.com/2014/01/04/token-based-authentication-plugin-for-activemq/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM