バージョン 6 の Web サービス・セキュリティー仕様 - 年表

ここでは、Web サービス・セキュリティー仕様の開発について説明します。 本項では、WebSphere® Application Server バージョン 6 以降の Web サービスを保護する基本として機能する仕様である、Organization for the Advancement of Structured Information Standards (OASIS) Web Services Security バージョン 1.0 仕様に関する情報を提供します。

非 OASIS アクティビティー

Web サービスは、インターオペラビリティーと統合を実行可能な技術として短期間で受け入れられてきています。 しかし、Web サービスの保護は、Web サービスの採用を実現可能な産業およびビジネスの商業的なソリューションにする最高品質サービスの 1 つです。 IBM® および Microsoft® は共同で、 「Security in a Web Services World: A Proposed Architecture and Roadmap」というタイトルの Web サービスに関するセキュリティー白書を公開しました。 この白書では、以下のような提案された Web サービス・セキュリティー・ロードマップの 初期の仕様およびその後の仕様について取り上げています。
Web サービス・セキュリティー
この仕様は、デジタル・シグニチャーの添付方法、暗号化の使用方法、Simple Object Access Protocol (SOAP) メッセージでのセキュリティー・トークンの使用方法について定義しています。
WS-Policy
この仕様では、セキュリティー制約および中間またはエンドポイントのポリシーを記述するために使用される言語を定義しています。
WS-Trust
この仕様では、Web サービス間のトラストを確立するトラスト・モデルの枠組みを定義しています。
WS-Privacy
この仕様では、Web サービスと要求側のプライバシー・ポリシーを明白にする方法のモデルを定義しています。
WS-SecureConversation
この仕様では、Web サービス間のセッション鍵を派生させる、保護されたコンテキストを交換および確立する方法を定義しています。
WS-Federation
この仕様は、統合識別管理など、異種の統合環境におけるトラスト関係のモデルを定義します。
WS-Authorization
この仕様は、Web サービスの権限ポリシーを定義しています。ただし、WS-Authorization 仕様は 公開されていません。Web サービス・セキュリティーの既存の実装は、Java™ 2 Platform, Enterprise Edition (J2EE) または Java Specification Requirements (JSR) 109 仕様の Web サービスを基にしています。 Web サービス・セキュリティーの実装は、J2EE 役割ベースの許可検査を 利用します。役割ベースの許可の概念情報については、役割ベースの許可 (Role-based authorization) を 参照してください。メソッド・レベルの許可検査を必要とする Web サービスを 開発する場合は、ステートレス・セッション Bean を使用して Web サービスを 実装する必要があります。ステートレス・セッション Bean を使用した Web サービスの 実装について詳しくは、エンタープライズ Bean からの Web サービスの開発 (Developing a Web service from an enterprise bean) およびエンタープライズ Bean アプリケーションの保護 (Securing enterprise bean applications) を 参照してください。サーブレットとして実装される Web サービスを開発する場合は、Web コンテナーで 大まかな許可または URL ベースの許可を使用することができます。 ただし、この状況では、許可検査のために Web サービス・セキュリティーからの ID を使用することはできません。 代わりに、トランスポートからの ID を使用できます。SOAP over HTTP を 使用する場合は、ID は HTTP トランスポートです。

この下の図では、これらの仕様の関係を示しています。

異なる仕様の関係

2002 年 4 月、IBM、Microsoft、 および VeriSign は、前の図の緑色のボックスで示している Web サイトで Web サービス・セキュリティー (WS-Security) 仕様について提案しました。 この仕様には、セキュリティー・トークン、XML デジタル・シグニチャー、および XML 暗号化の基本的な概念が組み込まれています。 また、この仕様ではユーザー名トークンおよびエンコードされたバイナリー・セキュリティー・トークンのフォーマットを定義しました。 この仕様について、検討とインターオペラビリティー・テストを行ったところ、以下の問題が持ち上がりました。
  • この仕様では、Web サービス・セキュリティー・プロセッサーがスキーマを正しく認識して、プロセッサーが XML デジタル・シグニチャーと XML 暗号化の ID 属性を区別する必要があります。
  • メッセージが事前定義された時間制約に従うかどうかを示す、メッセージの存続期間を判断できません。
  • ダイジェストされたパスワード・ストリングがセキュリティーを強化しません。
2002 年 8 月、IBM、Microsoft、および VeriSign は、Web Services Security Addendum を公開し、前にリストした問題を解決しようとしました。 以下の解決策が、この補足で対応されました。
  • XML シグニチャーと XML 暗号化のグローバル ID 属性を必要とします。
  • メッセージの作成時、受信時、または有効期限を示す、タイム・スタンプ・ヘッダー要素を使用します。
  • ランダムに生成されるトークンである、タイム・スタンプと nonce でダイジェストされるパスワード・ストリングを使用します。

前の図にある青いボックスの仕様は、さまざまな業界ベンダーによって提案され、 多様なインターオペラビリティー・イベントが提案された仕様を検証および調整するためにベンダーによって編成されました。

OASIS アクティビティー

2002 年 6 月、OASIS は、IBM、Microsoft、および Verisign から提案された Web サービス・セキュリティー仕様を受領しました。 その提出後すぐに、Web Services Security Technical Committee (WSS TC) が編成されました。 この技術委員会には、IBM、Microsoft、VeriSign、Sun Microsystems、および BEA Systems などの多くの企業が参加しました。

2002 年 9 月、WSS TC は、その最初の仕様、Web Services Security Core Specification, Working Draft 01 を公表しました。 この仕様には、元の Web サービス・セキュリティー仕様とその補足の両方の内容が含まれていました。

技術委員会が担当する範囲は、検討を重ねるにつれ増えていきました。 Web Services Security Core Specification によりセキュリティー・トークンの任意のタイプが仕様できるようになるため、提案がプロファイルとして公表されました。 このプロファイルには、Web サービス・セキュリティー・メッセージに組み込まれた Security Assertion Markup Language (SAML) トークンおよび Kerberos トークンなど、トークンを組み込む方法についての説明がありました。 その後、元の Web サービス・セキュリティー仕様で定義された、ユーザー名トークンおよび X.509 バイナリー・セキュリティー・トークンの使用法の定義が、プロファイルに分割されました。

WebSphere Application Server バージョン 5.0.2、5.1、および 5.1.1 は、 以下の仕様をサポートしています。
  • Web Services Security: SOAP Message Security Draft 13 (以前の名称は、Web Services Security Core Specification)
  • Web Services Security: Username Token Profile Draft 2

2004 年 4 月、Web サービス・セキュリティー仕様 (公式には Web Services Security: SOAP Message Security Version 1.0) がバージョン 1.0 OASIS 規格となりました。また、Username トークンおよび X.509 トークン・プロファイルは バージョン 1.0 仕様です。

WebSphere Application Server 6 は、OASIS からの以下の Web サービス・セキュリティー仕様をサポートしています。

以下の図には、さまざまな Web サービス・セキュリティー関連仕様を示しています。

OASIS
仕様

WebSphere Application Server バージョン 6 はまた、セキュリティー・プロバイダーがランタイム機能を拡張し、Web サービス・セキュリティー・スタックで高水準の仕様の一部を実装できるよう、プラグイン機能を拡張して提供しています。 プラグイン・ポイントは、Service Provider Programming Interfaces (SPI) として公開されています。 これらの SPI について詳しくは、Web サービス・セキュリティー・サービス・プロバイダー・プログラミング・インターフェースのデフォルト実装を参照してください。

Web サービス・セキュリティー仕様の開発

OASIS Web Services Security バージョン 1.0 仕様は、メッセージの保全性と機密性を提供するために使用される拡張機能を定義しています。 また、セキュリティー・トークンと Simple Object Access Protocol (SOAP) メッセージを関連付ける汎用フレームワークも提供します。この仕様は、 複数のセキュリティー・トークン・フォーマットをサポートするように拡張できるよう設計されています。 特定のセキュリティー・トークンの使用法は、セキュリティー・トークン・プロファイルで取り上げられています。 OASIS Web サービス・セキュリティー仕様は、以下の World Wide Web Consortium (W3C) 仕様に基づいています。 ほとんどの W3C 仕様は、標準規格機関によって推奨されています。

これらの仕様は、Web サービス・セキュリティーのコンテキストで、WebSphere Application Server 6 でサポートされています。 例えば、デプロイメント記述子で保全性オプションを指定することによって SOAP メッセージに署名することができます。 しかし、アプリケーションが SOAP メッセージの XML 要素で XML Signature 用に使用できるアプリケーション・プログラミング・インターフェース (API) はありません。

OASIS Web Services Security バージョン 1.0 仕様は、メッセージの保全性と機密性を提供するために使用される拡張機能を定義しています。 また、セキュリティー・トークンと Simple Object Access Protocol (SOAP) メッセージを関連付ける汎用フレームワークも提供します。この仕様は、 複数のセキュリティー・トークン・フォーマットをサポートするように拡張できるよう設計されています。 特定のセキュリティー・トークンの使用法は、セキュリティー・トークン・プロファイルで取り上げられています。

WebSphere Application Server バージョン 6 以降の仕様とプロファイル・サポート

OASIS は、さまざまなプロファイルで機能します。詳しくは、「Organization for the Advancement of Structured Information Standards Committees」を参照してください。 WebSphere Application Server バージョン 6 は、これらのプロファイルをサポートしません。以下のリストは、 公開されたドラフト・プロファイルと進行中の OASIS Web サービス・セキュリティー技術委員会の作業です。
  • Web Services Security: SAML トークン・プロファイル
  • Web Services Security: REL トークン・プロファイル
  • Web Services Security: Kerberos トークン・プロファイル
  • Web Services Security: SOAP Messages with Attachments (SwA) プロファイル
WebSphere Application Server バージョン 6 が以下の仕様をサポートするため、WebSphere Application 5.0.2、5.1.0 および 5.1.1 での Web サービス・セキュリティー・ ドラフト 13 とユーザー名トークン・プロファイル・ドラフト 2 のサポートは 推奨されていません。
  • OASIS Web Services Security バージョン 1.0 仕様
  • Web Services Security Username トークン・プロファイル
  • X.509 トークン・プロファイル

Web Services Security バージョン 1.0 の Web サービス・セキュリティーを備えた SOAP メッセージのワイヤー・フォーマットは変更され、OASIS Web サービス・セキュリティー仕様の以前のドラフトと互換性がありません。 OASIS Web Services Security バージョン 1.0 と旧 Web Services Security ドラフトのインターオペラビリティーはサポートされていません。 ただし、WebSphere Application Server バージョン 6 で Web サービス・セキュリティー・ドラフト 13 に基づくアプリケーションを実行することは可能です。 そのアプリケーションは、WebSphere Application Server バージョン 5.0.2、5.1 または 5.1.1 で Web サービス・セキュリティー・ドラフト 13 に基づくアプリケーションと相互運用できます。

WebSphere Application Server バージョン 6 は、OASIS Web サービス・セキュリティー・ドラフト 13 と OASIS Web Services Security 1.0 仕様をサポートしています。 ただし、WebSphere Application Server バージョン 6 では、OASIS Web サービス・セキュリティー・ドラフト 13 のサポートは推奨されていません。しかし、WebSphere Application Server 5.0.2、5.1.0 および 5.1.1 で OASIS Web サービス・セキュリティー・ドラフト 13 を使用して開発されたアプリケーションは、WebSphere Application Server バージョン 6 で実行することができます。OASIS Web サービス・セキュリティー・バージョン 1.0 サポートは、Java 2 Platform, Enterprise Edition (J2EE) バージョン 1.4 アプリケーションでのみ使用可能です。デプロイメント記述子と バインディングの構成フォーマットは、WebSphere Application Server の前のバージョンとは異なります。既存のアプリケーションを J2EE 1.4 にマイグレーションし、Web サービス・セキュリティー構成を WebSphere Application Server バージョン 6 フォーマットにマイグレーションする必要があります。マイグレーションの情報については、Web サービス・セキュリティーを使用するバージョン 5.x アプリケーションのバージョン 6 アプリケーションへのマイグレーションを参照してください。

Web Services Interoperability Organization (WS-I) アクティビティー

Web Services Interoperability Organization (WS-I) は、ベンダー、プラットフォーム、プログラミング言語およびアプリケーションで Web サービス・インターオペラビリティーを促進する公開された業界努力です。 その組織は、IBM、Microsoft、Oracle、Sun、Novell、VeriSign、および Daimler Chrysler などの多数の業界の会社が集まるコンソーシアムです。WS-I は、2003 年春に基本セキュリティー・プロファイル (BSP) で作業を開始しました。 BSP は、異なるベンダーによる実装間の Web サービス・セキュリティー・インターオペラビリティーを促進するため、これらの仕様を明確にし、詳述する非独占的 Web サービス仕様のセットから構成されています。 2004 年 6 月現在、BSP は、公開ドラフトです。詳しくは、「Web Services Interoperability Organization」を参照してください。

特に、BSP の詳細については、Basic Security Profile Version 1.0 を 参照してください。WebSphere Application Server は、BSP との準拠をサポートします。BSP と準拠するよう アプリケーションを構成するための詳細については、Basic Security Profile の準拠 (Basic Security Profile compliance) を参照してください。

関連概念
Web サービス・セキュリティー・サービス・プロバイダー・プログラミング・インターフェースのデフォルト実装
関連タスク
Web サービス・セキュリティーを使用するバージョン 5.x アプリケーションのバージョン 6 アプリケーションへのマイグレーション

フィードバック