NPSでEAP-TLS証明書認証+ADコンピューターグループ条件を満たす端末だけVLANを動的割り当てする方法(802.1X)

Azure AD(Entra ID)参加のみ(Intune管理)の端末を、オンプレミスCA(社内認証局)が発行した端末証明書で社内Wi‑Fiへ802.1X(EAP‑TLS / RADIUS / NPS)認証させていると、「証明書で正しく認証できた端末」かつ「ADの特定コンピューターグループに所属する端末」だけを別VLANへ振り分けたい、という要件が出てきます。本記事では、この“2条件を両方満たしたときだけVLANを割り当てる”設計と、NPSでの具体的な実装手順・落とし穴・検証のコツをまとめます。

目次

背景:802.1X(EAP‑TLS)+NPSで「端末単位のVLAN振り分け」をやりたい

社内Wi‑FiをWPA2/WPA3-Enterpriseで運用している場合、認証基盤としてRADIUS(Windows ServerのNPS)を採用し、端末は802.1Xで認証します。EAP方式としてEAP‑TLS(証明書認証)を使うと、パスワードではなく「証明書(秘密鍵)」の所持を根拠に認証できるため、フィッシング耐性やパスワード漏えい耐性が高いのがメリットです。

さらに、無線LANコントローラやAP(あるいはスイッチ)がRADIUSの動的VLAN(Dynamic VLAN Assignment)に対応していれば、NPSが返すRADIUS属性によって、同一SSIDでも端末属性に応じてVLANを切り替えられます。これにより、次のような“1つのSSIDでの分離”が現実的になります。

  • 社員管理端末 → 社内VLAN(社内システムへ到達可能)
  • BYOD/未管理端末 → 制限VLAN(インターネットのみ、社内は遮断)
  • 特定部門端末 → 専用VLAN(特定ネットワークへ)

今回の要件を「条件」と「結果」に分解する

相談の本質は「証明書認証とADコンピューターグループ所属の“AND条件”でVLANを決めたい」という点です。イメージとしては、次のようなマトリクスになります。

判定要素条件望ましい振り分け例狙い
証明書EAP‑TLSで認証成功(社内CAが発行した端末証明書)満たすことが前提“端末が正規の証明書を保持”を担保
ADグループ特定のADコンピューターグループに所属満たす端末だけをVLAN Aへ“運用上の許可端末”を管理者がコントロール

そして最終的な要件は、典型的には次のようになります。

EAP‑TLS認証ADコンピューターグループ所属割り当てるVLAN扱い
OKOKVLAN A社内(高権限)
OKNGVLAN B制限(低権限)
NG(判定前に失敗)接続拒否そもそも802.1X不許可

結論:NPSは「証明書認証+ADコンピューターグループ」を組み合わせたVLAN割り当てが可能

可能です。少なくともWindows Server 2012 R2のNPSで、「コンピューターのみの認証(ユーザー無し)」+「端末証明書(社内CA発行)でのEAP‑TLS」が成立し、さらにADのコンピューターグループ条件を組み合わせて、RADIUS属性でVLANを返す構成が動作します。

ポイントは、NPSに「1つのポリシー内で“証明書認証済み”を条件として明示」するというより、認証方式を“制約(Constraints)”でEAP‑TLSに固定し、条件(Conditions)でADグループを足す、という設計にすることです。さらに「両方成立ならA/片方だけならB」を作るには、NPSのポリシー評価順序(上から順に最初に一致したものが適用)を活用します。

なぜそれで“AND条件”を作れるのか:NPSの評価順序を使う

NPSのネットワークポリシーは、基本的に上から順に評価されます。そして、条件に一致した最初のポリシーが適用されます。この仕組みを使うと、次のように“実質的なAND条件”を実現できます。

ポリシー(優先度 高):
  条件 = EAP-TLS + ADコンピューターグループ
  結果 = VLAN A

ポリシー(優先度 低):
  条件 = EAP-TLS のみ
  結果 = VLAN B

つまり、上位ポリシーで「両方」を満たす端末だけを拾い、拾えなかった端末は下位ポリシー(証明書だけOK)に流す、という作り方です。ここで重要なのは、“VLAN B”は「認証に成功したが、ADグループ条件には一致しなかった端末」を収容するためのフォールバックとして機能する点です。

構成の前提とチェックリスト

まず押さえる前提(Wi‑Fi機器側)

NPSがVLANを返しても、受け側(AP/WLC/スイッチ)が動的VLANを解釈して適用できなければ意味がありません。導入前に次を確認してください。

  • SSIDが802.1X(WPA2/WPA3-Enterprise)で動作している
  • RADIUSの標準属性(Tunnel-*)でのVLAN割り当てに対応している(またはVendor-Specific Attributeが必要)
  • 同一SSIDでVLANを動的に切り替える設定(Dynamic VLAN / AAA override等)が有効化できる

証明書(EAP‑TLS)の要件

EAP‑TLSは「クライアント証明書」と「RADIUSサーバ(NPS)側のサーバ証明書」の両方が揃って初めて安定します。最低限の要件を表にまとめます。

対象証明書のポイントよくあるNG
NPS(サーバ証明書)サーバ認証(Server Authentication)のEKU 端末が信頼するルート/中間CAでチェーンが組める CN/SANが端末側の検証条件に一致(FQDN推奨)自己署名や未信頼CAで端末が拒否 名前不一致で端末が接続しない
端末(クライアント証明書)クライアント認証(Client Authentication)のEKU 秘密鍵が端末にあり、EAP-TLSで使用可能 可能なら鍵をエクスポート不可/TPM保護に寄せるEKU不足でNPSが拒否 秘密鍵なし(証明書だけ)で認証失敗

「Azure AD参加のみ端末」でADグループ判定を使う前提

ここがこの構成の最重要ポイントです。NPSで「Windows グループ(ADグループ)」を条件にする場合、NPSが参照できるAD上の“主体”(ユーザー/コンピューター)が必要になります。

オンプレADに参加していない(=Azure AD参加のみ)の端末は、通常はADにコンピューターアカウントが存在しません。そのため、そのままだと“ADコンピューターグループ所属”での判定が成立しません。相談例のように運用上成立させるには、次のどれかが必要になります。

  • ハイブリッド参加などで、端末に対応するADコンピューターアカウントが実在する
  • 運用上の割り切りとして、ADに“参照用(ダミー)のコンピューターオブジェクト”を用意し、証明書の名前情報と紐付けてグループ管理する

後者を採る場合は、「証明書の識別子」⇔「ADコンピューターオブジェクト」の整合性が崩れると、一気に認証/振り分けが不安定になります。後述の「落とし穴」で具体的に整理します。

ポリシー設計例:2段構えで「両方ならVLAN A、それ以外はVLAN B」

NPSのネットワークポリシー設計は、まず“要件をそのままポリシーに落とす”のがコツです。以下は分かりやすい最小構成です(必要に応じて条件を追加していきます)。

優先度ポリシー名(例)条件(Conditions)制約(Constraints)返す属性(Settings)
高WiFi-EAPTLS-Group-VLAN_ANAS Port Type = Wireless – IEEE 802.11 Windows グループ = (対象のADコンピューターグループ) (必要に応じて)SSID判定やAP判定EAPの種類 = Smart Card またはその他の証明書(EAP‑TLS) 暗号強度など必要な制約VLAN AのTunnel属性
低WiFi-EAPTLS-Fallback-VLAN_BNAS Port Type = Wireless – IEEE 802.11 (必要に応じて)SSID判定やAP判定EAPの種類 = EAP‑TLSVLAN BのTunnel属性

ここでの設計思想は明快です。

  • EAP‑TLSであることは「制約」で縛る(他方式を許可しない)
  • グループ所属は「条件」で判定する(合致したら上位ポリシーに一致)
  • 一致しない端末も「認証自体は通す」なら、下位ポリシーで受ける

NPSの具体的な設定手順(最小構成)

ここでは、Windows ServerのNPSを想定した“実装の流れ”を、なるべく迷わない順番で記載します。環境により画面名が多少異なることがありますが、考え方は共通です。

NPSをADに登録し、参照できる状態にする

  1. NPSサーバをドメインに参加させる(一般的には必須)
  2. NPSコンソールで 「Active Directoryにサーバを登録」 を実行する
  3. グループ条件で参照したいADグループ(コンピューターグループ)を用意する

この工程が抜けると、NPSがADグループ条件を評価できず、意図したポリシーに一致しない原因になります。

RADIUSクライアント(AP/WLC/スイッチ)を登録する

  1. NPSコンソールでRADIUSクライアントを追加
  2. IPアドレス/名前/共有シークレットを設定
  3. 必要に応じて「ベンダー名」を指定(基本はRADIUS標準でOK)

共有シークレット不一致は、後述の検証フェーズで「そもそもNPSに届いていない」ように見える典型原因です。最初にここを堅くします。

ネットワークポリシー(VLAN A)を作成する

まずは“両方成立”の上位ポリシーから作ります。

  1. 新規ネットワークポリシーを作成(例:WiFi-EAPTLS-Group-VLAN_A)
  2. 条件(Conditions)に以下を設定
    • NAS Port Type:Wireless – IEEE 802.11(Wi‑Fiに限定する場合)
    • Windows グループ:対象のADコンピューターグループ
    • (必要に応じて)Called-Station-ID(SSID判定)やNAS Identifier(拠点/AP群判定)
  3. 制約(Constraints)→ 認証方法で、「Microsoft: スマートカードまたはその他の証明書」(EAP‑TLS)を有効化
  4. 設定(Settings)→ RADIUS属性でVLAN属性を追加

VLAN割り当てに使うRADIUS属性(標準属性)

多くの機器は、以下の3つ(Tunnel属性)でVLANを受け取れます。NPSの「標準」属性として追加するのが分かりやすいです。

属性名一般的な値意味注意
Tunnel-TypeVLAN(数値なら13)トンネル種別(VLAN)機器によっては数値指定が必要
Tunnel-Medium-Type802(数値なら6)媒体(802系)無線でも指定するのが一般的
Tunnel-Pvt-Group-IDVLAN ID(例:10 / 20)割り当てるVLAN番号文字列扱いのため、機器要件に合わせる

加えて、環境によってはFilter-Idを使う設計(ACL名を返す等)もあります。まずは標準のTunnel属性で動作確認し、必要になったら段階的に拡張するのが安全です。

ネットワークポリシー(VLAN B:フォールバック)を作成する

次に“証明書だけOK”の下位ポリシーを作ります。

  1. 新規ネットワークポリシーを作成(例:WiFi-EAPTLS-Fallback-VLAN_B)
  2. 条件は、基本的にVLAN Aと同等(NAS Port TypeやSSID判定など)だが、Windows グループ条件は入れない
  3. 制約は同様にEAP‑TLSのみ許可
  4. 設定でVLAN BのTunnel属性を返す

ポリシー順序を必ず確認する

最後に、ネットワークポリシー一覧でVLAN A(グループ条件あり)が上、VLAN B(フォールバック)が下になるように順序を調整します。これが逆だと、グループ条件のポリシーに到達せず、常にVLAN Bが適用されます。

ADコンピューターグループを条件にする際の落とし穴

“設計としては合っているのに動かない”場合、原因の多くはここに集中します。

コンピューターグループの基本:入れるのは「コンピューターアカウント」

  • ADのグループはセキュリティグループを使う(配布グループは不可)
  • メンバーに入れるのはユーザーではなくコンピューター
  • 管理画面では「PC名」でも選べますが、内部的にはコンピューターアカウント(末尾に$が付く主体)として扱われます

「AAD参加のみ端末」+「ダミーのADコンピューターオブジェクト」で成立させる条件

相談例のように“参照用のADコンピューターオブジェクト”で運用する場合、少なくとも次の3点の整合性が必要です。

整合性の観点何と何を合わせるかズレた時の症状
端末識別子端末がEAPで提示するID(例:host/端末名)と、AD側で参照されるコンピューターオブジェクトグループ条件に一致せず、常にフォールバックへ落ちる
証明書の名前クライアント証明書のSubject/SAN(DNS名等)と、想定する端末名認証成功しても“別端末扱い”になり運用が破綻
運用の更新端末追加・廃止・再発行のたびに、ADオブジェクトとグループを更新新端末だけVLANが合わない/廃止端末が残る

この方式は、構成として成立させられる一方で、「ADが“端末台帳”の役割を持つ」ことになります。台帳運用が崩れると、意図しない端末がVLAN Aへ入る、または正規端末がVLAN Bへ落ちる、という形で事故が起きます。運用設計(登録フロー・棚卸し・失効/削除)が重要です。

グループ変更が反映されないように見えるとき

グループへ端末を追加した直後に反映されない場合は、次を疑います。

  • ドメインコントローラ間のレプリケーション遅延(特に複数拠点)
  • NPSが参照しているDCが想定と違う
  • 認証ログ上は「別の主体」で評価されている(ユーザー認証として見られている等)

まずはNPSのログで「誰として評価されたか」を見て、グループ判定が正しい主体に対して行われているかを確認します。

検証とトラブルシューティングの実務テクニック

最初は「認証成功」と「ポリシー一致」を分けて確認する

いきなり「VLANが想定と違う」を追うと沼にハマりやすいです。次の順番で切り分けると速いです。

  1. EAP‑TLSで認証が成功しているか(まず接続できるか)
  2. どのネットワークポリシーに一致したか(VLAN AなのかBなのか)
  3. 返したRADIUS属性をAP/WLCが解釈しているか(機器側の設定/対応)

NPSログで“どのポリシーが適用されたか”を見る

NPSは、許可/拒否の記録に加えて、適用したネットワークポリシー名が確認できます。運用では以下のどちらか(または両方)を有効化しておくと便利です。

  • イベントビューア(Network Policy and Access Servicesのログ)
  • NPSのアカウンティング(テキストログ:IAS形式)

特に“VLAN AのつもりがBになる”場合、ほぼ確実に「上位ポリシーに一致していない」ので、ログで一致判定を見れば原因の方向性が決まります。

よくある原因と対処

症状ありがちな原因対処の方向性
認証が通らない証明書チェーン/失効確認(CRL)が失敗、EKU不足、サーバ証明書不一致端末側のサーバ証明書検証条件、NPS側の信頼/失効到達性、証明書テンプレートを確認
常にフォールバック(VLAN B)になるADグループ条件に一致していない、ポリシー順序が逆、主体がユーザーとして評価されているポリシー順序を上位へ、ログで評価主体と一致ポリシー名を確認、グループメンバーを見直す
RADIUSはVLANを返しているのにVLANが変わらないAP/WLC側でDynamic VLAN/AAA overrideが無効、属性形式が機器要件と違う機器側の設定と、必要ならVSAの有無を確認。まず標準Tunnel属性を正しく返せているか確認
端末によって挙動が不安定証明書更新/再発行で識別子がズレた、ダミーADオブジェクト運用が追いついていない証明書の命名規則を固定し、AD台帳(オブジェクト/グループ)更新フローを整備

運用設計のコツ:セキュリティと保守性を落とさないために

“証明書さえあればOK”にしない工夫

EAP‑TLSは強力ですが、裏を返すと「証明書(秘密鍵)の管理」がすべてです。現場で事故が起きやすいのは、次のようなケースです。

  • 端末から秘密鍵がエクスポート可能で、別端末へ持ち出される
  • 失効確認ができない(CRLへ到達できず、失効済みでも通る運用になっている)
  • 証明書の棚卸しがなく、退職/廃棄端末の証明書が残り続ける

対策としては、鍵の保護(TPM/エクスポート不可)、失効確認の到達性確保、短めの有効期限+自動更新、そしてADグループによる“第2のゲート”(今回の主題)が効きます。

グループでの許可運用を「作業フロー」に落とす

「ADコンピューターグループに入っている端末だけVLAN A」という設計は、実は運用がシンプルです。重要なのは、属人的にしないことです。例えば次のように決めておくと、後で揉めません。

  • 端末追加:証明書配布 → ADオブジェクト確認/作成 → グループ追加 → 接続試験
  • 端末廃止:グループ削除 → 証明書失効(必要なら)→ 棚卸し反映
  • 例外対応:期限付きで別グループ(例:WiFi-Temp-Allow)に入れる

ポリシーが増える時の設計パターン

「部門ごとにVLANが違う」「拠点ごとにVLANが違う」など、要件が増えるとポリシーも増えます。その場合は、次のパターンが管理しやすいです。

  • 最上位:厳格(EAP‑TLS+グループ+SSID/拠点条件)→ VLAN(部門/拠点)
  • 中位:EAP‑TLSのみ(SSID/拠点条件)→ 制限VLAN
  • 最下位:それ以外は拒否(もしくは別SSIDへ誘導)

命名規則も重要です。ポリシー名に「SSID」「認証方式」「グループ」「VLAN」を入れると、ログ解析が段違いに楽になります(例:WiFi-SSID1-EAPTLS-GroupX-VLAN10)。

ユーザー認証へ切り替える話は“別問題”として切り分ける

802.1Xの現場では「端末認証(マシン認証)でつないだ後、ユーザーサインインに合わせてユーザー認証へ切り替えたい」「ユーザーが切り替わったらVLANも変えたい」という要望が出がちです。

ただし、このテーマは“再認証のタイミングと、端末/無線機器の挙動”が絡むため、単純にNPSポリシーを増やしただけでは期待通りに動かないケースがあります(NICの再接続や再認証イベントが必要になるなど)。本記事の主題は「端末のみ認証(証明書)+端末グループでの振り分け」なので、まずはここを安定させ、ユーザー単位の制御が必要になったら別設計(SSID分離、認証方式の再検討、機器側機能の活用など)として扱うのが安全です。

よくある質問

証明書認証が成功していれば、必ずVLAN Aにできますか?

できますが、推奨しません。証明書だけでVLAN Aにすると「証明書を持っている端末=社内端末」と同一視することになり、鍵管理が崩れた時の影響が大きくなります。証明書+ADグループの2段階にすると、運用で“許可端末”をコントロールできます。

ユーザーグループ条件で同じことはできますか?

可能です。NPSの条件はユーザーグループにも使えます。ただしユーザー認証に寄せるほど、端末起動時やサインイン前後の挙動(いつ誰として認証されるか)が複雑になります。まずは端末単位で安定させるのが近道です。

VLAN A/Bだけでなく、A/B/C…と増やせますか?

増やせます。やり方は同じで、最も厳しい条件を上に、緩い条件を下に並べます。例えば「Group-Admin → VLAN 10」「Group-Dev → VLAN 20」「それ以外 → VLAN 30」といった形です。

まとめ:実装の勘所は「EAP‑TLSを制約で固定」+「グループ条件を上位ポリシーに置く」

「NPSで証明書認証できていること」と「ADコンピューターグループ所属」を“両方満たしたときだけ”VLANを割り当てたい場合、NPSのネットワークポリシーを2段構え(上位=両方、下位=証明書のみ)にするのが最も分かりやすく、運用もしやすい方法です。

特に、Azure AD参加のみ端末でこの構成を成立させるには、AD側で参照可能なコンピューターオブジェクトをどう持つかが成否を分けます。ダミー運用を選ぶなら、証明書命名規則とAD台帳運用を固め、ログで「どのポリシーに一致したか」を追える状態にしておくと、長期運用でも破綻しにくくなります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次