クライアント証明書マッピング認証 <クライアントCertificateMappingAuthentication>

概要

<clientCertificateMappingAuthentication> 要素の 要素は <authentication> 、Active Directory を使用したクライアント証明書マッピングがインターネット インフォメーション サービス (IIS) 7 に対して有効かどうかを指定します。

注意

Active Directory を使用したクライアント証明書マッピング認証は、次の点で IIS を使用したクライアント証明書マッピング認証 とは異なります。

  • Active Directory を使用したクライアント証明書マッピング認証 - この認証方法では、IIS 7 サーバーが Active Directory ドメインのメンバーであり、ユーザー アカウントが Active Directory に格納されている必要があります。 この方法のクライアント証明書認証により、Active Directory サーバーへのラウンドトリップによりパフォーマンスが低下しました。
  • IIS クライアント証明書マッピング認証 - この認証方法では Active Directory は必要ないため、スタンドアロン サーバーで動作します。 クライアント証明書認証のこの方法ではパフォーマンスが向上しましたが、マッピングを作成するには、より多くの構成が必要であり、クライアント証明書へのアクセスが必要です。

詳細については、Microsoft TechNet Web サイト の「IIS 7.0 での認証の構成 」を参照してください。

互換性

Version メモ
IIS 10.0 IIS 10.0 では 要素が <clientCertificateMappingAuthentication> 変更されませんでした。
IIS 8.5 IIS 8.5 で 要素が <clientCertificateMappingAuthentication> 変更されませんでした。
IIS 8.0 IIS 8.0 では 要素が <clientCertificateMappingAuthentication> 変更されませんでした。
IIS 7.5 IIS 7.5 で 要素が <clientCertificateMappingAuthentication> 変更されませんでした。
IIS 7.0 要素の <authentication> 要素は <clientCertificateMappingAuthentication> IIS 7.0 で導入されました。
IIS 6.0 該当なし

セットアップ

要素は <clientCertificateMappingAuthentication> 、IIS 7 以降の既定のインストールでは使用できません。 インストールするには、次の手順に従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー] をクリックします。
  2. サーバー マネージャーで、[管理] メニューをクリックし、[役割と機能の追加] をクリックします。
  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[ 次へ] をクリックします。 移行先サーバーを選択し、[ 次へ] をクリックします。
  4. [サーバーの役割] ページで、[Web サーバー (IIS)] を展開し、[Web サーバー]、[セキュリティ] の順に展開し、[クライアント証明書マッピング認証] を選択します。 [次へ] をクリックします。
    [クライアント証明書マッピング認証] が選択された状態で展開された [Web サーバーとセキュリティ] ペインの画像。 .
  5. [機能の選択] ページで、[次へ] をクリックします。
  6. [インストール オプションの確認] ページで、[インストール] をクリックします。
  7. [結果] ページで、[閉じる] をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. コントロール パネルで、[プログラムと機能] をクリックし、[Windows の機能のオンとオフを切り替える] をクリックします。
  3. [インターネット インフォメーション サービス] を展開し、[World Wide Web Services] を展開し、[セキュリティ] を展開して、[クライアント証明書マッピング認証] を選択します。
    [World Wide Web サービス] ウィンドウが展開され、[クライアント証明書マッピング認証] が選択されているスクリーンショット。
  4. [OK] をクリックします。
  5. [閉じる] をクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーの [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャー] をクリックします。
  2. [サーバー マネージャー階層] ウィンドウで、[ロール] を展開し、[Web サーバー (IIS)] をクリックします。
  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. 役割サービスの追加ウィザードの [役割サービスの選択] ページで、[クライアント証明書マッピング認証] を選択し、[次へ] をクリックします。
    [セキュリティ] ウィンドウが展開され、[クライアント証明書マッピング認証] が選択されている [役割サービスの選択] ページの画像。
  5. [インストール オプションの確認] ページで、[インストール] をクリックします。
  6. [結果] ページで、[閉じる] をクリックします。

Windows Vista または Windows 7

  1. タスク バーの [スタート] をクリックし、[コントロール パネル] をクリックします。
  2. コントロール パネルで、[プログラムと機能] をクリックし、[Windows 機能のオンとオフを切り替える] をクリックします。
  3. [ インターネット インフォメーション サービス] を展開し、[ クライアント証明書マッピング認証] を選択し、[OK] をクリック します
    [インターネット インフォメーション サービス] ウィンドウが展開され、[クライアント証明書マッピング認証] が強調表示されているスクリーンショット。

操作方法

サーバーのクライアント証明書マッピング認証を有効にする方法

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーの [サーバー マネージャー] をクリックし、[ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
    • Windows 8 または Windows 8.1を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [ 管理ツール] をクリックし、[ インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーの [ スタート] をクリックし、[ 管理ツール] をポイントして、[ インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーの [スタート] をクリックし、[コントロール パネル] をクリックします。
      • [ 管理ツール] をダブルクリックし、[ インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [ 接続 ] ウィンドウで、サーバー名をクリックします。

  3. サーバーの [ホーム ] ウィンドウで、[ 認証] をダブルクリックします。
    [認証] が強調表示されているサーバーの [ホーム] ウィンドウのスクリーンショット。

  4. [認証] ページの [操作] ウィンドウで [有効にする] をクリックします。
    Active Directory クライアント証明書認証オプションが強調表示されている [認証] ページの [操作] ウィンドウの画像。

構成

属性

属性 説明
enabled 省略可能な Boolean 属性です。

Active Directory を使用したクライアント証明書マッピング認証を有効にするかどうかを指定します。 この設定を有効にするには、IIS マネージャーでこの属性を設定する必要があります。 他のメソッドを使用してこの属性を設定する場合は、設定を有効にするために Web サーバーを再起動する必要があります。

既定値は false です。

子要素

なし。

構成サンプル

次の構成サンプルでは、既定の Web サイトに対して Active Directory を使用したクライアント証明書マッピング認証を有効にし、SSL を要求してクライアント証明書をネゴシエートするようにサイトを構成します。

<location path="Default Web Site">
   <system.webServer>
      <security>
         <access sslFlags="Ssl, SslNegotiateCert" />
          <authentication>
            <windowsAuthentication enabled="false" />
            <anonymousAuthentication enabled="false" />
            <digestAuthentication enabled="false" />
            <basicAuthentication enabled="false" />
            <clientCertificateMappingAuthentication enabled="true" />
         </authentication>
     </security>
   </system.webServer>
</location>

サンプル コード

次のコード サンプルでは、既定の Web サイトに対して Active Directory を使用したクライアント証明書マッピング認証を有効にし、SSL を要求してクライアント証明書をネゴシエートするようにサイトを構成します。

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/authentication/clientCertificateMappingAuthentication /enabled:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/security/access /sslFlags:"Ssl, SslNegotiateCert" /commit:apphost

注意

AppCmd.exeを使用してこれらの設定を構成する場合は、 必ず commit パラメーター apphost を に設定する必要があります。 これにより、構成設定がApplicationHost.config ファイル内の適切な場所セクションにコミットされます。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection clientCertificateMappingAuthenticationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site");
         clientCertificateMappingAuthenticationSection["enabled"] = true;

         ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Default Web Site");
         accessSection["sslFlags"] = @"Ssl, SslNegotiateCert";

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim clientCertificateMappingAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "Default Web Site")
      clientCertificateMappingAuthenticationSection("enabled") = True

      Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Default Web Site")
      accessSection("sslFlags") = "Ssl, SslNegotiateCert"

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site");
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = true;

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site");
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert";

adminManager.CommitChanges();

[VBScript]

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set clientCertificateMappingAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/clientCertificateMappingAuthentication", "MACHINE/WEBROOT/APPHOST/Default Web Site")
clientCertificateMappingAuthenticationSection.Properties.Item("enabled").Value = True

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Default Web Site")
accessSection.Properties.Item("sslFlags").Value = "Ssl, SslNegotiateCert"

adminManager.CommitChanges()