WCF タイプの Web サービスのセキュリティをカスタマイズする
関連:API テスト のみ
このセクションでは、WCF を使用した Web サービスのセキュリティ設定をカスタマイズする方法について説明します。
WCF シナリオの作成
-
次のいずれかの方法で[セキュリティ設定]ダイアログ・ボックスを開きます。
-
ポート・レベルのセキュリティの場合は、[ツールボックス]表示枠でサービスのポートを右クリックし、[セキュリティ設定]を選択します。
-
ステップ・レベルのセキュリティの場合は、[プロパティ]表示枠で[セキュリティ設定]タブを開きます。[ポートのセキュリティ設定の使用]オプションをクリアします。
-
-
[セキュリティ設定]ダイアログ・ボックスで、[サービスの詳細]ドロップダウン・リストから[WCF サービス]のタイプを選択します。
WSHTTPBinding を使用する Web サービス
-
[セキュリティ設定]ダイアログ・ボックスの上部にあるドロップダウン・リストで、[WCF サービス(WSHttpBinding)]を選択します。
-
[クライアント認証タイプ]ドロップダウン・リストから、バインドで使用するクライアント資格情報のタイプ(Windows、証明書、またはユーザ名)を選択します。この値は、WCF の WSHttpBinding パラメータの MessageClientCredentialType プロパティに対応します。
[Windows]認証は、WCF サービスで最も一般的な値です。サービスに WCF の標準設定を使用している場合に、このオプションを使用します。
-
認証タイプのセキュリティ設定を定義します。使用可能なオプションは、認証タイプごとに異なります。
注意: 一部のシナリオでは、WCF 専用のネゴシエーション・メカニズムを使用してサービス資格情報を取得するかどうかを指定する必要があります。
-
[詳細設定]をクリックして、セキュリティで保護されたセッションの使用を制御します。
CustomBinding を使用する Web サービス
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストで、[WCF サービス(CustomBinding)]シナリオを選択します。
-
[セキュリティ設定]ダイアログ・ボックスのメインの表示枠で、次に示す Web サービスのセキュリティ・オプションを設定します。
-
トランスポート・タイプ
-
エンコード
-
Web サービスの認証モード
-
ネット・セキュリティ・タイプ
-
カスタム・バインドおよび認証証明書の ID
-
Web サービスにアクセスする可能性のある「ユーザ」のクライアント・ユーザ情報
-
WCF Federation Web サービス
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストで、[WCF サービス(Federation)]シナリオを選択します。
-
サービスとセキュリティのトランスポートについて、次に示す詳細を指定します。
-
トランスポート・タイプ
-
エンコード
-
Web サービスの認証モード
-
Web サービスのブートストラップ・ポリシー
-
カスタム・バインドおよび認証証明書の ID
-
STS(Security Token Service)設定
-
注意: STS とアプリケーション・サーバの両方に通信のプロパティを定義する必要があります。
netTcp または namedPipe トランスポートを使用する WCF サービス
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストから、[WCF サービス(CustomBinding)]シナリオを選択します。
-
[トランスポート]オプションを[TCP]または[NamedPipe]に設定します。
-
「CustomBinding を使用する Web サービス」の手順に従って、その他のセキュリティ設定を行います。
WSE3 セキュリティ設定とサーバ証明書を使用する Web サービス
-
新しいテストを作成し、W3E3 サービスを含む WSDL をインポートします。
-
Web サービスからキャンバスにメソッドを追加します。
-
[プロパティ]表示枠で[セキュリティ設定]タブを選択するか、[ツールボックス]表示枠で Web サービス・ノードを右クリックし、[セキュリティ設定]を選択します。
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストから、[WCF サービス(CustomBinding)]シナリオを選択します。
-
[セキュリティ設定]ダイアログ・ボックスのメインの表示枠で、[トランスポート]オプションを[HTTP]に設定し、[エンコード]を[テキスト]に設定します。
-
[ID]セクションに、ユーザ名とパスワードを入力します。
-
[サーバの証明書]フィールドの横にある[参照]ボタンをクリックし、[ストアの場所]、[ストア名]、および[検索テキスト](オプション)を指定します。[検索]をクリックし、証明書を選択して[選択]をクリックします。
-
[期待される DNS]を指定します。
-
[詳細設定]ボタンをクリックし、[詳細設定]ダイアログ・ボックスで次の内容を設定します。
-
[エンコード]タブで、[WS-Addressing]のバージョンを適切に設定します。
-
[セキュリティ]タブで、次のオプションを設定します。
-
セキュリティで保護されたセッションの有効化:有効
-
サービス資格情報のネゴシエート:有効
-
[保護レベル]:暗号化と署名
-
メッセージの保護順序:暗号化の前に署名
-
メッセージ・セキュリティのバージョン:WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005(最初のエントリ)
-
派生キーが必要:有効
その他のフィールドについては、標準設定を使用してください。
-
-
相互の証明書認証を使用する WCF サービス
次の手順では、相互の証明書に対してセキュリティ・シナリオを設定する方法と WSE3 セキュリティ設定に準拠する方法について説明します。
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストから、[WCF サービス(CustomBinding)]シナリオを選択します。
-
[トランスポート]オプションを[HTTP]に、[エンコード]を[テキスト]に設定します。
-
認証モードを MutualCertificate に設定します。
-
[ID]セクションで、サーバおよびクライアントの証明書を選択します。
-
[期待される DNS]を指定します。
-
[詳細設定]ボタンをクリックし、[詳細設定]ダイアログ・ボックスで次の内容を設定します。
-
[エンコード]タブ - [WS-Addressing]:WSA 04/08(WSE3 セキュリティ設定の場合)
-
[セキュリティ]タブ - [派生キーが必要]:無効
その他のフィールドについては、標準設定を使用してください。
-
X.509 クライアント証明書を要求する TCP トランスポートとのバインドを使用する WCF シナリオ
次の手順では、NetTcp でクライアントの X.509 証明書を要求するために WCF カスタム・シナリオを設定する方法について説明します。
-
[セキュリティ設定]ダイアログ・ボックスのドロップダウン・リストから、[WCF サービス(CustomBinding)]シナリオを選択します。
-
[トランスポート]を[TCP]に、[ネット セキュリティ]を[SSL ストリーム セキュリティ]に設定します。
-
[プロパティ]表示枠で、[イベント]タブを開きます。
-
イベント・リストで、BeforeApplyProtocolSettings イベントを選択します。[ハンドラ]カラムをクリックし、ドロップダウンから[標準設定のハンドラの作成]を選択します。
-
TestUserCode.cs ファイルでコードの TODO セクションを探して、次の定義を追加します。
var wcf = (HP.ST.Ext.CommunicationChannels.Models.WcfChannelBinding)args[1]; var ssl =
(HP.ST.Ext.CommunicationChannels.Models.WcfSslStreamSecurityChannel)wcf.
Protocols.Channels[1]; ssl.RequireClientCertificate = true;その他のフィールドについては、標準設定を使用してください。