インターネットインフォメーションサービス(IIS)によるTLSクライアント認証

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

inactive

inactive

inactive

inactive

inactive

このガイドでは、ユーザーをローカル・ユーザー・アカウントにマップするTLSクライアント認証のためのWindowsインターネット・インフォメーション・サービス(IIS)の構成について説明します。

IISの*Default Web Site* 。この構成は、デフォルト・サイトを含む、またはデフォルト・サイトを除く他のサイトにも使用できます。

Prerequisits

  • Nitrokey 3 with PIV client authentication certificate.

  • Windowsサーバー(ウェブサーバー)

    • DNS record

    • DNSレコードのTLS証明書。クライアント・コンピュータはこのTLS証明書を信頼しなければならない。

インストール

  1. Open the Server Manager.

  2. In the menubar on the top click Manage → Add Roles and Features.

  3. ウィザードのステップ**Server Roles** に従ってください。

  4. 利用可能なロールのリストから、Web Server (IIS)

  5. Web Server Role (IIS) の下のステップ**Roles Services** までウィザードに従ってください。

  6. 役割サービスのリストから、Web Server → Security → IIS Client Certificate Mapping Authentication を選択します。

  7. ウィザードに従ってインストールします。設定を開始する前に、インストールが終了している必要があります。

構成

  1. Internet Information Services (IIS) Manager (InetMgr.exe) を開きます。

  2. 左側の**Connections** ツリービューで、設定する Web サーバーを選択して展開します。

  3. 中央のペインから**Configuration Editor** を開く。セクション``system.webServer/security/authentication/iisClientCertificateMappingAuthentication`` を開き、右側の**Actions ペインの Unlock Section** をクリックしてロックを解除する。

  4. Web サーバーの下にある**Sites** を展開し、設定するサイトを選択します。

  5. 右側の**Actions** ペインで**Bindings...** をクリックする。

  6. Add... をクリックし、バインディングエディタを表示する。タイプを**https** に設定し、ホスト名をDNSレコードとTLS証明書のサブジェクト代替名(SAN)属性に従って設定する。Disable TLS 1.3 over TCP のチェックボックスをオンにします。SSL証明書 フィールドで、それぞれの証明書を選択します。OK をクリックして設定を確認します。

    Tip

    TLS 1.3を無効にする要件と、TLS 1.3を有効にして使用する方法の設定手順については、`マイクロソフトサポートブログポスト<https://techcommunity.microsoft.com/blog/iis-support-blog/windows-server-2022-iis-web-site-tls-1-3-does-not-work-with-client-certificate-a/4129738>`__を参照してください。

  7. 中央のペインから**SSL Settings** を開きます。チェックボックス**[SSL を要求する]** を有効にし、[クライアント証明書] のラジオボタンを**[要求する]** に設定します。右側の**アクション** ペインの**適用** をクリックして設定を確認します。

  8. 中央のペインから**Authentication** を開きます。サイトの他の認証方法がすべて無効になっていることを確認してください。IIS Client Certificate Mapping Authentication がこのリストに表示されることはありません。サイトのルートに戻ります。

    重要

    他のタイプの認証が有効になっている場合、クライアント証明書のマッピングは機能しない。

  9. 中央のペインから**Configuration Editor** を開く。ApplicationHost.config <location path='Default web site'/> から``system.webServer/security/authentication/iisClientCertificateMappingAuthentication`` セクションを開く。enabled のキーを``True`` に設定し、manyToOneCertificateMappingsEnabled と``oneToOneCertificateMappingsEnabled`` のどちらか、または両方が有効になっていることを確認する。

  10. ユーザー・マッピングは``manyToOneMappings`` または``oneToOneMappings`` のキーに書き込む必要がある。使用するキーは、使用するマッピングによって異なります。`Microsoft Learn<https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/iisclientcertificatemappingauthentication/>`__ にマッピングに関する情報や、より詳細な設定に関する説明があります。

    キーを変更するには、値テキストフィールドの最後にある**...** ボタンをクリックします。これにより、コレクションエディタ が開きます。新しいマッピングを作成するには、右側の**Actions** ペインの**Add** をクリックします。

    1. 多対一のマッピング

      下表のようにフィールドに記入する。

      Key

      価値

      enabled

      True

      name

      <name-for-the-collection>`

      password

      <user-password>

      permissionMode

      Allow

      userName

      <username>

      name フィールドはコレクションの識別子として使用され、userName と``password`` にはマップしたいローカル・ユーザーのユーザー名とパスワードが必要である。rules フィールドには、許可される証明書または拒否される証明書の説明を記述す る必要がある。ルール・キーを変更するには、値テキスト・フィールドの最後にある**...** ボタンをクリックする。これにより、コレクション・エディタ の新しいウィンドウが開きます。新しいルールを作成するには、右側の**アクション** ペインの**追加** をクリックします。

      下表のようにフィールドに記入する。

      Key

      価値

      certificateField

      Subject

      certificateSubField

      O

      compareCaseSensitive`

      True

      matchCriteria`

      <criteria-value-of-o-field-in-certificate-subject>`

      Collection Editor ウィンドウを閉じる。

    2. 1対1のマッピング

      以下の表のようにフィールドに記入する。

      Key

      価値

      certificate

      <base64-encoded-certificate>`

      enabled

      True

      password

      <user-password>

      userName

      <username>

      certificate フィールドのBase64エンコードされた証明書は、`ニトロキー<../../../../software/nitropy/index.html>`__ とコマンド``nitropy nk3 piv --experimental read-certificate --format PEM --key 9A`` で取得できます。userName と``password`` フィールドには、マッピングしたいローカルユーザーのユーザー名とパスワードが必要です。

      Collection Editor ウィンドウを閉じる。

    右側の**Actions** ペインの**Apply** をクリックして設定を確認します。

ローカル・ユーザー・アカウント・マッピングを使用したTLSクライアント認証が設定されました。