Intune で SCEP 証明書プロファイル を配布する

# はじめに
Intune では、SCEP 証明書プロファイルを利用することで、PC へ クライアント証明書 を配布する事が可能です。

本記事では、既に **"SCEP を提供する環境が 構築済み"** の前提で、構成プロファイルを使って PC へ 証明書を配布する方法を案内したいと思います。

# SCEP を提供する環境について（前提となる環境）
冒頭で申し上げたとおり、別途 SCEP を提供する環境 が必要です。

SCEP を提供する環境は、以下の３通りの方法が考えられます。

**① Intune と NDES を Intune 証明書コネクタ で連携した環境**
　→　この方法は、私の方で 記事化してあります。
　 　 本記事と組み合わせて検証済み。相性抜群です。

https://qiita.com/carol0226/items/472747e7308762ca0ce1

**② Microsoft クラウド PKI を使用する**
以下の公開情報に記載されている方法で 実現可能です。

https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-profile-scep?wt.mc_id=mvp_407731

**参考：Cloud PKI を使って、私が WiFi 用に検証した記事**

https://qiita.com/carol0226/private/8ae2ba23a78290d98ff4

**③ サードパーティの SCEP 提供サービスを利用する**
　→　他社が提供する SCEP 基盤と連携して対応することも可能になっています。
 　　　以下の公開情報内にも記載がありますが、複数の会社から提供されている様子です。

https://learn.microsoft.com/ja-jp/mem/intune/protect/certificate-authority-add-scep-overview?wt.mc_id=mvp_407731

　**例：SCEPman を使った場合の判りやすい記事**

https://blog.cloudnative.co.jp/9900/

:::note info
私の記事では、① の NDES を使った環境を使って検証していますが、
上記、いずれの方法を使った場合でも 本記事で 次章から紹介する SCEP 証明書プロファイルの展開手順を使って、理論上は 配布できるはずです。
:::

:::note warn
**どの方式を選ぶべきか？**　※あくまで私の個人的な見解です
①～③ のどれを選ぶのかは、状況によりますが、以下の観点を踏まえて検討いただくと良いと思います。

① は、オンプレミスの環境が必要です。複数台のサーバーが必要なので、Datacenter Edition の Hyper-V 仮想基盤を既に持っていれば、追加コスト無く構築できるので理想的です。構築手順はボリュームがあり結構複雑なのが難点になります。
既に、エンタープライズ CA を展開済みの環境であれば、親和性が高いため、検討の余地があります。
オンプレ基盤を持っておらず、VM を Azure 上に構成する場合は、検証で動きを見るだけなら良いですが、運用では コストメリットが出ないと思うので ② か ③ の方法の方が良いと思います。

② は、Intune Suite のライセンスが 人数分 必要になります。
③ は、サードパーティ製品の利用料が掛かります。
Microsoft のサービスで統一するか、他社製品も活用するか という観点で、コスト試算をして 比べてみましょう。

② と ③ は、オンプレミス環境を必要とせず、クラウドのみ で完結できる点が 大きなメリットになります。
:::

# 構築手順
構築手順は、以下の公開情報を踏まえて検証して、画面キャプチャ付きでまとめています。

**公開情報：Intune で SCEP 証明書プロファイルを作成して割り当てる**
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-profile-scep

## 1. ルート証明書プロファイルを作成する
SCEP 証明書プロファイルを発行するためには、クライアント PC が、ルート証明書 を保持している必要があります。そのため、ルート証明書 も Intune を使って配布しておきます。

**公開情報：Microsoft Intune 向けの信頼されたルート証明書プロファイル**
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-trusted-root?wt.mc_id=mvp_407731

### 1-1. ルート証明書の入手

:::note warn
**② と ③ の ルート証明書 の 入手**
1-1.章は、① NDES の方法で構成した場合に、AD CS の 証明機関 (CA) から入手する方法を記載しています。

② Microsoft クラウド PKI の場合や ③ サードパーティ の場合は、それぞれの基盤から ルート証明書 を入手したら、1-2.章 に進んでください。
:::

**(CA に接続可能な PC から ブラウザ経由で作業を行います)**

0. 証明機関 (CA) のアドレスにブラウザでアクセスします。
　**http://**[CA のアドレス]**/certsrv/**
　<br>
0. 以下の通り、**CA 証明書、証明書チェーン、または CRL のダウンロード** のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1f2b1b0f-e6e3-b1b3-e991-aae975996302.png)
　<br>
0. **CA 証明書のダウンロード** のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/222f6507-775d-ae34-1132-fa2ee203e88c.png)
　<br>
0. 以下の通り、ダウンロードされれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3cd32524-3d90-0403-7250-056d984734de.png)

:::note info
ダウンロードした ルート証明書 は、1-2.章 以降で作業を行う PC へコピー してください。
:::

### 1-2. ルート証明書プロファイル を作成する

**(インターネットアクセス可能な 任意の PC から ブラウザ経由で作業を行います)**

0. Intune 管理センター へ 管理者アカウント で サインインします。
https://intune.microsoft.com
　<br>
0. 左ペインの **デバイス** から **構成** を選び、**新しいポリシー** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/13b1ab76-2f3f-9f4d-8b85-757462593bbd.png)
　<br>
0. **プラットフォーム** は、**Windows 8.1 以降** を選択し、**プロファイルの種類** は、**信頼済み証明書** を選択して **作成** を押します。
※Windows 10 を選ぶのは 誤りです。そこには "信頼済み証明書" はありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c2a1329d-fe59-41aa-7db4-1a0b07d1536d.png)
　<br>
0. **基本** タブでは、任意の名前を入力して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/965b4582-2f65-1b3c-36e7-e75b822f4812.png)
　<br>
0. **構成設定** タブでは、ファイルのアイコン を押して、ファイル選択ダイアログを表示して、事前に準備しておいた ルート証明書 のファイルを指定します。
赤下線部は、ファイルを指定した後の状態です。
その後、**保存先ストア** で、**コンピューター証明書ストア - ルート** を選択し **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e3811754-c60a-6051-df40-18433c71aa41.png)
　<br>
0. 以下の通知が表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e0d6605e-ea58-f1a5-37e7-4d93fa3a6cd2.png)
　<br>
0. **割り当て** タブでは、ルート証明書 を配布するグループを選択して **次へ** を押します。
下図のキャプチャは、すべてのデバイス を選択した場合です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3eb1bf65-4c10-5256-1155-03001b257425.png)
　<br>
0. **確認および作成** タブで 最終的な内容を確認して **作成** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1c99e207-4036-c979-f98f-c9095e9aa7df.png)
　<br>
0. 以下の通知が表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/83c31073-0ace-71a4-abe6-5e045b12eb63.png)
　<br>
0. 以下のように 一覧に表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1a09de0d-210e-b7d2-5a84-2003107bcc63.png)

## 2. SCEP 証明書プロファイルを作成する
本章は、以下の公開情報の章を踏まえて検証して、画面キャプチャ付きでまとめています。

**公開情報：SCEP 証明書プロファイルを作成する**
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-profile-scep?wt.mc_id=mvp_407731#create-a-scep-certificate-profile

**(インターネットアクセス可能な 任意の PC から ブラウザ経由で作業を行います)**

0. 左ペインの **デバイス** から **構成** を選び、**新しいポリシー** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/13b1ab76-2f3f-9f4d-8b85-757462593bbd.png)
　<br>
0. **プラットフォーム** は、**Windows 10 以降** を選択し、**プロファイルの種類** は、**テンプレート** を選択し、テンプレート名で **SCEP 証明書** を選び、**作成** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/99f5dae7-7188-925c-6532-f6c9e016e12f.png)
　<br>
0. **基本** タブでは、任意の名前を入力して **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b8d7d30d-0224-9fe9-3473-426a462e254d.png)
　<br>
0. **構成設定タブ** が一番重要です。
証明書の種類は、デバイス を選択した証明書を使って、**WiFi - PEAP(EAP-TLS)** で接続できることまで検証済みです。

{{...}} は、変数になっていて 利用中の デバイスやユーザーの情報を使って 証明書要求の文字列を生成する事ができます。

ちょっと難しいですが、公開情報をよく読むと、変数の扱い方が説明されています。
もし、ユーザーを選ぶ場合は、サブジェクトの形式や サブジェクトの別名を適宜カスタマイズすると良いと思います。その場合は、UPN を使う事になると思います。

|項目名|設定値|備考|
|:-:|:-:|:-:|
|証明書の種類|デバイス|この値で検証実績あり|
|サブジェクトの形式|CN={{AAD_Device_ID}}|この値で検証実績あり|
|サブジェクトの別名１（属性）|DNS|デバイス の場合は DNS を選択|
|サブジェクトの別名１（値）|{{DeviceName}}.[ドメイン名]|証明機関が持つ ドメイン名 を踏まえて記載します|
|サブジェクトの別名２（属性）|URI|★高度な証明書マッピング対策|
|サブジェクトの別名２（値）|{{OnPremisesSecurityIdentifier}}|★高度な証明書マッピング対策|
|キー記憶域プロバイダー (KSP)|トラステッドプラットフォームモジュール (TPM) KSP が存在する場合は TPM KSP に登録する (それ以外はソフト～ |この選択肢で検証実績あり|
|キー使用法|"2 項目が選択されました"<br>■デジタル署名<br>■キーの暗号化|この選択肢で検証実績あり|
|キーサイズ|2048|この選択肢で検証実績あり|
|ハッシュアルゴリズム|SHA-2|この選択肢で検証実績あり|

:::note warn
**注意点（2025/2/25 追記）**（★高度な証明書マッピング対策）
この設定を追加しても、動作に問題は発生しませんが、机上で確認した内容を追記しており、まだ 本構成と組み合わせての動作確認を終えていない点、ご注意ください。

この設定を実施することで、2025/2/11 の更新プログラムを ドメインコントローラーに適用した場合の対策となります。

詳しくは、以下の私の記事を参照してください。
**厳密な証明書マッピング 2025/2/11 完全適用モードの注意点 (KB5014754)**
https://qiita.com/carol0226/items/4ab239cfffb3f6a0891a

Intune SCEP 証明書 で具体的にどのような対応をすべきかは、以下の情報を参照してください。
これから本番環境を構築する場合、この対策を講じて 検証済みの構成を 本番に適用することをお勧めいたします。
**証明書コネクタの更新: KB5014754の強力なマッピング要件**
https://learn.microsoft.com/ja-jp/mem/intune/protect/certificates-profile-scep?wt.mc_id=mvp_407731#update-certificate-connector-strong-mapping-requirements-for-kb5014754
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f1ed3b4a-9e2c-4810-ad5c-139f7cb07b01.png)

**Support tip: Implementing strong mapping in Microsoft Intune certificates**
https://techcommunity.microsoft.com/blog/intunecustomersuccess/support-tip-implementing-strong-mapping-in-microsoft-intune-certificates/4053376
:::

5．上記の表の内容を参考に値を入力し、赤枠の **ルート証明書** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2c770662-52d3-cf56-d918-17d451e6e90c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b8110594-01ad-d11d-9a63-d007ce09791d.png)

6．以下の画面の一覧に、前章で作成した ルート証明書 のプロファイルが表示されるため 選択して **OK** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e8f855b4-702c-74d0-127a-417abf982912.png)

7．１行目の **定義済みの値** の欄の リストボックス を開き **クライアント証明書** を選択します。すると、下図のように １行分 が表示されます。

続けて **SCEP サーバーの URL** 欄に、SCEP のアドレスを入力して **次へ** を押します。

:::note info
① の NDES で構築した場合は、以下のようなアドレスになるハズです。
**https://**[外部公開したアドレス]**/certsrv/mscep/mscep.dll**
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/664522b0-ed77-906b-b3fa-0d2d4c29a0f6.png)

8．**割り当て** タブでは、ルート証明書 を配布するグループを選択して **次へ** を押します。
下図のキャプチャは、すべてのデバイス を選択した場合です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f58c79ca-b71f-0fbb-560a-ee0d514f82b9.png)

9．**適用性ルール** タブでは、特に変更せず **次へ** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/07753080-45ad-e890-fb5c-a5e9a8ea49c1.png)

10．**確認および作成** タブで 最終的な内容を確認して **作成** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/40ea99ff-0192-05c4-3798-08044d1d5224.png)

11．以下のような通知が表示されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1432d466-997e-6055-8af6-0220703842b5.png)

12．以下のように 一覧に表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/858209f2-d85c-4fb9-abc9-46808882879a.png)

## 3. 証明書配布の確認

**証明機関 (CA) で確認**
証明機関では、以下のように 発行された クライアント証明書 が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/154df12b-60bd-2ccd-2ef3-29c0b498739d.png)

**クライアント PC で確認**
クライアント PC では、**Certlm.msc** コマンドを実行して確認できます。
個人ストア を開き、CA 名 の証明書を開きます。
詳細 タブ を開くと、**サブジェクト代替名** を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ea8f3484-a9a6-898c-2c3f-0d01a4340726.png)

Intune SCEP プロファイルで **サブジェクトの別名** を指定した箇所と見比べてみてください。
すると、以下の文字列が組み合わされて生成されていることが判ります。
・緑下線部 に PC 名 {{DeviceName}} で指定した箇所
・ピンク下線部 に ドメイン名

**Intune SCEP プロファイル で設定した値**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/937fbea6-17ee-c1d0-a67c-62e7c3de1905.png)

# Next Step
Intune で クライアント証明書 を配布できるようになったら、次は 証明書 を活用して 認証するサービスも Intune から配布してみましょう。

私の方では、WiFi プロファイル - PEAP (EAP-TLS) を Intune から配布する方法を公開しています。参考にしてみてください。

https://qiita.com/carol0226/items/3b17a2c02c5791727e93