Windows クライアント WiFi プロファイルの設定 - PEAP (MS-CHAPv2)

# はじめに
802.1x認証 - PEAP (MS-CHAPv2) の WiFi アクセスポイントに接続する際に必要な設定を Windows クライアント 側 で行う手順です。

サーバーや WiFi-AP 側 の設定については、以下の記事を参照してください。

https://qiita.com/carol0226/items/05d8ef17a6d25018cd4e

それから、WiFi プロファイルの設定 を行う前に、ルート証明書 のインポートなどの作業も必要となります。本記事の手順を行う前に、以下の記事も参照してください。

https://qiita.com/carol0226/items/2b69f235c34da88b0fd2

クライアント側で行う手順とは別に、Intune を使って クラウドから設定を配布する方法もあります。以下の記事で説明していますので、こちらも参考にしてください。

https://qiita.com/carol0226/items/99e1674ce6be6e24f53c

# WiFi プロファイル設定手順

0. 「コントロールパネル」－「ネットワークとインターネット」－「ネットワークと共有センター」を開きます。
　<br>
0. 「ネットワークと共有センター」の画面で「新しい接続またはネットワークのセットアップ」を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e5e240eb-eb47-9eab-c3ab-c93dd65f8e99.png)
　<br>
0. 「ワイヤレスネットワークに手動で接続します」を選んで「次へ」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/a9311bbc-5f43-c4ce-f747-1241ba3cdc4f.png)
　<br>
0. 以下の設定を入力して「次へ」を押します。
・ネットワーク名 ＝ [SSID]
・セキュリティの種類 ＝ "WPA2-エンタープライズ"
※WiFi AP 側 の構成によっては、WPA3-エンタープライズ などの候補になりますが、パーソナルではなく、エンタープライズ を選んでください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/12179a6a-174b-c6a1-4b8b-0e02554dfc18.png)
　<br>
0. 「接続の設定を変更します」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2c178f9d-e8e9-189a-9674-66c91da4a385.png)
　<br>
0. 「セキュリテイ」タブを選び、「ネットワークの認証方法の選択」で、「Microsoft: 保護されたEAP (PEAP)」を選択して「設定」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1bc31a82-722b-a876-3a8d-de3b84f29f75.png)
　<br>
0. 以下の画面で、①「信頼されたルート証明機関」では、NPS サーバー にインポートした サーバー証明書 と ペア になる ルート証明書 を選んで、②「セキュリティで保護されたパスワード (EAP-MS-CHAP v2)」を選択し、③「構成」を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6ffc42d6-34e3-77de-e1bc-b66550bd4cda.png)

:::note info
**③「構成」ボタンを押した後の画面について**
OS にサインインするアカウントが オンプレミスドメインユーザー のみである場合は、**「Windows のログオン名とパスワード（およびドメインがある場合はドメイン）を自動的に使う」** の機能が使えます。チェックを入れて「OK」を押してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1db8e706-1b94-42d2-128b-3cc75208456e.png)

このチェックを ON にすることで、OS にサインインした時のアカウントを WiFi 接続時の MS-CHAPv2 の認証にも使用されるため、認証のアクション無しで WiFi に接続されます。
公開情報では、以下で説明されています。
（**"UseWinLogonCredentials"** の項目が この設定に該当しています）
https://learn.microsoft.com/ja-jp/windows/win32/nativewifi/single-sign-on-profile-sample
:::

:::note warn
**Credential Guard** が有効な場合は、この機能が利用できないので、GPO で 無効化も実施します。
Windows 11 Enterprise 版では、既定で Credential Guard が **有効** になっています。
なお、Credential Guard を無効化することはセキュリティが低下する行為となるため、利便性とトレードオフになります。
**（Credential Guard の無効化）**
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/configure?tabs=gpo#disable--credential-guard-with-group-policy
**（Credential Guaed : Wi-Fi と VPN に関する考慮事項）**
https://learn.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/considerations-known-issues#wi-fi-and-vpn-considerations
:::

:::note alert
なお、この設定を ON にした場合は、オンプレミスドメイン の ドメインユーザー以外では WiFi に接続できなくなります。理由を調べてみたのですが OS にサインインした時の ユーザー名が そのまま NPS サーバーに引き継がれて認証されており、そこでエラーになると、認証窓が開かずに １発でエラーになっていました。
そのため、この機能が使えるのは **オンプレミスドメイン参加ユーザー** または **Hybrid Entra Join ユーザー** のいずれかです。
**WORKGROUP のローカルアカウント** か **Entra Join の Entra ユーザー** の場合は、"必ず" チェックオフ にしてください。

Entra ユーザーの場合は、以下のように AzureAD\user01 のような形になってしまい、"ドメインが無い" という扱いになって、エラーになってしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e011bd3b-cc5f-a0ce-4e34-5fd02afa4d91.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2618f72d-b87d-5dbc-af07-e54d10d87cd9.png)
"チェックオフ" であれば、WiFi 接続時 に 認証窓 が開くので ユーザーID と パスワード を入力すれば認証できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/44829887-34a0-f6a7-6bdb-23a48e714ec4.png)
:::

8．④ の「OK」を押すと、以下の画面に戻るので、「詳細設定」ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/45a50983-bd5c-1ad5-ce62-44dbc96632d3.png)

9．「認証モードを指定する」にチェックを入れて「ユーザー認証」を選択して「OK」を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d79800cf-bd14-06bd-5ba9-786b232880cc.png)

:::note info
**オンプレミスドメイン にサインインする環境でのおススメ**
さらに、以下の設定を行う事で、OS への ドメインログオン の前に WiFi に接続してからサインインが行われるようにする事ができます。そうする事で OS がキャッシュログオン ではなく、ネットワーク経由で ドメイン認証されてから ログオン が行われる形になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d571e7fa-529d-c3b1-d536-9c59e5d94f08.png)

さらに、**「Windows のログオン名とパスワード（およびドメインがある場合はドメイン）を自動的に使う」** の設定との組み合わせで、動作に違いがあります。

「Windows のログオン名とパスワード（およびドメインがある場合はドメイン）を自動的に使う」が **"オフ"** の場合
ドメイン認証と、WiFi 認証の情報を同時に入力する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/6cfeb7c9-6ddf-588c-8a0c-2ca1e8fe2537.png)

「Windows のログオン名とパスワード（およびドメインがある場合はドメイン）を自動的に使う」が **"オン"** の場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7b9d68cb-83e3-9f70-6512-82166ee9e89c.png)
:::

:::note warn
左下に "user01" と "他のユーザー" というアイコンが 2 個ずつ並んでいますが、**丸い方** は WiFi に **接続せず** にサインインします。**四角い方（ピンク枠）** の方が WiFi に **接続してから** サインインします。
:::

# コマンドでの確認方法

## netsh wlan show profile
保存されている WiFi プロファイル の 一覧 を取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d69ef140-ee33-15c5-7f5c-43ca865d4048.png)

## netsh wlan show profile name=[プロファイル名]
取得した一覧の中から、プロファイル名 を指定して、詳細な情報を表示できます。
~~~~
PS C:\Windows\System32> netsh wlan show profile name=QiitaWiFi

インターフェイス Wi-Fi のプロファイル QiitaWiFi:
=======================================================================

適用先: すべてのユーザー プロファイル

プロファイル情報
-------------------
    バージョン             : 1
    種類                   : ワイヤレス LAN
    名前                   : QiitaWiFi
    コントロール オプション        :
        接続モード    : 自動接続
        ネットワーク ブロードキャスト : このネットワークがブロードキャスト配信している場合に限り接続
        AutoSwitch         : 他のネットワークに切り替えません
        MAC ランダム化  : 無効

接続の設定
---------------------
    SSID の数        : 1
    SSID 名             : "QiitaWiFi"
    ネットワークの種類           : インフラストラクチャ
    無線の種類          : [ 任意の無線の種類 ]
    ベンダー拡張          : 存在しません

セキュリティの設定
-----------------
    認証                : WPA2-エンタープライズ
    暗号                : CCMP
    認証                : WPA2-エンタープライズ
    暗号                : GCMP
    セキュリティ キー      : なし
    802.1X                   : 有効
    EAP の種類               : Microsoft: 保護された EAP (PEAP)
    802.1X 認証の資格情報    : ユーザーの資格情報
    資格情報の構成           : いいえ
    ユーザー情報のキャッシュ : はい

コスト設定
-------------
    コスト                   : 制限なし
    混雑                   : いいえ
    データ制限間近         : いいえ
    データ制限超過         : いいえ
    ローミング             : いいえ
    コスト ソース          : 既定

PS C:\Windows\System32>
~~~~

## netsh wlan delete profile name=[プロファイル名]
取得した一覧の中から、プロファイル名 を指定して、削除できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/83cd813a-9125-0df0-8079-ecaa98c043dd.png)

:::note warn
（参考）
WiFi プロファイルは、一度 WiFi-AP に接続されると そのまま PC 内に保存されて、以後 同じ SSID に接続する際に転用されます。
接続しなおす テスト等 を行う場合は、毎回 WiFi プロファイル を 削除して作り直す方が無難です。
- netsh wlan show profile で、プロファイル を一覧表示
- netsh wlan delete profile = [プロファイル名] で、プロファイル を削除

※ GUI でも 接続中の WiFi 名 を、右クリックして "削除" できます。
:::