Webサービス-セキュリティ
セキュリティはWebサービスにとって重要です。ただし、XML-RPC仕様もSOAP仕様も、明示的なセキュリティまたは認証の要件を定めていません。
Webサービスには3つの特定のセキュリティ問題があります-
- Confidentiality
- Authentication
- ネットワークセキュリティー
守秘義務
クライアントがXML要求をサーバーに送信する場合、通信の機密性を維持できますか?
答えはここにあります-
- XML-RPCとSOAPは、主にHTTP上で実行されます。
- HTTPはSecureSockets Layer(SSL)をサポートしています。
- 通信はSSLを介して暗号化できます。
- SSLは実績のあるテクノロジーであり、広く展開されています。
単一のWebサービスは、一連のアプリケーションで構成されている場合があります。たとえば、1つの大きなサービスが、他の3つのアプリケーションのサービスを結び付ける場合があります。この場合、SSLは適切ではありません。メッセージはサービスパスに沿った各ノードで暗号化する必要があり、各ノードはチェーン内の潜在的な弱いリンクを表します。現在、この問題に対する合意された解決策はありませんが、有望な解決策の1つはW3CXML暗号化標準です。この標準は、XMLドキュメント全体またはXMLドキュメントの一部のみを暗号化および復号化するためのフレームワークを提供します。www.w3.org/Encryptionで確認できます
認証
クライアントがWebサービスに接続する場合、どのようにしてユーザーを識別しますか?ユーザーはサービスの使用を許可されていますか?
次のオプションを検討できますが、強力な認証スキームに関する明確なコンセンサスはありません。
HTTPには、基本認証とダイジェスト認証のサポートが組み込まれているため、HTMLドキュメントが現在保護されているのとほぼ同じ方法でサービスを保護できます。
SOAPデジタル署名(SOAP-DSIG)は、公開鍵暗号を利用して、SOAPメッセージにデジタル署名します。これにより、クライアントまたはサーバーは相手のIDを検証できます。www.w3.org/TR/SOAP-dsigで確認してください。
構造化情報標準の進歩のための組織(OASIS)は、セキュリティアサーションマークアップ言語(SAML)に取り組んでいます。
ネットワークセキュリティー
現在、この問題に対する簡単な答えはなく、多くの議論の対象となっています。今のところ、SOAPまたはXML-RPCメッセージを除外することに真剣に取り組んでいる場合、1つの可能性は、コンテンツタイプをtext / xmlに設定するすべてのHTTPPOSTリクエストを除外することです。
もう1つの方法は、SOAPActionHTTPヘッダー属性をフィルタリングすることです。ファイアウォールベンダーは現在、Webサービストラフィックをフィルタリングするように明示的に設計されたツールも開発しています。