Active Directoryによるクライアントログオン#
この文書では、Nitrokey 3 の PIV アプリケーションを使用して Active Directory でスマートカードログオンする方法を説明します。
将来的には、この手動プロビジョニングをWindowsのMiniDriverで自動化することも可能です。
警告
Nitrokey 3 の PIV アプリケーションは、現在、不安定とみなされており、安定版ファームウェア・リリー スでは利用できない。その機能を得るには、テスト用ファームウェアをインストールする必要がある。その後のファームウェア・アップデートにより、データおよび暗号鍵が失われる可能性がある。詳細については、`ファームウェア・アップデート・ドキュメント</nitrokey3/windows/firmware-update.html#firmware-release-types>`__ をご参照ください。
前提条件#
セットアップには、Active Directory Directory Services (ADDS)とActive Directory Certificate Services (ADCS)を実行しているマシンへの管理者アクセスが必要である。クライアント・マシンでは、ログオンに使用する各ユーザー・アカウントへのアクセスのみが必要である。
- Windowsサーバー(対応バージョンはWindows Server 2016、2019、2022の全エディション)
ADDSロールがインストールされ、構成されている。
- ADCSロールがインストールされ、ルート証明書が設定された*Enterprise-CA* 。
各ドメインコントローラー(DC)には、ドメインコントローラー 、ドメインコントローラー認証 、Kerberos認証 証明書が発行されている必要があります。
社内ネットワークを離れるクライアントがある場合、公開されている完全およびデルタ証明書失効リスト(CRL)が外部ネットワークから取得可能であることを確認する。
- Windowsクライアント(対応バージョンはWindows 10、11、エディションは*Professional* 、Enterprise )。
クライアントはActive Directory(AD)ドメインのドメインメンバーでなければならない。
PIVアプリケーション搭載のニトロキー3。
Active Directory(AD)で使用するスマートカードログオンの設定#
スマートカード・ログオンには、ドメインの認証局(CA)の証明書テンプレートが必要である。このテンプレートは、ユーザ証明書の値と制約を定義する。このテンプレートは、Nitrokey のプロビジョニング中に証明書要求(CSR)に署名するために使用される。
スマートカード・ログオン用の証明書要求に署名するには、認証局に証明書テンプレートを作成する必要がある。
コマンドライン、PowerShell、またはRunから、
certtmpl.msc
と入力し、Enterを押す。詳細ペインでテンプレート**Smartcard Logon** を選択する。
メニューバーで**アクション → すべてのタスク → テンプレートの複製** をクリックします。
テンプレート上の以下の設定を、前述のタブに従って設定する。
- 互換性
無効にする**変更結果を表示する**
認証局 と**証明書受領者** を、スマートカードログオンを使用することになっているドメイン内で最も古いクライアントに設定する。
重要
楕円曲線(EC)鍵を使用する場合、クライアントはWindows Server 2008およびWindows Vista以下でなければならない。
- 一般
テンプレート表示名 を設定する。
有効期間 と**更新期間** を設定する。
- リクエスト処理
署名とスマートカードログオン の目的を設定する。
- 暗号技術
Key Storage Provider のプロバイダー・カテゴリーを設定する。
アルゴリズム名と最小キーサイズを設定する。
重要
マイクロソフトは、鍵長``2048``BitのRSAアルゴリズムの使用を推奨している。Eliptic Curve (EC)鍵を使用する場合は、クライアント・コンピュータ上で追加の変更を行う必要がある。
- 件名
リクエストに**Supply を設定する** 。
OK でテンプレートの作成を確認する。
証明書テンプレートの作成後、クライアントが使用できるようにテンプレートを発行しなければならない。
コマンドライン、PowerShell、またはRunから、
certsrv.msc
と入力し、Enterを押す。ナビゲーシ ョ ンペインで認証局 (CA) を展開 し 、証明書テ ン プ レー ト に移動。
メニューバーで、Action → New → Certificate Template to Issue をクリックする。
発行する証明書テンプレートを選択し、OK で確認する。
Active Directoryでスマートカードログオン用にNitrokey 3をプロビジョニングする#
スマートカード・ログオンでは、Active Directoryでユーザー用のNitrokeyをプロビジョニングする必要がある。プロビジョニングには、秘密鍵と証明書発行要求(CSR)の生成が含まれる。その後、証明書がNitrokeyに書き込まれる。
警告
以下の手順を実行する前に、スマートカード・ログオンに使用する Active Directory ユーザー・アカウントが存在することを確認してください。証明書の作成時刻がユーザーアカウントの作成時刻より前の場合、ログオンに失敗します。
重要
Nitrokey 上の PIV アプリケーションが以前に使用されたことがない場合、まず``nitropy nk3 piv init`` で初期化を実行する。
以下のコマンドで秘密鍵を生成し、CSRをファイルに書き込む。
nitropy nk3 piv generate-key --key 9A --algo <algorithm> --subject-name <subject-name> --subject-alt-name-upn <subject-alternative-name> --out-file <file>
<algorithm>``の値は、使用されるアルゴリズムとそのキー長である(例:``rsa2048
)。<subject-name>
と``<subject-alternative-name>`` の値は、通常Active Directoryユーザーアカウントの``commonName`` と``userPrincipalName`` 属性に対応する。以下のコマンドを使用して、ドメインの認証局(CA)でCSRに署名する。
certreq -attrib CertificateTemplate:<template-name> -submit <file>
<template-name>``の値は、スマートカードログオン用の証明書テンプレートの名前である。``<file>
の値は、証明書歌唱要求ファイルである。以下のコマンドで、署名された証明書をNitrokeyに書き込む。
nitropy nk3 piv write-certificate --format PEM --path <file>
<file>
の値は証明書ファイルである。
Active Directory (AD)で使用するスマートカードログオンを無効にする。#
発行されたユーザー・ログオン証明書は、Active Directory Certificate Services(ADCS)にリストされる。ADCS から証明書を失効させることができ、設定された証明書失効リスト(CRL)に追加されます。これは、Nitrokey を紛失または破損した場合に必要です。
重要
未使用のユーザー証明書を失効させずに放置しないことを強く推奨する。
注釈
Certificate Hold という理由で証明書を一時的に失効させることができる。この失効は取り消すことができ、永久的なものではない。
コマンドライン、PowerShell、またはRunから、
certsrv.msc
と入力し、Enterを押す。ナビゲーシ ョ ンペインで認証局 (CA) を展開し、Issued Certificates に移動する。
詳細ペインで、失効させたいユーザー証明書を選択する。
メニューバーで**アクション → すべてのタスク → 証明書の失効** をクリックする。
失効理由、日時を指定し、はい で確認する。
ナビゲーション・ペインで**Revoked Certificates** に移動する。
メニューバーで**アクション → すべてのタスク → パブリッシュ** をクリックする。
公開したい失効リストを選択し、OK で確認する。
注釈
各スマートカードのログオン試行中、Windowsは、スマートカードから提示された証明書が証明書失効リスト(CRL)に記載されているかどうかを確認する。証明書がCRLで見つかった場合、ログオンは拒否される。各CRLには有効期限が含まれている。Windowsは取得したCRLをキャッシュし、CRLが期限切れになりそうな場合は更新する。したがって、失効は即時ではなく、クライアントが持っているCRLの有効期限に依存する。
ユーザースマートカード証明書を個人証明書ストアにインポートする#
Nitrokey に保存されているユーザー証明書は、ユーザー個人の証明書ストアにインポートすることができます。特定の状況では、これは必須の手順です。
証明書が対応するユーザーアカウントにログオンしていることを確認してください。
コマンドライン、PowerShell、またはRunから、
certsrv.msc
と入力し、Enterを押す。ナビゲーション・ペインで、Personal キー・ストアを展開し、Certificates に移動する。
メニューバーで**アクション → すべてのタスク → インポート** をクリックする。
インポートウィザードに従い、要求されたらユーザー証明書ファイルを提供する。
インポートが完了したら、インポートした証明書の詳細ペインを確認します。Nitrokey が接続されていれば、証明書のプロパティに*この証明書に対応する秘密鍵があります。* というメッセージが表示され、Nitrokey 上の秘密鍵が特定できたことがわかります。
証明書が対応するユーザーアカウントにログオンしていることを確認してください。
PowerShellを開く。
Change to the personal certficate store of the user with
Set-Location -Path cert:\CurrentUser\My
.<path>
を証明書ファイルのパスに置き換えて、Import-Certificate -Filepath '<path>'
で証明書をストアにインポートする。