第7章 セキュリティー

AMQ JMS には、アプリケーションのニーズに合わせて活用できるセキュリティー関連の設定オプションが複数あります。

アプリケーション内に Connection を作成する際に、ユーザー名とパスワードなどの基本的なユーザーの認証情報を ConnectionFactory に直接渡す必要があります。ただし、no-argument ファクトリーメソッドを使用している場合は、接続 URI でユーザーの認証情報を指定することもできます。詳細は、「JMS オプション」 セクションを参照してください。

もう 1 つの一般的なセキュリティー対策として、SSL/TLS が使用されます。クライアントは、amqps URI スキームが接続 URI に指定され、動作を設定するさまざまなオプションとともに、SSL/TLS トランスポートを介してサーバーに接続します。詳細は、「SSL/TLS オプション」 セクションを参照してください。

以前の項目と詳しく説明すると、クライアントが、対応するすべてのものから選択するのではなく、サーバーで提供できる特定の SASL メカニズムのみを使用できるようにクライアントを制限することが望ましい場合があります。詳細は、「AMQP オプション」 セクションを参照してください。

受信した ObjectMessagegetObject() を呼び出すアプリケーションは、デシリアライズ中に作成された型を制限することができます。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.39.Final-redhat-00001</version>
  <classifier>linux-x86_64-fedora</classifier>
</dependency>

OpenSSL ライブラリーの実装のリストは、Netty プロジェクトから入手できます。