例えば Windows AD, CA, Radius サーバ。オンプレにはなくなったほうが幸せになれるものがたくさんあります。それらをマネージドサービスの力ですべて消し去ります。
こちらの記事(How to configure Cloud PKI certificate-based WiFi with Intune – Modern IT – Cloud – Workplace (oliverkieselbach.com))をみてインスパイアされたので CloudPKI と Intune, Mist Access Assurance を使って証明書の発行から無線の証明書認証までをフルクラウドで実現するのを試してみます。
全体概要
用意するもの
- Microsoft Intune Suite まはた Intune プラン + CloudPKI
- Juniper Mist AP または EX スイッチ
- Juniper Mist Access Assurance ライセンス
- Intune 登録済みデバイス
ステップが多いので先にやることのまとめ。
- Microsoft Cloud PKI
- ルート CA の作成
- Issuer CA の作成
- Intune
- Cloud PKI ルート証明書の配布
- Cloud PKI Issuer 証明書の配布
- デバイス証明書 (SCEP) の配布
- Mist ルート証明書の配布
- Mist
- Cloud PKI ルート証明書の登録
- AP、スイッチの Radius 設定
- 認証ポリシー作成
Microsoft Cloud PKI
Microsoft Cloud PKI は 2024年2月にリリースされた PKI 管理機能です。CA の作成、証明書の発行や管理を行うことが可能です。ライセンスは Intune にアドオンで購入するか、Intune Suite に含まれます。(Microsoft Intune のプランと価格)
Cloud PKI の CA 作成については玉井さんのブログ(ついに登場 Cloud PKI (sccm.jp)、Cloud PKI から証明書を発行してみよう (sccm.jp))にまとまっています。
ルート CA の作成
CA の種類に「ルート CA」、期間を指定します。この後作成する Issuer CA(発行元 CA)の有効期間はこのルート CA の有効期間より短くしか設定できないため、長めにしておきます。
拡張キーの使用法は今回は無線のクライアント認証に使いたいので「Client auth」を選択します。Radiusサーバーの証明書を発行するケースも考えて「Server auth」も入れておきます。このルート CA 配下の CA も含めて後から追加できないため、使いそうなものは入れておくとよいでしょう。
証明書の属性はコモンネーム (CN) だけで問題ないですが、組織と国も入れておきました。
キーサイズとアルゴリズムの選択では「RSA4096 および SHA-512」が一番強力ですが、あんまり強すぎるのもどうかと思ったので、Microsoft も使ってる Digi Cert の証明書に合わせて「RSA-3072およびSHA-384」にしました。
スコープタグはそのまま次へ。
確認画面になるので作成を押すと数分で作成されます。
作成後完了後、ルート証明書をダウンロードしておきます。
続いて証明書発行を行う Issuer CA (発行元 CA) の作成を行います。手順はルート CA とほぼ同じです。
CA の種類に「発行元 CA」を選択、ルート CA ソースに「Intune」、ルート CA に先ほど作成したルート CA が出てくるので選択します。
有効期間、拡張キーの使用方法を指定します。
属性値を入力します。暗号化はルート CA と同じものでグレーアウトされています。
スコープタグをそのまま次へ、確認画面で作成を押せば Issuer CA の作成は完了です。
作成後、一覧から詳細を表示するとダウンロードボタンがあるので、Issuer 証明書をダウンロードしておきます。
また、Issuer 証明書に記載のある SCEP URI をメモしておきます。
Intune での証明書配布
Intune で端末に配布する証明書は次の4点です。
- 発行した CloudPKI のルート証明書
- 発行した CloudPKI の Issuer 証明書
- デバイス証明書 (SCEP)
- Mist のサーバー証明書を検証するための Mist ルート証明書
デバイス > 構成 > ポリシーから配布用のポリシーを作成します。
まず Cloud PKI ルート証明書の配布から。
プラットフォームは Windows 10 以降、テンプレートで「信頼済み証明書」を選択します。
先ほどダウンロードしたルート証明書をアップロードします。今回はマシン認証で使うので保存先ストアは「コンピューター証明書ストア – ルート」としておきます。
ポリシーを適用するユーザーを指定します。
OS のバージョンなどで適用先を細かく指定したい場合ルールを指定します。
内容を確認し、作成をクリックします。
続いて Issuer CA の証明書を同様に配布します。
デバイス証明書の配布
次に端末の証明書を作成して配布します。テンプレートで SCEP 証明書を選択します。
証明書の種類はデバイスを指定します。ユーザー証明書も発行できます。
CNはデフォルトでは Entra の Device ID ですが、{{SerialNumber}}や{{DeviceName}}も使用可能です。(Microsoft Intune で SCEP 証明書プロファイルを使用する | Microsoft Learn)
証明書の有効期間などを指定します。ルート証明書は先ほど作成したルート証明書を選択します。
キーサイズは引用元の記事によるとハードウェア TPM がサポートしていない場合があるため 2048 ビットが良いらしいです。
拡張キーの使用法では定義済みの値からクライアント認証を選択。SCEP サーバーの URL には Issuer CA の証明書をダウンロードしたページでメモした値を入力します。
割り当てを指定し、内容を確認して作成を押します。
ついでに Radius 認証の際に Mist のサーバー証明書を検証できるようにするため、Mist のルート証明書を端末に配布します。
Mist の証明書は Access Assurance ライセンスを適用するとメニューに表示される Organization > Certificates から
View Mist Certificate をクリックするとダウンロードできます。ファイルは mist-ca.crt です。
発行者や CN は乱数(UUID?)なのでぱっと見わからないです。O が Mist になっているのでそちらで確認できます。
ダウンロードした証明書をルート CA と同じように信頼済み証明書ストアに配布するポリシーを作成します。
Mist へのルート CA 証明書登録
Mist Access Assurance が端末から提示されたデバイス証明書を検証するため、Mist に Intune のルート証明書を登録します。
Cloud PKI からダウンロードしたルート証明書は DER 形式ですが、Base64 でないと登録できないため Windows で変換します。
ファイルにコピーから Base64 encoded X.509 を指定して保存します。
Add Certificate Authority からテキストで張り付けて保存します。
Mist の Radius 設定
AP で Radius 認証の設定を行います。
SSID の設定で WPA3 エンタープライズ(802.1X) を指定します。
認証サーバの項目が出てくるので、Mist Auth を選択します。
VLAN を認証に合わせて動的に割り当てる場合は、VLAN のセクションでダイナミックを選択し、割り当てる VLAN ID を記載します。
Mist AP の設定は以上です。
次に認証ポリシーを設定します。Mist の認証ポリシーはラベルを作成し、ラベルの属性に合わせて VLAN やロールを割り当てることが可能です。あらかじめ VLAN に合わせたラベルを作成しておきます。
今回は証明書認証なので EAP-TLS, Wireless で接続されたものを VLAN Work に接続する設定です。
また、Access Assurance の Advanced ライセンスの場合、Intune の準拠・非準拠に合わせて制御が可能です。下の例では No.2 のポリシーが Intune が準拠で EAP-TLS, Wireless で接続した場合 Work VLAN へ、No.3 が Intune 非準拠で EAP-TLS、Wireless で接続した場合は Guest VLAN に割り当てるポリシーです。
そのほかにもラベルでは証明書の属性や、Entra ID の ディレクトリ属性で振り分けることも可能です。
Mist 側の設定は以上です。
動作確認
Intune で Wi-Fi の接続に証明書を指定する設定を配布できますが、先に手動で試してみます。
Intune からポリシーが成功しているのを確認します。また、端末の証明書ストアから証明書を確認しておきます。
ルート証明書、Issuer 証明書が信頼できるルート証明機関にあることを確認します。
コンピューター証明書の場合はローカルコンピューターの個人フォルダにあります。
802.1X 認証の SSID に単に接続するだけでは ユーザー名、パスワードが聞かれるだけなので、証明書を使用する設定が必要です。ネットワークと共有設定などから認証方式を指定します。
EAP-TLS の認証では「Microsoft:スマートカードまたはその他の証明書」を指定します。
認証方法を選択するで、「スマートカードまたはその他の証明書(EAP-TLS)」を指定します。
詳細設定で「コンピューターの認証」を選択します。
SSID を選択して接続できれば OK です。
ついでに Mist 側も確認しておきます。
クライアントのログでサーバー証明書の認証、クライアント証明書の認証、MDM の準拠状態の確認、アクセス許可が行われたことが確認できます。
IDP グループの検索に失敗しているのは、今回ユーザー証明書ではなく、コンピューター証明書でユーザーを割り当ててない証明書を使っているからだと思われます。
ちなみに端末の表示名はユーザー認証の場合はメールアドレス、デバイス認証の場合はデバイス証明書名になるようです。
有効化に成功という日本語が変なのはそのうち治るのかな。
Intune での無線接続設定の配布
手動だと面倒なので、Intune で配布する方法を試しておきます。
ポリシーの作成から、テンプレートで Wi-Fi を選択します。
Enterprise を選択し、SSID と接続名(表示名)を指定します。認証モードは今回はコンピューター証明書を使うのでマシンを指定します。
接続名はこのように表示されます。
EAP の種類で EAP-TLS, クライアント認証で SCEP 証明書を指定します。
証明書サーバー名は「auth.mist.com」サーバー検証に使用するルート証明書に Mist の証明書を指定します。クライアント認証に使用するクライアント証明書は上記で発行したものを選択します。
以上で設定は完了です。
Intune の Wi-Fi Profile は上記のルート証明書、クライアント証明書が配布されていないと pending となりデバイスに適用されないので、割り当てるグループなどに注意が必要です。
長々とお読みいただきありがとうございました。
コメント