Web Services Security (WS-Security) は、メッセージの完全性、メッセージの機密性、および単一メッセージの認証によって保護品質を提供するための、SOAP メッセージングに対する機能強化を記述したものです。 WS-Security のメカニズムは、幅広いセキュリティー・モデルと暗号化テクノロジーに対応するために使用することができます。
WS-Security は、XML デジタル署名による SOAP メッセージの保護、XML 暗号化による機密性、およびセキュリティー・トークンによる資格情報の伝搬に基づく、メッセージ・レベルの規格です。 Web Services Security の仕様ではメッセージの完全性と機密性を保護するための機能を定義し、セキュリティー関連の要求とメッセージを関連付けるメカニズムを提供します。
WS-Security はセキュリティー・トークンとメッセージを関連付けるための汎用メカニズムも提供しています。 また、WS-Security では、特定の種類のセキュリティー・トークンを必要としません。 例えば、複数のセキュリティー・トークン形式をサポートするなど、拡張可能なように設計されています。
WS-Security により、これらのメカニズムのドメインは、Web サービス要求において情報の認証を実行することで拡張されます。 また、WS-Security はメッセージに含まれる資格情報をさらに詳しく記述するために使用できる拡張性メカニズムを備えています。 WS-Security は幅広いアプリケーション・セキュリティー要件に対応するため、他の Web サービス・プロトコルと併用可能な構成要素でもあります。
HTTPS などの従来型 Web セキュリティー・メカニズムは、すべての Web サービス・シナリオに対するセキュリティー要件の管理には不十分である可能性があります。 例えば、アプリケーションが HTTPS を使用して SOAP メッセージを送信するとき、メッセージは HTTPS 接続に関してのみ、つまり、サービス要求元 (クライアント) とサービス間でメッセージを移送している間は保護されています。 ただし、アプリケーションでは、メッセージ・データが HTTPS 接続を超えて、あるいは、トランスポート層を超えて保護されていることを求める場合があります。 メッセージ・レベルで Web サービスを保護することにより、メッセージ・レベルのセキュリティーは、こうした多様化した要件を満たすことができます。
メッセージ・レベルのセキュリティー、またはメッセージ・レベルでの Web サービスの保護は、従来の Web セキュリティーと同じセキュリティー要件に対応します。 そのセキュリティー要件には、識別、認証、許可、完全性、機密性、否認防止、基本メッセージ交換が含まれています。 従来の Web セキュリティーとメッセージ・レベル・セキュリティーのいずれも、デジタル証明書、暗号化、デジタル署名など、セキュリティーの処理に共通するメカニズムを多数共有しています。
メッセージ・レベル・セキュリティーでは、SOAP メッセージ自体にメッセージを保護するために必要な情報を含むか、セキュリティー処理に必要な情報を取得する場所に関する情報を含んでいます。 また、SOAP メッセージは、指定したメッセージ・レベルのセキュリティーを処理するためのプロトコルと プロシージャーに関する情報も含みます。 ただし、メッセージ・レベル・セキュリティーは特定のトランスポート機構には結び付けられていません。 セキュリティー情報はメッセージの一部であるため、HTTPS などのトランスポート・プロトコルからは独立しています。
クライアントは SOAP メッセージ・ヘッダーに、特定のメッセージに適用するセキュリティー情報を追加します。 メッセージが受信されると、Web サービスのエンドポイントは、ヘッダー内のセキュリティー情報を使用して、保護されたメッセージを検査し、ポリシーに照らし合わせて検証します。 例えば、サービス・エンドポイントはメッセージの署名を検査して、メッセージが改ざんされていないかどうかチェックします。 署名と暗号化情報を SOAP メッセージ・ヘッダーに追加することが可能であり、同様に、SOAP メッセージ内容にバインドされる ID のセキュリティー・トークン (例えば X.509 証明書) など、他の情報を追加することもできます。
メッセージ・レベルでのセキュリティーを使用しなければ、SOAP メッセージは平文で送信され、ユーザー ID またはアカウント番号などの個人情報は保護されません。 メッセージ・レベル・セキュリティーを適用しないと、SOAP メッセージには SOAP エンベロープの下に SOAP 本体があるだけです。 WS-Security 仕様の機能を適用することにより、SOAP セキュリティー・ヘッダーは、 SOAP 本体が署名および暗号化されるときに、SOAP メッセージの SOAP エンベロープの下に挿入されます。
Username トークン (エレメント) など、多様な種類のセキュリティー・トークンを挿入して、認証メカニズムを追加することができます。 Username トークンは Web サービス・サーバーにより受信され、ユーザー名とパスワードが抽出、検証されます。 ユーザー名とパスワードの組み合わせが有効な場合のみ、メッセージを受け入れ、サーバーで処理します。 Username トークンの使用は、認証を実装するための一手段にすぎません。 このメカニズムは基本認証としてもよく知られています。
OASIS Web Services Security 仕様では、Web Services の開発者がセキュア SOAP メッセージ交換を行うのを支援するために、一連のメカニズムを提供しています。 OASIS Web Services Security 仕様の詳細については、OASIS Standard for WS-Security Specification を参照してください。