【図解】Web認証(CaptivePortal/動的VLAN)の仕組みとシーケンス 〜認証スイッチ+Windows NPSの例〜

以下のシナリオで L2 認証スイッチでの Web 認証の動作例を示します。

  • Windows Server 2016 で AD DS(ActiveDirectory Domain Service)NPS (Network Policy Server) 、DHCP という Windows 標準のサービス(役割)3つを動作させる
  • L2 認証スイッチで CaptivePortal (Web認証) を動作させ、Web 画面で認証したユーザのセキュリティグループに応じて、認証後の VLAN を変更する(この仕組みを動的VLAN,もしくはダイナミックVLANと呼ぶ)

なお、NPS を使う場合、利用できるユーザ DB は Windows アカウントに限定されます。(外部の OpenLDAP 等は利用できません)
NPS サーバが AD ドメインのメンバーサーバであれば、AD DS のドメインアカウントが自動で利用されます。
NPS サーバが WORKGROUP であれば、NPS サーバに登録されたローカルアカウントが自動で利用されます。

  • PC が DHCP 要求を Broadcast し、L2 認証スイッチが IP アドレスやサブネット等の NW 情報を払い出します。DHCP リースタイムは 10 秒等の短めの値に設定します
  • PC がどこかのサイトに http アクセスを試みます。
  • L2 認証スイッチが http をジャックし、http ステータスコード 302 を返し、リダイレクト先を自身のスイッチの Web 認証ページの URL にセットします。

※ちなみに、http アクセスではなく https アクセスだった場合、L2 認証スイッチは通信が暗号化されているため、取り得るアクションとしては、① https 通信をブロックする(タイムアウトさせる)か、もしくは証明書エラーによる警告画面を表示させ、警告を無視して表示させようとするユーザに対して http 302 による リダイレクトで Web 認証ページを表示させるかのどちらかです。

  • PC は DNS での名前解決後、L2 スイッチの認証ページへアクセスし、ID / パスワードを入力し、Login ボタンを押します。
  • L2 認証スイッチは、http や https で送られてきた ID / パスワード情報を使って Radius サーバ (NPS) へ認証問い合わせをします。
  • NPS は AD DS の ID / パスワードと合致するかを確認し、合致する場合は NPS で設定されたルール(ポリシー)に書かれた通りに VLAN 情報を返します。NPS には『グループ ABC 部 DEF 課に所属するアカウントの場合は VLAN 101 を返す』と言うルール(ポリシー)が書かれています。

VLAN 情報の返し方は L2 認証スイッチによってまちまちであるが、以下のいずれかのパターンが多いです。

      • Tunnel-private-Group-Id (属性番号81) の属性値として VLAN-ID を含める。合わせて Tunnel-Medium-Type (属性番号65) に IEEE-802 (属性値6)、Tunnel-Type (属性番号64) に VLAN (属性値13)の情報を乗せる。
      • VSA (属性番号26) の属性値として VLAN-ID を含める
      • VSA (属性番号26) の属性値として VLAN-name を含める

※上図の例では VSA で VLAN-name を返しています

  • L2 認証スイッチは、PC の MAC アドレスを、Radius から受け取った VLAN と紐付けて認証テーブルに載せます。PC は認証前の VLAN の DHCP のリースタイムが切れたタイミングで 再度 DHCP で IP を取得しにいきます。その際、VLAN が切り替わっており、新しい VLAN での IP が払い出されます