内部プライベートネットワークでSOAP Webサービスを保護する最良の方法は何ですか

java jax-ws web-services ws-security
内部プライベートネットワークでSOAP Webサービスを保護する最良の方法は何ですか

今日では、アプリケーションを接続するために内部使用のために開発されているWebサービスがますます増えています。 このWebサービスを制御および保護するためのESBがないため、それらを保護するための良い方法は何かを推測します。

双方向SSLをセットアップしようとしましたが、特定のWebサービスの認証を制御することはできません。

私の必要は、どのアプリケーションが私のWebサービスを呼び出しているかを制御できるようにすることであり、このアプリケーションはそれを呼び出すことを許可されています。

WS-TrustとWs-Securityは元のSOAPメッセージを変更するので好きではありませんが、他のソリューションではないようです。

何か案が?

ありがとう

  4  0


ベストアンサー

あなたの質問では、現在のSOAPメッセージを変更したくないと言っています。つまり、メッセージレベルのセキュリティが無効になっています。

そのため、トランスポートレベルのセキュリティを進める必要があります。

双方向SSLを使用しても、ユーザー証明書のthumb印に基づいてユーザーを承認できます。その方法は、使用するスタックによって異なります。

他のオプションは..

  1. HTTPS経由の基本認証

  2. 2-legged OAuth

違いは、2-legged oauthは否認防止をサポートしますが、基本認証はサポートしません。

認証に使用するメカニズムに関係なく、XACMLを使用してきめ細かな認証を行うことができます…​

2


https経由でhttp基本認証を使用できます。 バックエンドアプリケーションがユーザーを認識できるようにするため、認証を行うことができます。

このリンク[1]は、WSO2 ESBで同様のことをどのように行ったかを示しています。 ただし、スタックによっては方法があります。

1


_
私の必要は、どのアプリケーションが私のWebサービスを呼び出しているかを制御できるようにすることであり、このアプリケーションはそれを呼び出すことを許可されています。
_

あなたが望むのはあなたのサービスプロバイダー側​​の承認メカニズムだと思います。

soapメッセージの暗号化を行わない場合は、soap msgに新しいパラメーターを追加することを検討できます。 e.g. クライアントは、WSに新しいパラメーターとして (または暗号化された `AppId、PassWord`文字列)を送信し、WSプロバイダー側​​で、WSがアプリケーションに呼び出す権利があるかどうかをチェックします。

しかし、これはクライアントとサービスの実装に変更をもたらします。

または、要求のクライアントIPを確認して、どのアプリケーションからのものであるかを判断することもできます。 アプリケーションでIPアドレスが修正されている場合。

0


タイトルとURLをコピーしました