第7章 セキュリティー
AMQ JMS には、アプリケーションのニーズに応じて活用できるセキュリティー関連の設定オプションが複数あります。
アプリケーション内で Connection
を作成する際に、ユーザー名とパスワードなどの基本的なユーザーの認証情報を ConnectionFactory
に直接渡す必要があります。ただし、no-argument ファクトリーメソッドを使用している場合は、接続 URI でユーザーの認証情報を指定することもできます。詳細は、「JMS オプション」 セクションを参照してください。
もう 1 つの一般的なセキュリティー対策として、SSL/TLS が使用されます。クライアントは、amqps
URI スキームが接続 URI で指定され、動作を設定するさまざまなオプションとともに、SSL/TLS トランスポートを介してサーバーに 接続 します。詳細は、「SSL/TLS オプション」 セクションを参照してください。
以前の項目と並べると、クライアントが、対応するすべてのものから選択するのではなく、サーバーで提供できる特定の SASL メカニズムのみを使用できるようにクライアントを制限することが望ましい場合があります。詳細は、「AMQP オプション」 セクションを参照してください。
受信した ObjectMessage
で getObject()
を呼び出すアプリケーションはデシリアライズ中に作成された型を制限する必要がある場合があります。AMQP タイプシステムを使用して構成されたメッセージ本文は ObjectInputStream
メカニズムを使用しないため、この予防措置は必要ありません。詳細は、「デシリアライズポリシーオプション」 セクションを参照してください。
7.1. OpenSSL サポートの有効化
SSL/TLS 接続は、パフォーマンスを向上させるためにネイティブの OpenSSL 実装を使用するように設定できます。OpenSSL を使用するには、transport.useOpenSSL
オプションを有効にし、OpenSSL サポートライブラリーをクラスパスで利用できるようにする必要があります。
Red Hat Enterprise Linux でインストールされた OpenSSL ライブラリーを使用するには、openssl
パッケージおよび apr
RPM パッケージをインストールし、以下の依存関係を POM ファイルに追加します。
例: ネイティブ OpenSSL サポートの追加
<dependency> <groupId>io.netty</groupId> <artifactId>netty-tcnative</artifactId> <version>2.0.34.Final-redhat-00001</version> <classifier>linux-x86_64-fedora</classifier> </dependency>
OpenSSL ライブラリーの実装の一覧 は、Netty プロジェクトから入手できます。