オンプレミスのキー信頼デプロイ ガイド
この記事では、次に該当する Windows Hello for Business の機能またはシナリオについて説明します。
- 展開の種類:
- 信頼の種類:があります
- 結合の種類:
要件
展開を開始する前に、「 Windows Hello for Business 展開の計画 」の記事で説明されている要件を確認してください。
開始する前に、次の要件が満たされていることを確認してください。
展開の手順
前提条件が満たされたら、Windows Hello for Business の展開は次の手順で構成されます。
公開キー インフラストラクチャの構成と検証
キー信頼または証明書信頼モデルを使用する場合、Windows Hello for Business には公開キー インフラストラクチャ (PKI) が必要です。 ドメイン コントローラーには、クライアントの信頼のルートとして機能する証明書が必要です。 証明書は、クライアントが不正なドメイン コントローラーと通信しないようにします。
エンタープライズ証明機関をデプロイする
このガイドでは、ほとんどの企業に既存の公開キー基盤があるものと想定しています。 Windows Hello for Business は、Windows Server Active Directory 証明書サービス ロールを実行しているエンタープライズ PKI によって異なります。
既存の PKI がない場合は、 証明機関のガイダンス を確認してインフラストラクチャを適切に設計してください。 次に、設計セッションの情報を使用して PKI を構成する方法については、 テスト ラボ ガイド: AD CS Two-Tier PKI 階層のデプロイ に関するページを参照してください。
ラボベースの PKI
次の手順を使用して、 ラボ環境に適した単純な公開キー インフラストラクチャをデプロイできます。
証明機関 (CA) をインストールする Windows Server で 、エンタープライズ管理者 と同等の資格情報を使用してサインインします。
注
運用環境のドメイン コントローラーに証明機関をインストールしないでください。
- 管理者特権の Windows PowerShell プロンプトを開く
- 次のコマンドを使用して Active Directory 証明書サービスの役割をインストールします。
Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools
- 次のコマンドを使用して、基本的な証明機関の構成を使用して CA を構成します
Install-AdcsCertificationAuthority
エンタープライズ PKI を構成する
ドメイン コントローラー証明書を構成する
クライアントはドメイン コントローラーを信頼する必要があり、信頼を有効にする最善の方法は、各ドメイン コントローラーに Kerberos 認証 証明書があることを確認することです。 ドメイン コントローラーに証明書をインストールすると、キー配布センター (KDC) がドメインの他のメンバーにその ID を証明できます。 証明書は、ドメインの外部にある信頼のルート ( つまり、エンタープライズ証明機関) をクライアントに提供します。
ドメイン コントローラーは、エンタープライズ CA が Active Directory に追加されていることを検出すると、 ドメイン コントローラー証明書 (公開されている場合) を自動的に要求します。 ドメイン コントローラーとドメイン コントローラー認証証明書テンプレートに基づく証明書には、後で Kerberos RFC に追加された KDC 認証オブジェクト識別子 (OID) は含まれません。 そのため、ドメイン コントローラーは Kerberos 認証 証明書テンプレートに基づいて証明書を要求する必要があります。
既定では、Active Directory CA は Kerberos 認証 証明書テンプレートを提供して発行します。 テンプレートに含まれる暗号化構成は、古くてパフォーマンスの低い暗号化 API に基づいています。 ドメイン コントローラーが最適な暗号化を使用して適切な証明書を要求するようにするには、 Kerberos 認証 証明書テンプレートを ベースライン として使用して、更新されたドメイン コントローラー証明書テンプレートを作成します。
重要
ドメイン コントローラーに発行される証明書は、次の要件を満たす必要があります。
- 証明書失効リスト (CRL) 配布ポイント拡張機能は、有効な CRL、またはオンライン証明書状態プロトコル (OCSP) レスポンダーを指す機関情報アクセス (AIA) 拡張機能を指している必要があります
- 必要に応じて、証明書の [サブジェクト ] セクションにサーバー オブジェクトのディレクトリ パス (識別名) を含めることができました。
- 証明書の [キー使用法] セクションには、デジタル署名とキー暗号化が含まれている必要があります
- 必要に応じて、証明書の [基本制約] セクションに次のものが含まれている必要があります。
[Subject Type=End Entity, Path Length Constraint=None]
- 証明書 拡張キーの使用 セクションには、クライアント認証 (
1.3.6.1.5.5.7.3.2
)、サーバー認証 (1.3.6.1.5.5.7.3.1
)、KDC 認証 (1.3.6.1.5.2.3.5
) が含まれている必要があります。 - 証明書の [サブジェクトの別名] セクションには、ドメイン ネーム システム (DNS) 名が含まれている必要があります
- 証明書テンプレートには、BMPstring としてエンコード
DomainController
値を持つ拡張機能が必要です。 Windows Server Enterprise 証明機関を使用している場合、この拡張機能はドメイン コントローラー証明書テンプレートに既に含まれています - ドメイン コントローラー証明書は、ローカル コンピューターの証明書ストアにインストールする必要があります
ドメイン管理者と同等の資格情報を使用して、CA または管理ワークステーションにサインインします。
証明機関管理コンソール を 開く
[証明書テンプレート] > [管理] を右クリックします
証明書テンプレート コンソールで、詳細ウィンドウで Kerberos 認証テンプレートを右クリックし、[テンプレートの複製] を選択します。
テンプレートを構成するには、次の表を使用します。
タブ名 構成 互換性 - [ 結果の変更を表示 する] チェック ボックスをオフにする
- 証明機関の一覧から [Windows Server 2016] を選択します
- [認定受信者] の一覧から [Windows 10/ Windows Server 2016] を選択します
全般 - ドメイン コントローラー認証 (Kerberos) など、テンプレートの表示名を指定する
- 有効期間を目的の値に設定します
- 後のテンプレート名を書き留めます。テンプレート表示名からスペースを差し引いた名前と同じにする必要があります
サブジェクト名 - この Active Directory 情報から [ビルド] を選択します
- [サブジェクト名の形式] ボックスの一覧から [なし] を選択します
- [代替サブジェクトにこの情報を含める] ボックスの一覧から [DNS 名] を選択します
- 他のすべての項目をクリアする
Cryptography - [プロバイダー カテゴリ] を [キー ストレージ プロバイダー] に設定する
- アルゴリズム名を RSA に設定する
- 最小キー サイズを 2048 に設定する
- 要求ハッシュを SHA256 に設定する
[ OK] を 選択して変更を完了し、新しいテンプレートを作成します
コンソールを閉じる
既存のドメイン コントローラー証明書を置き換える
ドメイン コントローラーには、既存のドメイン コントローラー証明書がある場合があります。 Active Directory Certificate Services には、 ドメイン コントローラー証明書と呼ばれるドメイン コントローラー用の既定の証明書テンプレートが用意されています。 Windows Server の以降のリリースでは、 ドメイン コントローラー認証証明書と呼ばれる新しい証明書テンプレートが提供されました。 これらの証明書テンプレートは、 KDC 認証 拡張機能を含めるために必要な証明書認証を実行するキー配布センター (KDC) を示す Kerberos 仕様の更新前に提供されました。
Kerberos 認証証明書テンプレートは、ドメイン コントローラー用に指定された最新の証明書テンプレートであり、すべてのドメイン コントローラーに展開する必要があります。
自動登録機能を使用すると、ドメイン コントローラー証明書を置き換えることができます。
Kerberos 認証証明書テンプレートを使用して、古いドメイン コントローラー証明書を新しいドメイン コントローラー証明書に置き換えるには、次の構成を使用します。
エンタープライズ管理者と同等の資格情報を使用して、CA または管理ワークステーションにサインインします。
- 証明機関管理コンソール を 開く
- [証明書テンプレート] > [管理] を右クリックします
- 証明書テンプレート コンソールで、詳細ウィンドウでドメイン コントローラー認証 (Kerberos) (または前のセクションで作成した証明書テンプレートの名前) テンプレートを右クリックし、[プロパティ] を選択します。
- [ 置き換えられたテンプレート ] タブを選択します。[ 追加] を選択します
- [置き換えられたテンプレートの追加] ダイアログで、ドメイン コントローラー証明書テンプレートを選択し、[OK] > [追加] を選択します。
- [ 置き換えられたテンプレートの追加 ] ダイアログで、 ドメイン コントローラー認証 証明書テンプレートを選択し、[ OK] を選択します
- [ 置き換えられたテンプレートの追加 ] ダイアログで、 Kerberos 認証 証明書テンプレートを選択し、[ OK] を選択します
- 以前にドメイン コントローラー用に構成されていた他のエンタープライズ証明書テンプレートを [ 置き換えられたテンプレート ] タブに追加する
- [ OK] を選択 し、[ 証明書テンプレート ] コンソールを閉じます
証明書テンプレートは、置き換えられたテンプレートの一覧で提供されるすべての証明書 テンプレートを置き換えるために 構成されます。
ただし、テンプレートが 1 つ以上の証明機関に発行されるまで、証明書テンプレートと証明書テンプレートのスーパーシングはアクティブになりません。
注
ドメイン コントローラーの証明書は、NTAuth ストア内のルートにチェーンする必要があります。 既定では、Active Directory 証明機関のルート証明書が NTAuth ストアに追加されます。 Microsoft 以外の CA を使用している場合、これは既定では実行されない可能性があります。 ドメイン コントローラー証明書が NTAuth ストアのルートにチェーンされていない場合、ユーザー認証は失敗します。 NTAuth ストア内のすべての証明書を表示するには、次のコマンドを使用します。
Certutil -viewstore -enterprise NTAuth
内部 Web サーバー証明書テンプレートを構成する
Windows クライアントは、HTTPS 経由で AD FS と通信します。 このニーズを満たすためには、AD FS ファーム内のすべてのノードに 対してサーバー認証 証明書を発行する必要があります。 オンプレミスの展開では、エンタープライズ PKI によって発行された サーバー認証 証明書を使用できます。 AD FS ノードが証明書を要求できるように、 サーバー認証 証明書テンプレートを構成する必要があります。
ドメイン管理者と同等の資格情報を使用して、CA または管理ワークステーションにサインインします。
証明機関管理コンソール を 開く
[証明書テンプレート] > [管理] を右クリックします
証明書テンプレート コンソールで、詳細ウィンドウで Web サーバー テンプレートを右クリックし、[テンプレートの複製] を選択します。
テンプレートを構成するには、次の表を使用します。
タブ名 構成 互換性 - [ 結果の変更を表示 する] チェック ボックスをオフにする
- 証明機関の一覧から [Windows Server 2016] を選択します
- [認定受信者] の一覧から [Windows 10/ Windows Server 2016] を選択します
全般 - テンプレートの表示名 (内部 Web サーバーなど) を指定する
- 有効期間を目的の値に設定します
- 後のテンプレート名を書き留めます。テンプレート表示名からスペースを差し引いた名前と同じにする必要があります
要求処理 [ 秘密キーのエクスポートを許可する] を選択します サブジェクト名 要求で [Supply]\(供給\) を選択します セキュリティ [登録] アクセス権を持つドメイン コンピューターを追加する Cryptography - [プロバイダー カテゴリ] を [キー ストレージ プロバイダー] に設定する
- アルゴリズム名を RSA に設定する
- 最小キー サイズを 2048 に設定する
- 要求ハッシュを SHA256 に設定する
[ OK] を 選択して変更を完了し、新しいテンプレートを作成します
コンソールを閉じる
優先する証明書テンプレートの非公開化
証明機関は、発行された証明書テンプレートに基づいて証明書のみを発行します。 セキュリティを確保するために、CA が発行するように構成されていない証明書テンプレート (ロールのインストールからの事前発行済みテンプレートや置き換えられたテンプレートなど) を発行解除することをお勧めします。
新しく作成された ドメイン コントローラー認証 証明書テンプレートは、以前のドメイン コントローラー証明書テンプレートよりも優先されます。 そのため、すべての発行元証明機関からこれらの証明書テンプレートを非公開にする必要があります。
エンタープライズ管理者と同等の資格情報を使用して、CA または管理ワークステーションにサインインします。
- 証明機関管理コンソール を 開く
- ナビゲーション ウィンドウから親ノードを展開 >Certificate Templates
- ドメイン コントローラー証明書テンプレートを右クリックし、[削除] を選択します。 [証明書テンプレートを無効にする] ウィンドウで [はい] を選択します
- ドメイン コントローラー認証と Kerberos 認証証明書テンプレートに対して手順 3 を繰り返す
CA に証明書テンプレートを発行する
証明機関は、発行された証明書テンプレートに対してのみ証明書を発行できます。 複数の CA があり、証明書テンプレートに基づいて証明書を発行する CA を増やす場合は、証明書テンプレートを発行する必要があります。
エンタープライズ管理者と同等の資格情報を使用して、CA または管理ワークステーションにサインインします。
- 証明機関管理コンソール を 開く
- ナビゲーション ウィンドウから親ノードを展開する
- ナビゲーション ウィンドウで [証明書テンプレート ] を選択します
- [証明書テンプレート] ノードを右クリックします。 発行 する [新しい > 証明書テンプレート] を選択します
- [ 証明書テンプレートの有効化] ウィンドウで、前の手順で作成した ドメイン コントローラー認証 (Kerberos) テンプレートと 内部 Web サーバー テンプレートを選択します。 [ OK] を選択 して、選択した証明書テンプレートを証明機関に発行します
-
ドメイン コントローラー認証 (Kerberos) 証明書テンプレートを発行した場合は、置き換えられたテンプレートの一覧に含まれている証明書テンプレートの発行を解除します
- 証明書テンプレートを発行解除するには、発行を解除する証明書テンプレートを右クリックし、[削除] を選択 します。 [ はい] を 選択して操作を確認します
- コンソールを閉じる
ドメイン コントローラーに証明書を構成して展開する
ドメイン コントローラーの自動証明書登録を構成する
ドメイン コントローラーは、 ドメイン コントローラー 証明書テンプレートから証明書を自動的に要求します。 ただし、ドメイン コントローラーは、証明書テンプレートの新しい証明書テンプレートや置き換えられた構成を認識することはできません。 ドメイン コントローラーが証明書を自動的に登録および更新するには、証明書の自動登録用に GPO を構成し、 ドメイン コントローラー OU にリンクします。
- グループ ポリシー管理コンソール (gpmc.msc) を開きます
- ドメインを展開し、ナビゲーション ウィンドウで [グループ ポリシー オブジェクト ] ノードを選択します
- [グループ ポリシー オブジェクト] を右クリックして [新規] を選択します。
- 名前ボックスに 「ドメイン コントローラーの自動証明書登録 」と入力し、[ OK] を選択します
- ドメイン コントローラーの自動証明書登録グループ ポリシー オブジェクトを右クリックし、[編集] を選択します
- ナビゲーション ウィンドウで、[コンピューターの構成] の下の [ポリシー] を展開します
- [ Windows 設定] > [セキュリティ設定] > [公開キー ポリシー] を展開します
- 詳細ウィンドウで、[Certificate Services クライアント - 自動登録] を右クリックし、[プロパティ] を選択します。
- [構成モデル] の一覧から [有効] を選択します
- [ 有効期限が切れた証明書の更新、保留中の証明書の更新、失効した証明書の削除 ] チェック ボックスをオンにします
- [ 証明書テンプレートを使用する証明書を更新する ] チェック ボックスをオンにします
- [ OK] を選択します
- グループ ポリシー管理エディターを閉じる
ドメイン コントローラーの自動証明書登録 GPO を展開する
ドメイン管理者と同等の資格情報を使用して 、ドメイン コントローラーまたは管理ワークステーションにサインインします。
- グループ ポリシー管理コンソール (gpmc.msc) を開始します。
- ナビゲーション ウィンドウで、ドメインを展開し、Active Directory ドメイン名を持つノードを展開します。 ドメイン コントローラー組織単位を右クリックし、[既存の GPO をリンクする]を選択します。
- [ GPO の選択 ] ダイアログ ボックスで、[ ドメイン コントローラーの証明書の自動登録 ] または前に作成したドメイン コントローラー証明書登録グループ ポリシー オブジェクトの名前を選択します
- [ OK] を選択します
構成を検証する
Windows Hello for Business は、複雑で難しく見える分散システムです。 デプロイを成功させる鍵は、次のフェーズに移行する前に作業フェーズを検証することです。
置き換えられた証明書テンプレートではなく、ドメイン コントローラーが正しい証明書を登録していることを確認します。 各ドメイン コントローラーが証明書の自動登録を完了したことを確認します。
イベント ログを使用する
ドメイン管理者と同等の資格情報を使用して 、ドメイン コントローラーまたは管理ワークステーションにサインインします。
- イベント ビューアーを使用して、 アプリケーションとサービス>Microsoft>Windows>CertificateServices-Lifecycles-System イベント ログに移動します。
- 新しい証明書登録 (自動登録) を示すイベントを探します。
- イベントの詳細には、証明書が発行された証明書テンプレートが含まれます
- 証明書の発行に使用する証明書テンプレートの名前は、イベントに含まれる証明書テンプレート名と一致する必要があります
- 証明書の拇印と EKU もイベントに含まれます
- 適切な Windows Hello for Business 認証に必要な EKU は、証明書テンプレートによって提供される他の EKU に加えて、Kerberos 認証です
新しいドメイン コントローラー証明書に置き換えられた証明書は、イベント ログに アーカイブ イベント を生成します。 アーカイブ イベントには、証明書テンプレート名と、新しい証明書が優先された証明書の拇印が含まれます。
証明書マネージャー
証明書マネージャーのコンソールを使えば、適切に登録された証明書 (適切な EKU を使用した正しい証明書テンプレートに基づいている) がドメイン コントローラーにあるかどうかを検証できます。 certlm.msc を使用して、ローカル コンピューターの証明書ストアで証明書を表示します。 [個人] ストアを展開し、コンピューターに登録された証明書を表示します。 アーカイブされた証明書は証明書マネージャーに表示されません。
certutil.exe
certutil.exe
コマンドを使用して、ローカル コンピューターに登録されている証明書を表示できます。 certutil は、ローカル コンピューターの登録された証明書とアーカイブされた証明書を表示します。 管理者特権のコマンド プロンプトから、次のコマンドを実行します。
certutil.exe -q -store my
ストア内の各証明書に関する詳細情報を表示し、適切な証明書が登録された証明書の自動登録を検証するには、次のコマンドを使用します。
certutil.exe -q -v -store my
トラブルシューティング
Windows は、起動中とグループ ポリシーの更新時に、コンピューターの証明書の自動登録をトリガーします。 グループ ポリシーは、管理者特権でのコマンド プロンプトから gpupdate.exe /force
を使用して更新することができます。
管理者特権でのコマンド プロンプトから certreq.exe -autoenroll -q
を使用して、証明書の自動登録を強制的にトリガーすることもできます。
証明書の登録とアーカイブを監視するには、イベント ログを使用します。 証明機関への証明書テンプレートの発行や自動登録の 許可 などの構成を確認します。
セクション レビューと次の手順
次のセクションに進む前に、次の手順が完了していることを確認します。
- ドメイン コントローラーと Web サーバー証明書テンプレートを構成する
- 既存のドメイン コントローラー証明書を置き換える
- 優先する証明書テンプレートの非公開化
- 証明書テンプレートを CA に発行する
- ドメイン コントローラーに証明書を展開する
- ドメイン コントローラーの構成を検証する