拡張保護は、中間者 (MITM) 攻撃から保護するためのセキュリティ イニシアチブです。攻撃者 ("man-in-the-middle") がクライアントの資格情報を傍受し、それらを使用して、クライアントの目的のサーバー上のセキュリティで保護されたリソースにアクセスします。
詳細については、「 認証の拡張保護の概要」を参照してください。
注
このサンプルは、IIS でホストされている場合にのみ機能します。 これは、HTTPS をサポートしていないため、Visual Studio 開発サーバーでは機能しません。
サンプルを設定、ビルド、実行するには
[プログラムの追加と削除] -> Windows 機能からコンピューターに IIS をインストールします。
Windows の機能で Windows 認証を有効にする: インターネット インフォメーション サービス -> World Wide Web サービス -> セキュリティ -> Windows 認証。
Windows 機能で HTTP アクティベーションを有効にする: Microsoft .NET Framework 3.5.1 -> Windows Communication Foundation HTTP Activation。
このサンプルでは、クライアントがサーバーとのセキュリティで保護されたチャネルを確立する必要があるため、インターネット インフォメーション サービス (IIS) マネージャーからインストールできるサーバー証明書が必要です。
IIS マネージャーの -> サーバー証明書を開きます ([機能ビュー] タブから)。
このサンプルをテストするために、自己署名証明書を作成できます。 (Web ブラウザーで証明書がセキュリティで保護されていないことを求められたくない場合は、信頼された証明書ルート証明機関ストアにインストールできます)。
既定の Web サイトの [操作] ウィンドウに移動します。 [サイトの編集] -> [バインド] をクリックします。 HTTPS がまだ存在しない場合は、ポート番号 443 で型として追加し、上記の手順で作成した SSL 証明書を割り当てます。
サービスをビルドします。 これにより、IIS に (プロジェクト プロパティで指定されたビルド後のアクションから) 仮想ディレクトリが作成され、サービスを Web ホストするために必要に応じて dll、.svc、および構成ファイルがコピーされます。
IIS マネージャーを開きます。 前の手順で作成した仮想ディレクトリ (ExtendedProtection) を右クリックし、[アプリケーションに変換] を選択します。
この仮想ディレクトリの IIS マネージャーで認証モジュールを開き、Windows 認証を有効にします。
この仮想ディレクトリの Windows 認証の詳細設定を開き、[必須] に設定します。これは、サンプルでは、対応する ExtendedProtection 設定が Always に設定されているためです。
ブラウザー ウィンドウから URL にアクセスすることで、サービスをテストできます。 クロス マシンからこの URL にアクセスする場合は、すべての受信 HTTP および HTTPS 接続に対してファイアウォールが開いていることを確認します。
クライアント構成ファイルを開き、 <client> - <endpoint> - address 属性の完全なマシン名を指定し、 <full_machine_name>を置き換えます。
クライアントを実行します。 クライアントは、セキュリティで保護されたチャネルを確立し、内部で拡張保護を使用することで、サービスと通信します。