特集
|
WSEを使ったセキュアXML Webサービスのクライアントの実装
WS-SecurityはSOAPの拡張であるため、ASP.NETが持っているHTTP-GETやHTTP-POSTによるXML Webサービスへのアクセス機能を使っても機能しない。機能させるためには、SOAPでアクセスする必要がある。SOAPでアクセスするには、コンソールやWindowsアプリケーションを開発して、「Web参照」機能を利用するのが簡単だ。ここではコンソール・アプリケーションを作成する。
コンソール・アプリケーションのプロジェクトを作成する
ここでは名前を「WSEClient1」にした。
プロジェクトにMicrosoft.Web.Services.dllへの参照を追加する
VS.NETの「参照の追加」機能で追加すればよい。
Web参照の追加を行う
http://localhost/WSE1/Service1.asmx?wsdlに対してWeb参照を追加する。
作成されたプロキシ・クラスのソース・コードを変更する
プロキシ・クラスのソース・コードは、Reference.csという名前で「Web References」の中の「localhost」の下にある。表示されない場合は、VS.NETのソリューション・エクスプローラで「すべてのファイルを表示」ボタンをクリックする。
変更内容は、プロキシ・クラス「WSE1Client1.localhost.Service1」の基底クラスを、
System.Web.Services.Protocols.SoapHttpClientProtocol
から、
Microsoft.Web.Services.WebServicesClientProtocol
にすることだけだ。
|
|
自動生成されるプロキシ・クラスの基底クラスを、Microsoft.Web.Services.WebServicesClientProtocolに変更する |
Mainメソッドを実装する
このメソッドの中でユーザー名とパスワードを設定する。内容は次のとおりだ。
|
|
クライアントとなるコンソール・アプリケーションのコード | |
ここでは、XML Webサービスの認証に必要なユーザー名とパスワードを設定し、XML Webサービスを呼び出す。 |
通常のWeb参照を利用したクライアント・コードと違うのは、太字の部分だけだ。
これでクライアントの開発もできた。さっそく実行してみよう。うまくいけば、コンソールには「Davolio」が表示されるはずだ。もちろん、「user1、pass1」は適切なSQL Serverのユーザーのものに置き換えなければならない。
このとき、クライアントとサーバの間では次のようなSOAPメッセージがやりとりされている。
クライアントからサーバへ送信されるSOAPメッセージ例(IEで表示) |
サーバからクライアントへ送信されるSOAPメッセージ例(IEで表示) |
クライアントから送信されているSOAPメッセージのHeader要素に注目してほしい。指定したユーザー名とパスワードが含まれているのが分かる。もちろんこのようにクリア・テキストでパスワードを送信することは通常は考えられないので、何らかの手順で暗号化を行うことになるだろう。WSEにもその機能が含まれているが、ここでは分かりやすくするためにクリア・テキストのままとした。
このように、WSEを使えばWS-Securityに対応したセキュアXML Webサービスを容易に開発することができるのだ。
INDEX | ||
[特集]次世代XML Webサービスを試す Part 1 | ||
1.WSEのインストール | ||
2.WSEを使ったセキュア XML Webサービスの実装 | ||
3.セキュアXML Webサービスのクライアントの実装 | ||
4.ほかのWS-Security実装との相互運用(1) | ||
5.ほかのWS-Security実装との相互運用(2) | ||
「特集:次世代XML Webサービスを試す」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|