●Webサービス技術の標準化が進んでいる。特にセキュリティとトランザクションの仕様に関して大きな前進があった。
●セキュリティに関しては,SOAPヘッダーの中で,認証/デジタル署名/暗号化を規定することが決まったほか,第三者認証サービスやVPN(仮想プライベート・ネットワーク)を利用する際の仕様も決定した。
●トランザクションに関しては,2フェーズ・コミットを採用する「アトミック・トランザクション」と,長時間のトランザクション向けに設計された「ビジネス・アクティビティ」の2種類の方式が決まった。

表1●Webサービスに関する仕様の最新状況
 インターネット経由でWebサイト同士が連携し合うWebサービスは,マイクロソフト製品のVisual Studio .NETや.NET Frameworkなどを使えば今でもシステムを実現できる。

 ところが,見知らぬWebサイト同士がもっと自由にWebサービスとして連携し合うには,Webサービスの仕様を標準化することが求められる。

 この1年で,Webサービスに関する様々な仕様が標準化に向けて前進した(表1[拡大表示])。SOAP 1.2やWSDL(Web Services Description Language)1.2,UDDI(Universal Description,Discovery and Integration)3.0――などは,要素技術に相当するもので,一部標準仕様が策定された。いずれは開発ツールの最新版「Visual Studio .NET 2003」や,WindowsサーバーOSの最新版「Windows Server 2003」にも実装されるだろう。

 他にも,Webサービスをより安全で高度に連携させるため,特にセキュリティとトランザクションに関する標準化が大きく進展した。以下,その2大分野の標準化動向をまとめよう。

メッセージ・レベルのセキュリティを実現

図1●7つの要素で構成されるWS-Security
2002年4月に同コアの仕様が公開され,2002年12月に「WS-Policy」「WS-Trust」「WS-SecureConversation」の仕様が公開された。

 Webサービスのセキュリティを規定しているのは,「WS-Security」という仕様である。ただし,これは1つの仕様の名称ではなく,7つの要素の総称である(図1[拡大表示])。2002年4月に,7つの要素のロードマップと,要素の1つである「WS-Securityコア」の仕様が発表された。その後,2002年12月に,残りの要素のうち「WS-Policy」「WS-Trust」「WS-SecureConversation」の3つの仕様が策定されている。

 そもそもWS-Securityのような仕様がなぜ必要になるのだろうか。例えば,Aという利用者がBというWebサービスを呼び,BがさらにCというWebサービスを呼ぶような「マルチホップ」環境があるとする。そこではBというWebサービスにしか知らせたくない情報を,CというWebサービスに見られる可能性がある。お酒を販売する業者にしか知られたくないクレジット・カード番号を,ユーザーが知らない運送業者に見られるなどだ。運送業者に悪用される可能性もある。

 このようにWebサービスには,マルチホップ環境におけるセキュリティに不安がある。これを防ぐには,より上位のレイヤー,つまりメッセージ・レベルでのセキュリティの取り決めが必要である。この取り決めをしているのがWS-Securityである。

第三者認証とVPNが利用可能に

 2002年12月に発表された3つの中で注目されているのが,WS-TrustとWS-SecureConversationである。

 WS-Trustは,Webサービスを直接呼び出したり,中間サーバーを通して間接的に呼び出したりするとき,Webサービスの利用者と提供者の末端同士で信頼関係を確立するための仕様である。具体的には,第三者認証サービスを使うための取り決めが載っている。

 例えば,部品会社がWebサービスを作成し,それを販売店に使ってもらいたいとしよう。でも,販売店は見知らぬ部品会社を信用できない。そこで,第三者の認証サービスを使ってこの会社が信用できるかどうかを調査する。WS-Trustはこうした仕組みを提供する。

 一方,WS-SecureConversationは,セッション鍵,派生鍵,メッセージ鍵などを生成する方法を決め,相互に認証されたセキュリティ・コンテキストを実現する仕様である。具体的には,Webサービスの利用者と提供者間でVPN(仮想プライベート・ネットワーク)を確立するための仕様である。

 例えば,WS-SecureConversationを使わない場合は,利用者と提供者の間では相手の認証を1メッセージごとに実行する必要があり,数が多いと処理に負担がかかる。WS-SecureConversationでは,複数のメッセージをやり取りする場合も1回の認証で済む。

(小野 亮=akono@nikkeibp.co.jp)