【図解】RADIUSプロトコルがよくわかる!認証・認可・アカウンティングの基本

読む前にパッと耳で!この記事のポイント、サクッと音声でお届け

ポッドキャスト音声

このポッドキャスト音声は、本記事をもとに、AIツール(NotebookLM)を用いて自動生成したものです。発音や言い回しに不自然な点や、内容に誤りが含まれる可能性があります。あくまで「理解の補助」としてご活用いただけますと幸いです。


 通常、制限されたネットワークにアクセスする前には、「本当にこの人がアクセスして良いのか?」を確認したり、「繋がったとして、どこまで見て良いのか?」を決めたり、後から「誰がいつからいつまで繋がっていたか?」を確認できるように記録したりする仕組みが必要になります。これが AAA と呼ばれる考え方です。

スポンサーリンク

AAAの意味

 AAAとは、Authentication(認証)Authorization(認可)Accounting(アカウンティング)の頭文字をとった略語です。

  • Authentication(認証 – あなたは誰ですか?):ネットワークやシステムに入れる前に、許可された人かどうかを確認するステップです。例えば、IDとパスワードを入力して、本人であることを証明するようなものです。
  • Authorization(認可 – あなたは何ができますか?):無事に「あなたです」と確認された後で、「では、あなたはこのシステムで何ができて、何ができないか」を決めるステップです1。これはアクセスできる範囲や機能の制限にあたります。
  • Accounting(アカウンティング – 何をしましたか?):ユーザーがネットワークに繋がっていた時間や、行った操作などを記録しておくステップです 。後で何か問題があった時などに、誰が何をしたかを確認できます 。
スポンサーリンク

RADIUSプロトコル:ネットワークの「受付」役

このAAAの考え方を実現するために、ネットワークの世界でとてもよく使われている技術に RADIUS (Remote Authentication Dial-In User Service)というプロトコルがあります。

RADIUSは、主にネットワークにアクセスする際の認証に使われるAAAプロトコルです 。RADIUSは、「サーバ」と「クライアント」という役割分担で動きます。

RADIUSの登場人物と基本的な流れ

RADIUSには、大きく分けて3つの登場人物がいます。

  • ユーザー: ネットワークに接続したい人やデバイスです。
  • RADIUSクライアント: ユーザーが最初に接続するネットワーク機器です。例えば、無線LANのアクセスポイントや、VPN接続を受け付けるルーターなどがこれにあたります 。この機器が、ユーザーの「受付」のような役割をします。
  • RADIUSサーバー: ネットワーク全体で「このユーザーは信用できるか」「どこまでアクセスを許可するか」を一元管理している認証専門のサーバーです。

基本的な流れはこうです

ユーザーが接続を試みる: ネットワークに接続したいユーザーが、自分の情報(ユーザー名とパスワードなど、これを「資格情報」と呼びます)をRADIUSクライアントに渡します。

クライアントがサーバーに問い合わせる: RADIUSクライアントは、ユーザーから受け取った資格情報を、RADIUSプロトコルという決まった形式にして、RADIUSサーバーに送ります。

サーバーが認証・認可する: RADIUSサーバーは、受け取った資格情報をもとに、「このユーザーは本物か?」「このユーザーには何を許可する?」を判断します。


サーバーがクライアントに結果を伝える: 判断の結果(許可するか、しないか)を、RADIUSプロトコルでRADIUSクライアントに返します。

クライアントがユーザーに伝える: RADIUSクライアントは、サーバーからの結果を受けて、ユーザーのネットワークアクセスを許可したり、拒否したりします。

ユーザーとRADIUSクライアントの間はどう通信するの?

ここで少し補足ですが、先ほどの流れで「ユーザーが資格情報をRADIUSクライアントに渡す」という部分では、実はRADIUSプロトコルは使いません。なぜかというと、ネットワークに繋ぐ前の段階なので、ユーザーはまだIPアドレスを持っていないこともあります。そのため、IPアドレスを使わない、ネットワークのより土台に近い層(レイヤ2と呼ばれます)で動き、ユーザーの資格情報を渡せる別の方法が必要になります。

例えば、無線LANでよく使われるIEEE802.1Xという仕組みでは、EAPという別のプロトコルを使って、ユーザーはRADIUSクライアント(この場合、無線アクセスポイント)に資格情報を渡します 。

スポンサーリンク

RADIUSの具体的な通信内容

RADIUSクライアントとRADIUSサーバーの間では、具体的にどのような情報がやり取りされるのでしょうか 。

主に「認証・認可」と「アカウンティング」の2種類の通信があります。これらの通信には、UDPというプロトコルが使われ、それぞれ決まったポート番号(認証・認可は1812番、アカウンティングは1813番)を使います。

認証と認可の通信

これは、ユーザーがネットワークにアクセスしようとした時に行われる通信です。

ACCESS-REQUEST: ユーザーが提供した資格情報(ユーザー名やパスワードなど)を、RADIUSクライアントがRADIUSサーバーへ送るメッセージです。

ACCESS-ACCEPT: RADIUSサーバーが資格情報を確認して、「このユーザーはOKです!」と判断した場合に、クライアントへ送るメッセージです。このメッセージには、属性(アトリビュート)と呼ばれる追加情報を含めることができます。例えば、「このユーザーをどのネットワークグループ(VLAN番号など)に所属させるべきか」といった指示を含めることで、ユーザーに許可されること(認可)をクライアントに伝えることができます。

ACCESS-REJECT: RADIUSサーバーが認証に失敗した場合(IDやパスワードが間違っているなど)に、クライアントへ送るメッセージです。これを受け取ったクライアントは、ユーザーのアクセスを拒否します

アカウンティング

これは、ユーザーがネットワークに接続している間の利用状況を記録するための通信です。

ACCOUNTING-REQUEST: RADIUSクライアントが、ユーザーの利用状況(いつ接続を開始したか、いつ切断したかなど)をRADIUSサーバーに報告するために送るメッセージです 。
ACCOUNTING-RESPONSE: RADIUSサーバーが報告を受け取ったことを知らせる返事のメッセージです

これらのやり取りによって、例えば「Aさんは〇月〇日〇時〇分から〇時〇分までネットワークに繋がっていました」といった記録を残すことができます。

コメント