ネットワーク ポリシー サーバーで利用されるサーバー証明書について
皆様、こんにちは。Windows プラットフォーム サポート担当の永谷です。
今回は ネットワーク ポリシー サーバー (以後 NPS と表記) で利用されるサーバー証明書の選択動作について紹介します。
- 対象の環境
NPS を利用して無線 LAN や有線 LAN 802.1x 認証を利用している環境
- 機能詳細について
802.1x 認証を利用する環境において、NPS では PEAP や EAP と呼ばれる認証方式を利用することが可能です。
通常、上述の PEAP と EAP のどちらの認証方式を利用する場合においてもサーバーがクライアントを
信頼できるかどうかを確認するのと同様に、クライアントがサーバーを信頼できるかどうかを判断する為、
サーバー証明書を利用する必要があります。
サーバー証明書につきましては、それぞれの "ネットワーク ポリシー毎に" バインドされており、
証明書のバインド方法は 2 種類(手動バインド、自動バインド)ございます。
バインド方法の違いによって、後述しますようにサーバー証明書の選択動作が異なりますため、
バインドの種類についてご説明させていただきます。
=======================
自動バインド
=======================
下記 “手動バインド” の手順を実施していない場合には、自動バインドとなります。
自動バインドの場合、NPS は OS 再起動後の初回認証時に、複数の利用可能な証明書の中から、
”有効期限の開始日が最も新しい" サーバー証明書を自動的に選択します。
なお、一度自動バインドされたサーバー証明書は、OS が起動している間は、新しいサーバー証明書が発行された場合であっても、
継続して利用され続けます。
また、サーバー証明書が削除された場合には、次の認証時に、再度、自動バインドを行います。
=======================
手動バインド
=======================
手動バインドの場合、NPS は OS 再起動後の初回認証時に、複数の利用可能な証明書の中から、
同一の証明書を利用し続ける動作となります。
また、手動バインドされたサーバー証明書が削除された場合には、次の認証時に、自動バインドを行います。
すなわち、”有効期限の開始日が新しい” 別のサーバー証明書が混在していたとしても、
下記手順で手動バインドした証明書が利用され続けます。
** 手動バインド手順
-------------------------
1. NPS サーバーに、管理者ユーザーでログオンします。
2. [スタート] - [管理ツール] - [ネットワーク ポリシー サーバー] をクリックします。
3. [NPS (ローカル)] - [ポリシー] - [ネットワーク ポリシー] にて、[RADIUS] ポリシーを右クリックし、[プロパティ] をクリックします。
4. 無線 LAN 認証でご利用のネットワーク ポリシーについて、[制約] タブをクリックし、[認証方法] をクリックします。
5. [ご利用頂いている認証の種類] を選択し、[編集] ボタンをクリックします。
6. [証明書の発行先] にて、使用する RADIUS サーバー証明書 (表示された有効期限を基に判断してください) を選択し、
"[OK]" ボタンをクリックします。
(当該動作が手動にて利用する証明書を明示的に指定する設定となります。当設定画面を開き、内容を確認し、
[OK] ではなく [キャンセル] を押下した場合、未設定の状態のままですのでご注意ください。)
- 手動バインドしているかどうか確認できるのか
NPS サーバーの GUI の管理画面では、個々のポリシーに対して、NPS サーバー証明書が手動バインドの設定がなされているか
どうかの判断ができません。
そのため、NPS 構成情報をエクスポートし、バインドされた NPS サーバー証明書の "拇印" が含まれているかどうかを確認します。
以下に、具体的な確認手順をご案内します。
** NPS サーバー証明書のバインド確認手順
-------------------------
1. NPS サーバーに、管理者ユーザーでログオンします。
2. [ネットワーク ポリシー サーバー] の管理画面を開きます。
3. [NPS (ローカル)] を右クリックし、[構成のエクスポート] をクリックします。
4. [すべての共有シークレットをエクスポートします] のチェックを ON にして、[OK] をクリックします。
5. 任意のファイル名で、ファイルを保存します。
6. 保存したファイルをメモ帳等のテキスト エディターで開き、
該当のポリシーの <msEAPConfiguration></msEAPConfiguration> タグを確認します。
============================
<RadiusProfiles name="RadiusProfiles">
…
<<ポリシー名> name="<ポリシー名>">
<Properties>
…
<msEAPConfiguration xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.hex">19000000000000000000000000000000380000000200000038000000010000001400000057b85123adac49acc10ed5b420801b591e2563560100000001000000100000001a00000000000000</msEAPConfiguration>
…
</Properties>
</<ポリシー名>></Children>
…
</RadiusProfiles>
============================
上記例では、データの内容に、57b85123adac49acc10ed5b420801b591e256356 という文字列が含まれており、
これが手動バインドした証明書の拇印に該当します。
手動バインドされていない場合には、NPS 構成情報に拇印は表示されません。また、証明書の拇印は、
証明書をダブルクリックし、[詳細] タブの [拇印] の項目から確認することができます。
- 終わりに
証明書の自動登録機能を利用している場合や複数の役割を同一のサーバーに混在されており、
複数のコンピューター証明書を所持するような環境下におかれましては、
サーバー証明書が自動的にバインドされる動作は好ましくない状況も想定されます。
そのような場合においては本 blog 記事の手順を参考に全てのネットワーク ポリシーにて "手動バインド" の設定をご検討ください。
特記事項
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。