はじめに
既に オンプレミス環境で AD CS(エンタープライズ CA)+ NPS で 802.1x 認証 を運用している場合(参考リンク)は、GPO で クライアント証明書 と WiFi プロファイルを配布されているかと思います。
このような環境を運用している際に、あらたに Microsoft Entra 参加済みデバイス(オンプレミスのドメインには参加しない)が加わるような場合に、この PC には 証明書を配布することができません。
※クライアント PC がドメインに参加していない場合は、GPO を利用することができないため。
このような場合は、Intune から配布することが解決策となります。
この記事では、既存の運用に増設する形で、AD CS から発行された クライアント証明書 を Intune から配布できるようにする方法を紹介していきます。
WiFi プロファイルの配布 は、以下の記事で紹介しています。
この記事の内容と組み合わせることで、最終的に WiFi (EAP-TLS) の接続に必要な構成を すべて Intne から配布する事が可能になります。
オンプレ環境を持っておらず、新規に Intune だけで クライアント証明書 を発行できれば良い場合は、以下の公開情報が参考になりそうです。私は、まだ検証していないのですが、検証し終えたら 別途 記事化したいと思います。
公開情報:Microsoft Intune の Microsoft クラウド PKI の概要
https://learn.microsoft.com/ja-jp/mem/intune/protect/microsoft-cloud-pki-overview
クライアント証明書 が PC へ配布されるまでの流れ
- PC は、Intune から、SCEP プロファイルを受信します
- PC は SCEP プロファイルで指定された SCEP の URL (NDES の外部アドレス) へ デバイス固有の サブジェクトの別名 を指定して 証明書要求を送信します(PC と NDES が直接通信します)
- NDES は、証明書要求を受け取り、CA に証明書の発行を依頼します(構築時に レジストリで指定しておいた テンプレート名 が指定されます)
- CA は、NDES から 指定された テンプレートを使って、クライアント証明書 を発行し NDES へ返します
- NDES は、受け取った証明書を PC へ 配布します
前提となる環境
冒頭でも説明したとおり、以下の記事で紹介しているような オンプレミス側の環境が必要です。
上記の記事の環境に加えて、追加のサーバーが1台必要です。
以下の表で、★ で示したように Windows Server を増設して、ドメインに参加させてください。
本記事で増設 | 記事内の略称 | 役割 | キャプチャ上のホスト名 |
---|---|---|---|
AD01 | ドメインコントローラー (AD DS) | NDES-AD01 | |
NPS01 | ネットワークポリシーサービス (NPS) | NDES-NPS01 | |
CA01 | 証明書サービス (AD CS) | NDES-CA01 | |
★ | NDES01 | ネットワークデバイス登録サービス (NDES) | NDES-NDES01 |
WiFi-AP | WiFi アクセスポイント | - | |
PC01 | クライアント PC | - |
NDES の機能は、CA と同居させることは セキュリティ的な観点で 非推奨 となっています。
CA01 とは別のサーバーにしてください。
構築手順
1. 証明書コネクタ用 サービスアカウント の準備
1-1. 証明書コネクタ用 アカウントの作成
(AD01 で作業を行います)
以下の公開情報の要件に定められている 証明書コネクタ用 の サービスアカウント を作成します。
公開情報:証明書コネクタ サービスアカウント
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificate-connector-prerequisites#certificate-connector-service-account
- サーバーマネージャーから Active Directory ユーザーとコンピューター を開きます。
-
Users コンテナ を右クリックして、新規作成 をポイントし ユーザー を選択します。
- 下図の通り 値(任意ですが同じように設定した方が、後述する手順と合います)を設定して 次へ をクリックします。
-
ユーザーはパスワードを変更できない と パスワードを無期限にする にチェックを入れて、次へ をクリックします。
※このアカウントは、ログオンとして使わずに、サービスアカウントとして使うために こうしています。
1-2. サービスとしてのログオンを許可する
前章で作成した アカウント を、NDES01 サーバー 上で サービスアカウント として利用できるように構成します。
公開情報:ローカル グループ ポリシーを使用してサービス ログオンを有効にする
https://learn.microsoft.com/ja-jp/system-center/scsm/enable-service-log-on-sm?view=sc-sm-2019&preserve-view=true#enable-service-log-on-through-a-local-group-policy
(NDES01 で作業を行います)
- 検索欄に ローカル と入力して ローカル セキュリティ ポリシー を開きます。
- 左ペインから ローカル ポリシー を開き ユーザーの権利の割り当て を選びます。
サービスとしてログオン のプロパティを開き ユーザーまたはグループの追加 を押します。
- 前章で作成した サービスアカウント を入力して 名前の確認 を押し、赤下線のように アンダーライン が出た状態になったら、OK を押します。
- 下図のように 一覧 に加わった事を確認して OK を押します。
2. 証明機関 (CA) で証明書テンプレートを構成する
2-1. クライアント証明書 自動発行のための SCEP テンプレートを構成する
証明機関 (CA) で、SCEP 用の証明書が発行できるように、テンプレートを構成しておきます。
NDES の機能が サービスアカウントの権限を使って、このテンプレートから証明書を発行して、Intune へ連携できるようになります。
公開情報:SCEP 証明書テンプレートを作成する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#configure-the-certification-authority
(CA01 で作業を行います)
- サーバーマネージャー から 証明機関 を選択します。
- 左ペインから 証明書テンプレート を右クリックし 管理 を選択します。
- 一覧から コンピューター を右クリックして テンプレートの複製 を選びます。
-
全般 タブでは、任意の名称 を設定し、チェック欄が OFF になっていることを確認します。
ここで設定した名称は、後述する手順内で使われますので、別名にした場合は読み替えてください。
-
サブジェクト名 タブでは 要求に含まれる を選択します。
この設定によって、Intne 側で構成した証明書要求が NDES を経由して このテンプレートから証明書が作られます。
-
拡張機能 タブ の アプリケーションポリシー では クライアント認証 が含まれていることを確認します。
この設定によって、クライアント証明書 の属性をもった証明書が発行されます。
-
キー使用法 を選択して キー暗号化のみキー交換を許可します が表示されていることを確認します。
-
セキュリティ タブ で 追加 を押します。
- 作成済みの サービスアカウント を入力して 名前の確認 を押します。
赤下線部のように アンダーライン が表示されていることを確認して OK を押します。
- 下図の通り、一覧に追加された箇所を選択して 登録 にチェックを入れます。
-
要求処理 タブは 以下のような内容になっています。
-
発行の要件 タブは 以下のような内容になっています。
ここまで設定が完了したら OK を押して設定を終了します。
2-2. NDES 用 サーバー証明書テンプレートを作成する
NDES は クライアント PC からの証明書発行要求を受け付ける仕事をします。
この要求の受付をするための Web サイト (IIS) を外部公開する必要があります。
この Web サイトのための サーバー証明書 が必要です。
この章では、テンプレートを作成しておくことで、NDES01 に対して、サーバー証明書が自動発行されることを目的とした手順になっています。
公開情報:サーバー証明書テンプレートを作成する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#create-the-server-certificate-template
- 一覧から Web サーバー を右クリックして テンプレートの複製 を選びます。
-
全般 タブでは、任意の名称 を設定し、チェック欄が OFF になっていることを確認します。
-
拡張機能 タブ の アプリケーションポリシー では サーバー認証 が含まれていることを確認します。
この設定によって、サーバー証明書 の属性をもった証明書が発行されます。
-
サブジェクト名 タブでは Active Directory の情報から構築する を選択し DNS 名 だけチェックが入った状態にします。
この設定によって、ドメイン参加済みの コンピューター名 を使った サーバー証明書 が自動発行される設定になります。
-
セキュリティ タブ で 追加 を押します。
- 下図では オブジェクトの種類 を押します。
- 下図の通り コンピューター にチェックが入った状態にして OK を押します。
- NDES01 サーバーの名称を入力して 名前の確認 を押します。赤下線部のように アンダーライン が出た事を確認して OK を押します。
- 下図のように 一覧に NDES01 の コンピューター名 が追加されます。アクセス権では 読み取り・登録・自動登録 にチェックが入った状態にして OK を押します。
2-3. 証明書テンプレートを発行する
2-1.章、2-2.章 で作成した証明書を 自動発行 するように構成します。
公開情報:証明書テンプレートを発行する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#publish-certificate-templates
注意
すでに、私が紹介した記事の手順で、オンプレミス環境で 証明書の自動配布を実施済みなら、上記までの手順で 証明書は自動配布されます。
ただし、新規に 証明機関 (CA) で証明書の自動配布を行う場合は、以下の構成も必要です。
もし、証明書が自動配布されないようなら、以下の設定箇所もチェックしてください。
詳細な手順 へのリンク
https://qiita.com/carol0226/items/564a21455cd3e5f58906#2-3-1-コンピューター証明書の自動登録を構成する
2-4. 証明書失効のためのアクセス許可を付与する
Intune 側から証明書を失効させるために、サービスアカウントに対して 失効の権限を付与します。
公開情報:証明書失効のためのアクセス許可を付与する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#grant-permissions-for-certificate-revocation
(CA01 で作業を行います)
- 証明機関名を右クリックして プロパティ を開きます。
-
セキュリティ タブで 追加 を押します。
- サービスアカウント名を入力して 名前の確認 を押します。赤下線のように アンダーライン が表示された状態で OK を押します。
- 以下のように 一覧に表示されたら それを選択し、すべての 許可 欄の チェック を ON にしてから OK を押して確定させます。
3. ネットワークデバイス登録サービス (NDES) を構成する
前章までの作業で、事前準備が全て整ったため、メインとなる NDES の導入を行います。
公開情報:NDES を設定する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#set-up-ndes
3-1. NDES サービスをインストールする
NDES は、AD CS の役割サービスに含まれている 1機能 という位置づけです。
(NDES01 で作業を行います)
- サーバーマネージャ から 役割と機能の追加 を選びます。
- 以下の画面では 次へ を押します。
-
役割ベースまたは機能ベースのインストール を選択して 次へ を押します。
- NDES01 のサーバーが選ばれた状態で 次へ を押します。
-
Active Directory 証明書サービス を選択します。
ポップアップされる リモートサーバー管理ツール のウィンドウでも 機能の追加 を押して 元の画面に戻ったあと 次へ を押します。
-
ASPNET 4.8 と HTTP アクティブ化 にチェックを入れます。
HTTP アクティブ化に必要な機能 のウィンドウがポップアップされるので 機能の追加 を押して、元の画面に戻ったら 次へ を押します。
- 以下の画面では 次へ を押します。
- 以下の画面では ネットワークデバイス登録サービス にチェックを入れます。
ネットワークデバイス登録サービス に必要な機能の追加 のポップアップが表示されたら 機能の追加 を押して、元の画面に戻ったら 次へ を押します。
- 以下の画面では 次へ を押します。
- 以下の画面では、赤枠内のチェックボックスについて、以降の画面を見ながら 追加のチェックを行ってください。一通り設定を行ったら 次へ を押します。
要求フィルター にチェックを入れます。
ASPNET 3.5 と ASPNET 4.x にチェックを入れます。
※OS のバージョンによって 4.7 の場合と 4.8 の場合がありますが 4.7 以上なら OK です。
IIS 6 メタベース互換 と IIS 6 WMI 互換 にチェックを入れます。
-
代替ソース パス を設定してから、インストール をクリックします。
12.機能のインストールが完了したら、赤下線部の 対象サーバーに Active Directory 証明書サービスを構成する のリンクをクリックします。そのあと開いたウィンドウは そのまま にしておいてください(3-3.章で使います)
3-2. IIS_IUSR グループのメンバーとして NDES サービス アカウントを追加する
サーバーで、ローカルの IIS_IUSR グループのメンバーとして NDES サービス アカウントを追加します。
公開情報:NDES サービス アカウントをローカルの IIS_IUSRS グループに追加する
https://learn.microsoft.com/ja-jp/windows-server/identity/ad-cs/create-domain-user-account-ndes-service-account#add-the-ndes-service-account-to-the-local-iis_iusrs-group
(NDES01 で作業を行います)
- スタートボタン を右クリックして コンピューターの管理 を選択します。
- 左ペインから ローカルユーザーとグループ を開き グループ を選択し、IIS_IUSERS をダブルクリックして開きます。
-
追加 を押して、NDES サービスアカウント 追加します。最後に OK を押します。
3-3. NDES サービスを構成する
NDES の機能について、初期構成を設定します。
公開情報:NDES サービスを構成する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#configure-the-ndes-service
(NDES01 で作業を行います)
- 以下のとおり、3-1.章の最後で表示された画面を確認し 下線部 が NDES サービスアカウント になっていることを確認し 次へ を押します。
-
ネットワークデバイス登録サービス にチェックを入れて 次へ を押します。
-
サービスアカウントを指定 を選び 選択 ボタンを押して、ポップアップされた画面で、、NDES サービスアカウント を指定して 最後に 次へ を押します。
- 以下の画面では CA 名 を選択して 選択 を押します。表示された一覧から CA 名 を選択して OK を押します。最後に 次へ を押します。
- 以下の画面では 特に変更せずに 次へ を押します。
- 以下の画面では 特に変更せずに 次へ を押します。
- 以下の最終確認画面で 構成 を押します。
- 以下のように 構成に成功しました と表示されれば OK です。閉じる を押して終了します。
エラーの場合の対処法
ここで、エラーが出てウィザードが正常終了しないときがあります。
ウィザードをリトライさせるだけで改善したパターンがありました。
※手順に漏れがないかどうかも再確認してください。
なお、ウィザード を再開する方法が存在しないようです。
一旦、「役割と機能の削除」を使って、「ネットワークデバイス登録サービス」を削除してから、入れなおしてください。
3-4. NDES が発行する SCEP テンプレート の指定
次のレジストリ キーを編集することで NDES が発行する SCEP 証明書テンプレートを明示的に指定します。
重要
2-1.章で 設定した テンプレート の名称に合わせる必要があります。
(NDES01 で作業を行います)
1.Regedit コマンドで レジストリエディタ を起動して 以下のキー を開きます。
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\
3つのレジストリの各値を 2-2.章 で設定した テンプレート名 に変更していきます。
2.NDES01 サーバー を 再起動 します(必須)
3.再起動後に ブラウザ を開き 以下の URL へアクセスします。
http://127.0.0.1/certsrv/mscep/mscep.dll
以下の画像のような ネットワークデバイス登録サービス のページが表示されれば OK です。
4. NDES を外部公開する
前章までの作業では、HTTP (Port 80) のみアクセス可能な状態です。
この章では、証明書 をバインドして HTTPS (Port 433) でのアクセスを有効化して、インターネット上のデバイスからのアクセスができるように構成します。
4-1. NDES をホストするサーバーに証明書をインストールしてバインドする
NDES01 には、既に 以下の サーバー証明書 が配布されているハズです。この証明書を IIS にバインドする作業を行います。
Certlm.msc コマンドを実行し、下図の コンテナ を開くと確認できます。
公開情報:NDES をホストするサーバーに証明書をインストールしてバインドする
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#install-and-bind-certificates-on-the-server-that-hosts-ndes
(NDES01 で作業を行います)
- サーバーマネージャ から インターネットインフォメーションサービス (IIS) マネージャー を開きます。
- 左ペインから Default Web Site を選択して 右ペイン の バインド を開きます。
- 以下の画面で 追加 を押します。
- 以下の画面のように 種類 は https を選択して ホスト名 を 自ホスト名+ドメイン名 で指定します。SSL 証明書 欄は、表示されている 16 進数 のアドレス を選択します。
そのあと 表示 を押します。
以下のように 有効な サーバー証明書が表示されれば OK です。
最後に OK を押します。
- 以下のように https の行が追加されたことを確認して 閉じる を押します。
- ブラウザで、先ほど https で追加した際の ホスト名 で接続します。
以下のように表示されれば OK です。
4-2. NDES を インターネットに公開する
前章で構成した NDES のサイトは、クライアント PC からダイレクトにアクセスされます。
クライアント PC から、インターネット経由でアクセスできるように、外部公開しておく必要があります。
公開情報:インターネットでの NDES のサポート
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#support-for-ndes-on-the-internet
上記の公開情報には、①~③ の方法が紹介されていますが、④ の方法でも問題ありません。
① Microsoft Entra アプリケーション プロキシ
② Web アプリケーション プロキシ サーバー
③ サード パーティのリバース プロキシ
④ Firewall の機能などで外部へ公開
外部へサイトを公開できたら、インターネット上の PC から サイトを表示できるようになったことを確認してください。
https://[外部公開したURL]/certsrv/mscep/mscep.dll
この時点では、社内からアクセスした時と同じように、ネットワークデバイス登録サービス のサイトが表示されます。
私としては ① のアプリケーションプロキシを おススメします。
私が NDES と連携させた時の ① の手順 は、以下の ▶ を押してみてください。
アプリケーションプロキシ で構成した時の手順(参考)
4-2-1. アプリケーションプロキシを使って NDES を外部公開する手順
以下の公開情報をもとに構成しています。
公開情報:ネットワーク デバイス登録サービス (NDES) サーバー上の Microsoft Entra アプリケーション プロキシとの統合
https://learn.microsoft.com/ja-jp/entra/identity/app-proxy/app-proxy-protect-ndes
4-2-1-1. プライベートネットワークコネクタ のインストール
(NDES01 で作業を行います)
- Microsoft Entra 管理センターにアクセスします。
https://entra.microsoft.com
- 下図を参考に プライベートネットワークコネクタ をダウンロードします。
-
契約に同意してダウンロード を押します。
- ダウンロードされたら ファイルを開く(実行) します。
-
I agree~ にチェックを入れて Install を実行します。
- 以下のように進みます。
- 認証を要求されたら テナント の管理者アカウントで認証します。
- インストールが完了したら Close を押します。
- 以下の画面のとおり、一覧に追加されて アクティブ になっていれば OK です。
4-2-1-2. エンタープライズアプリで オンプレアプリケーションを追加する
コネクタが導入されたら 内部サイトを外部公開する仕掛けが構成できました。
この章では、どの 内部 URL を外部公開するのかを指定していきます。
-
エンタープライズアプリケーション で すべてのアプリケーション のメニューから 新しいアプリケーション を選択します。
- 以下の画面では オンプレミスアプリケーションの追加 をクリックします。
- 以下の画面の設定が重要です。名前は 任意で構いません。
内部 URL を正しく設定して、外部 URL は、https を選択します。緑下線部に表示された URL をコピーしておいてください。後で使います。
事前認証 を パススルー に構成する必要があります。
設定値の入力が終わったら 作成 を押します。
- 以下の通知が表示されれば OK です。
- 以下の通り、一覧に 追加されれば OK です。
- この状態で、インターネット上の 外部 PC で ブラウザを起動して 緑下線部 に表示されていた URL を入力して アクセスしてみてください。
https://ndes01-lake831.msappproxy.net/certsrv/mscep/mscep.dll
外部経由で 以下のような画面が表示できることが確認できれば OK です。
5. Intune 証明書コネクタ のインストール
NDES の構成が終わったら、Intune 証明書コネクタ を導入して、 NDES と Intune を連携させます。
公開情報:Certificate Connector for Microsoft Intune をダウンロード、インストール、および構成する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-scep-configure#download-install-and-configure-the-certificate-connector-for-microsoft-intune
5-1. IE ESC 強化の無効化
公開情報にも記載がありますが、コネクタ の導入前に IE ESC 強化 の設定を 無効化 しておく必要があります。
(NDES01 で作業を行います)
- サーバーマネージャ で ローカル サーバー を選び IE セキュリティ強化の構成 欄の 有効 というリンクを押します。
- 以下のように Administrators グループ が オフ となるように構成し OK を押します。
- 以下のように IE セキュリティ強化の構成 が 無効 の表示に変われば OK です。変わるまでに 1 分 くらい待つ必要があります。
5-2. コネクタ ソフトウェアをダウンロードしてインストールする
公開情報:Certificate Connector for Microsoft Intune をインストールする
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificate-connector-install
(NDES01 で作業を行います)
- Intune 管理センターにサインインして 左ペイン から テナント管理 から コネクタとトークン を選びます。
- さらに 証明書のコネクタ を選んだ画面から 追加 を押します。
- 以下の画面で 証明書コネクタ のリンクを押します。
- IntuneCertificateConnector.exe というファイルがダウンロードされたら ファイルを開く をクリックして 実行 します。
- ライセンス条項に同意して インストール を押します。
- インストールが完了したら 今すぐ構成する を押します。
5-3. 証明書コネクタを構成する
公開情報:証明書コネクタを構成する
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificate-connector-install#configure-the-certificate-connector
- 以下の画面では 次へ を押します。
- 以下の通り チェック を入れて 次へ を押します。
既定で SCEP のチェックが外れているので、忘れずに チェック を入れてください。
- 以下では ドメインアカウント を選択し、NDES サービスアカウント の ID と パスワード を入力して 次へ を押します。
この画面では パスワード のチェックが行われないので、間違えないように注意してください(パスワードをミスしていても、先へ進んでしまいます)
- 以下の画面では 次へ を押します。
なお、NDES01 がインターネットに出る際に プロキシサーバーを経由する必要がある場合には、この欄に入力します。
- 前提条件を満たしているか、自動的にチェックが行われます。
下図のように、オールグリーン の表示になったら 次へ を押します。
6.パブリック商用クラウド が選択された状態で サインイン を押します。
認証ウィンドウが表示されるので、接続する Intune テナント の管理者アカウントで認証します。
8.サインインに成功しました と表示されたら 次へ を押します。
9.以下の画面が表示されれば OK です。終了 を押して完了させます。
10.Intune コネクタ が インストールされると、以下のように 一覧に表示されます。
11.前章で外部公開したアドレスにアクセスし、以下の表示になることを確認します。
https://ndes01-lake831.msappproxy.net/certsrv/mscep/mscep.dll
403 エラーになっていますが、これで問題ありません
逆に、この表示にならない場合(タイムアウトしてアクセスできない等)は、手順にミスがあります。
理由:なぜ 403 エラーで問題ないのでしょうか?
(公開情報の説明より抜粋)
Intune では、Intune Certificate Connector をインストールするときに、NDES サーバーに Intune-SCEP ポリシー モジュールをインストールすることによって、NDES URL が保護されます。
このモジュールは、無効な、またはデジタル改ざんされた証明書要求に対して証明書が発行されるのを防ぐことによって、NDES URL をセキュリティで保護するのに役立ちます。
これにより、Intune で管理していて適切な形式の証明書要求を持つ Intune 登録デバイスのみにアクセスが制限されます。
Next Step
前章までの作業まですべて完了したら、Intune と NDES の連携が完了し SCEP で 証明書を配布できる状態になっています。
続けて、以下の記事を参考にして、実際に Intune から SCEP 証明書 を配布してみましょう。
トラブルシューティングに関する情報
NDES でトラブルに見舞われた際に助けになるサイトです。
参考情報
その他の役割サービスについても 以下に 記事化しています。
ぜひ、併せて参照ください。