WS-Security(Web Services Security、WSS)は、Webサービスにセキュリティを適用する手段を提供する通信プロトコル。2004年4月19日、OASISが WS-Security 1.0 規格を公開した。2006年2月17日には 1.1 版がリリースされている。
IBM、マイクロソフト、ベリサインの開発したプロトコルに基づき、OASISが規格として標準化した。Webサービスメッセージングにおいて、どのように完全性と機密性を保持するかという仕様が含まれる。SAMLとケルベロス認証とX.509などの認証フォーマットを使用している。
WS-Security は、SOAPメッセージに署名を付与し、ヘッダを暗号化する方式を記述している。さらに、X.509 認証やケルベロス認証のようなバイナリセキュリティトークンをメッセージに付与する方式も記述されている。
WS-Security では、アプリケーション層で動作するSOAPメッセージのヘッダにセキュリティ機能を導入している。つまり、エンドツーエンドのセキュリティを保証できる。
ポイントツーポイントでは、Webサービスの機密とデータ完全性は Transport Layer Security (TLS) を使っても実現できる(HTTPSなど)。しかし、WS-Security はより広範囲な、いわゆるエンドツーエンドのセキュリティを提供する。
TLSを適用することで、鍵やメッセージ署名を送信前にASCIIに符号化する必要がなくなり、オーバーヘッドが劇的に低減される。メッセージがプロキシサーバを経由する場合、サーバはクライアントからではなくプロキシからの要求としてみるため、プロキシにクライアントの鍵と認証のコピーを与えて対応するか、そのサーバが信用する証明書を持つことで対応する。しかし、プロキシが関わっているためにエンドツーエンドのセキュリティとはならず、ポイントツーポイントのセキュリティとなる。
WS-Security に関連したドラフト仕様として、以下のものがある。