ActiveMQのユーザーベースの認証を構成しようとしていますが、このプロセスに関連する多くの異なるファイルについてかなり混乱しています。 ActiveMQのセキュリティページ を読みましたが、まだいくつか質問があります。
明確にするために、私の目標は、指定したユーザーのみがActiveMQの読み取りまたは書き込み、またはWebコンソールへのアクセスを行えるようにすることです。これらはローカルActiveMQユーザーにすることができ、LDAPは必要ありません。
Webコンソールへのアクセスを構成するためにconf/jetty-realm.properties
でユーザーを構成する必要があることに気付きましたが、それを超えて行き詰まっています。
さて、conf
フォルダ内の認証に関連していると思われるファイルは...
credentials.properties
credentials-enc.properties
groups.properties
login.config
users.properties
さらに、セキュリティページでは、「simpleAuthenticationPlugin
」の使用を推奨しています
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="system" password="manager"
groups="users,admins"/>
<authenticationUser username="user" password="password"
groups="users"/>
<authenticationUser username="guest" password="password" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
ブローカーで
users.properties
はユーザーが行くべきところのようですが、このファイルが存在する場合、simpleAuthenticationPlugin
のポイントがわかりません。group.properties
はグループを構成する場所のようです。login.config
はusers.properties
とgroups.properties
を指しているだけのようです。credentials.properties
は冗長なようです。ここでユーザーが構成されているようです。 users.properties
が存在する場合、これが存在する理由がわかりません。credentials-enc.properites
は暗号化されたパスワードの場所のように見えますが、users.properties
が存在する場合、なぜこれが存在するのでしょうか。ActiveMQでローカルユーザーを構成し、それがキューに対して読み取りまたは書き込みを行える唯一のユーザーになるようにする適切な方法は何ですか?
次の各ファイルの目的は何ですか?
credentials.properties
credentials-enc.properties
groups.properties
login.config
users.properties
simpleAuthenticationPlugin
はこれらのファイルを廃止しますか?
私がこれに回答している時点では、この質問は2歳です。そのため、私の回答には、これが投稿された時点から変更されたことが含まれている可能性があります。最初に2番目の質問に答えます。
credentials.properties -> clear text passwords
credentials-enc.properties -> Encrypted passwords, if configured
groups.properties -> a list of groups, and what users are members
login.config -> a file to configure more advanced auth like ldap integration
users.properties -> a list of user names.
自分でこれらのことを理解しようとしたときにこの質問を見つけたので、私は専門家ではありません。しかし、私は私が学んだことを共有します。
Login.config以外の上記のものはすべて無関係になりました。またはそれは私にはそのように思えます。 LDAP統合を構成しようとしている場合は、login.configを処理する必要がありますが、それ以外の場合...私も関係ないと思います。私がそれらをいじったときに何かをするもの:
jetty-realm.propertiesこれは、「すぐに使える」重要な機能です。それは次のようにフォーマットされます:
userName: securePassword, nameOfGroupUserIsMemberOf
したがって、「foouser」ユーザーにパスワード「barpasswd」を使用させ、「buzgroup」グループのメンバーにしたい場合、このファイルには次の行が必要です。
foouser: barpaaswd, buzgroup
では、ActiveMQはどのようにしてこのファイルを呼び出すのでしょうか。デフォルトでは、次のファイルで構成されています。jetty.xmlこれはvery重要なファイルです。 LDAP統合のために見つけた指示の多くは、このファイルを変更することをお勧めしています...私がそれを理解した場合、私はこの投稿を修正します。他の重要なファイルは次のとおりです:activemq.xmlこの投稿の時点で、公式ドキュメントはいくつかの理由でこのファイルを変更することを推奨しています。それらの1つはLDAP統合用です...しかし、これらの手順は、私の知る限りでは機能しません。上記で、このファイルを変更してユーザーアカウントをハードコードすることを発見しました。下位互換性のためにこれが含まれていると思いますが、確信はありません。
今、私は最初の質問に答えます。 jetty-realm.propertiesでユーザーを構成したら、アクセス許可を使用してactivemq.xmlを構成できます。
例: https://svn.Apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/org/Apache/activemq/security/jaas-broker.xml あなたはauthorizationMapセクションでそれを見ることができます...
興味のある方のためのメモ:
指示に従ってパスワードを暗号化すると、サービスの読み込みが停止しました。その理由は、ファイル「credentials-enc.properties」のフォーマットにあるようです。 「jetty-realm.properties」のように再フォーマットすると、サービスはロードされますが、暗号化されたパスワードは無視されます。楽しい。暗号化パスワードを「jetty-realm.properties」に入れてみましたが、喜びはありませんでした。
テキストを暗号化および復号化するためにactivemqを取得できますが、ドキュメントには英数字のみがサポートされていると記載されていることに注意してください。スペースなし、それ以外。
また、見つけたページへのリンクを提供しますが、すべて競合しており、デフォルトの設定以外はほとんど機能しません。
LDAP統合について知っていること:JAASを使用する場合は、新しいバージョンを使用しないでください。これらのリンクのいくつかで示唆されているように、jetty-plusを使用しないでください。
https://www.middlewareinventory.com/blog/active-mq-installation-and-security-setup-and-hardening-step-by-step/https:// activemq .Apache.org/encrypted-passwords.htmlhttp://activemq.Apache.org/cached-ldap-authorization-module.htmlhttp://activemq.Apache .org/security.htmlhttps://stackoverflow.com/questions/52686757/activemq-web-console-using-ldap-active-directory-authentication/55244956#55244956https://bacedifo.blogspot.com/2013/06/securing-activemq-580-web-console-using.htmlhttps://steamingpileofsoftware.blogspot.com/2013/10/secure -your-jetty-activemq-web-console.html