以下のシナリオでL2認証スイッチでのWeb認証の動作例を示します。
- Windows Server 2012 で AD DS(ActiveDirectory Domain Service)、NPS(Network Policy Server) 、DHCP という Windows標準のサービス(役割)3つを動作させる
- L2認証スイッチでCaptivePortal(Web認証)を動作させ、Web画面で認証したユーザのセキュリティグループに応じて、認証後の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通信をブロックする(タイムアウトさせる)か、もしくは②証明書エラーによる警告画面を表示させ、警告を無視して表示させようとするユーザに対してhttp302による リダイレクトでWeb認証ページを表示させるかのどちらかです。
- PCはDNSでの名前解決後、L2スイッチの認証ページへアクセスし、IDパスワードを入力し、Loginボタンを押します。
- L2認証スイッチは、httpやhttpsで送られてきたIDパスワード情報を使ってRadiusサーバ(NPS)へ認証問い合わせをします。
- NPSはAD DSのIDパスワードと合致するかを確認し、合致する場合はNPSで設定されたルール(ポリシー)に書かれた通りにVLAN情報を返します。NPSには『グループABC部DEF課に所属するアカウントの場合はVLAN101を返す』と言うルール(ポリシー)が書かれています。
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が払い出されます。