AAAとは
AAAは、ネットワーク機器やシステムへのアクセスを管理するための、3つの機能の頭文字をとった総称です。それぞれの役割は独立しており、正確に区別して理解する必要があります。

Authentication(認証):「あなたは誰か」
認証は、アクセスしようとしている利用者の身元を確認する機能です。ユーザー名・パスワードの入力、証明書、トークン等を使って、「その利用者が、本人が名乗るとおりの人物かどうか」を検証します。別記事「ローカルパスワードによるデバイスアクセス制御とパスワードポリシー」(5.3・5.4)で扱ったusername/enable secretによるログイン確認も、認証の一種です。
Authorization(認可):「何をしてよいか」
認可は、認証によって身元が確認された利用者に対して、何を許可するかを決定する機能です。例えば、「一般の運用担当者にはshowコマンドの実行のみを許可し、設定変更コマンドは管理者にのみ許可する」といった、権限(特権レベル)に応じたアクセス制御が該当します。認証に成功したからといって、無条件にすべての操作が許可されるわけではありません。
Accounting(アカウンティング):「何をしたか」
アカウンティングは、利用者が実際に何を行ったかを記録する機能です。ログイン・ログアウトの日時、実行したコマンド、セッションの継続時間などを記録し、監査(誰がいつ何をしたかの追跡)や、不正アクセスが発生した際の調査に利用されます。
AAAの実現方法:ローカルAAAと外部サーバーによるAAA
AAAのうち、認証と認可は大きく分けて2つの方法で実現できます。アカウンティングは、通常、外部AAAサーバーへ記録を送信するように設定します。
- ローカルAAA:ネットワーク機器自体に保存された、ローカルのユーザーデータベース(
usernameコマンドで作成したアカウント)を使って、主に認証を行う方式です。ローカルのユーザー属性を用いた認可も設定できます。小規模な環境や、外部サーバーに障害が発生した際の認証のバックアップとして使われます。 - サーバーベースのAAA:TACACS+やRADIUSといった、専用の外部AAAサーバーに認証情報等を集約し、複数のネットワーク機器から共通して参照する方式です。機器の台数が多い環境では、機器ごとにアカウントを個別管理するより、一元管理できるサーバーベースの方式が一般的です。
TACACS+とRADIUSの比較
サーバーベースのAAAを実現する代表的なプロトコルとして、TACACS+とRADIUSがあります。この2つは、しばしば混同されやすいため、違いを正確に理解しておく必要があります。

| 観点 | TACACS+ | RADIUS |
|---|---|---|
| トランスポート層プロトコル | TCP(ポート49) | UDP(認証:ポート1812、アカウンティング:ポート1813) |
| 標準化 | Ciscoが開発したプロトコル(仕様はRFC 8907で文書化) | オープンな標準規格(認証:RFC 2865、アカウンティング:RFC 2866) |
| 暗号化の範囲 | ヘッダーを除くパケット本体を暗号化 | パスワード部分のみを暗号化(それ以外は平文) |
| 認証と認可の扱い | 認証・認可・アカウンティングをそれぞれ独立して処理 | 認証と認可を一体的に処理 |
| コマンド単位の認可 | コマンドごとに許可/拒否を細かく制御できる | コマンド単位の制御には不向き |
| 主な用途 | ネットワーク機器の管理アクセス(ルータ・スイッチへのログイン) | ネットワークへのアクセス(802.1X認証、VPN接続、エンドユーザー認証等) |
TACACS+はヘッダーを除くパケット本体を暗号化するため、コマンドの内容やサーバーからの応答内容を秘匿でき、機器の管理アクセスという用途に適しています。一方RADIUSは、パスワード部分のみを暗号化し、認証と認可を一体的に扱う設計になっているため、802.1XやVPN等、多数のエンドユーザーを扱うネットワークアクセスの認証に広く使われています。
参考:サーバーベースAAAの基本的な設定コマンド
CCNA 200-301 v1.0の出題範囲5.8は「概念の比較」であり、実際の設定コマンドは対象外です。試験バージョンによって出題範囲は変更されるため、受験する試験の公式出題範囲も確認してください。TACACS+・RADIUSサーバーとの連携が実際にはどのようなコマンドで組み立てられるのか、全体の流れを参考として紹介します。
以下の設定例は、名前付きサーバー設定をサポートするCisco IOS/IOS XEを前提としています。利用するリリースやプラットフォームによっては、設定コマンドの構文が異なる場合があります。
Router(config)# aaa new-modelaaa new-modelは、Cisco IOSでAAAメソッドリストを設定・使用するための機能を有効化するコマンドです。
TACACS+サーバーとの連携
Router(config)# tacacs server TACACS-SV1
Router(config-server-tacacs)# address ipv4 192.168.1.100
Router(config-server-tacacs)# key CiscoTacacsKey123
Router(config)# aaa group server tacacs+ TACACS-GROUP
Router(config-sg-tacacs+)# server name TACACS-SV1
Router(config)# aaa authentication login default group TACACS-GROUP localRADIUSサーバーとの連携
Router(config)# radius server RADIUS-SV1
Router(config-radius-server)# address ipv4 192.168.1.101
Router(config-radius-server)# key CiscoRadiusKey123
Router(config)# aaa group server radius RADIUS-GROUP
Router(config-sg-radius)# server name RADIUS-SV1
Router(config)# aaa authentication login default group RADIUS-GROUP localいずれも、サーバー情報(アドレス・共有鍵)を定義し、サーバーグループにまとめ、最後にaaa authentication loginでログイン認証にそのグループを使うよう指定するという流れは共通です。aaa authentication login default group <グループ名> localの末尾にあるlocalは、外部サーバーに到達できない、または応答がなくグループの認証方式がエラーになった場合にのみ、フォールバック(バックアップ)としてローカルAAA(usernameコマンドで作成したアカウント)を使うことを意味します。外部サーバーが認証を明示的に拒否した場合には、localへはフォールバックしません。前述の「ローカルAAAは外部サーバー障害時のバックアップとしても使われる」という関係性がそのままコマンドに表れています。