1.2. Apache Camel のセキュリティー
概要
図1.2「Apache Camel のセキュリティーアーキテクチャー」 は、Apache Camel のエンドポイント間でメッセージを安全にルーティングするための基本的なオプションの概要を示しています。
図1.2 Apache Camel のセキュリティーアーキテクチャー
Apache Camel のセキュリティーの代替手段
図1.2「Apache Camel のセキュリティーアーキテクチャー」 に示すように、メッセージを保護するための次のオプションがあります。
エンドポイントセキュリティー - パート (a) は、セキュアなエンドポイントを持つ 2 つのルート間で送信されるメッセージを示しています。左側のプロデューサーエンドポイントは、右側のコンシューマーエンドポイントへの安全な接続を開きます (通常は SSL/TLS を使用)。このシナリオでは、両方のエンドポイントがセキュリティーをサポートしています。
エンドポイントセキュリティーを使用すると、通常、何らかの形式のピア認証 (場合によっては認可) を実行できます。
ペイロードセキュリティー - パート (b) は、エンドポイントが両方とも セキュアではない 2 つのルート間で送信されるメッセージを示しています。この場合、メッセージを不正なスヌーピングから保護するには、送信前にメッセージを暗号化し、受信後にメッセージを復号する ペイロードプロセッサー を使用します。
ペイロードセキュリティーには、いかなる種類の認証または認可メカニズムも 提供しない という制限があります。
エンドポイントセキュリティー
セキュリティー機能をサポートする Camel コンポーネントがいくつかあります。ただし、これらのセキュリティー機能は、Camel コア ではなく、個々のコンポーネントによって実装されていることに注意してください。つまり、サポートされるセキュリティー機能の種類とその実装の詳細は、コンポーネントごとに異なります。現在セキュリティーをサポートしている Camel コンポーネントの一部は次のとおりです。
- JMS および ActiveMQ - クライアントからブローカーへの通信およびブローカーからブローカーへの通信のための SSL/TLS セキュリティーと JAAS セキュリティー。
- Jetty - HTTP Basic 認証と SSL/TLS セキュリティー。
- CXF - SSL/TLS セキュリティーと WS-Security。
- Crypto - メッセージの整合性を保証するために、デジタル署名を作成および検証します。
- Netty - SSL/TLS セキュリティー。
- MINA - SSL/TLS セキュリティー。
- Cometd - SSL/TLS セキュリティー。
- glogin および gauth - Google アプリケーションのコンテキストでの認可。
ペイロードのセキュリティー
Apache Camel は、以下のペイロードセキュリティー実装を提供します。この実装では、暗号化手順および復号化手順は marshal()
および unmarshal()
操作でデータ形式として公開されます。
XMLSecurity データ形式
XMLSecurity データ形式は、XML ペイロードを暗号化するために特別に設計されています。このデータ形式を使用する場合、暗号化する XML 要素を指定できます。デフォルトの動作では、すべての XML 要素を暗号化します。この機能は、対称暗号化アルゴリズムを使用します。
詳細については、http://camel.apache.org/xmlsecurity-dataformat.html を参照してください。
Crypto データ形式
Crypto データ形式は、あらゆる種類のペイロードを暗号化できる汎用暗号化機能です。これは Java Cryptographic Extension に基づいており、対称 (共有キー) 暗号化と復号化のみを実装します。
詳細については、http://camel.apache.org/crypto.html を参照してください。