SECTION 1
Historical Context & Motivation
Before the emergence of formalized access-control frameworks, early multi-user systems like UNIX time-sharing hosts relied on simple password files and rudimentary privilege bits to separate users from one another. As networks expanded from isolated mainframes to interconnected enterprise environments during the 1980s and 1990s, the need for a unified model of identity verification, permission enforcement, and activity tracking became impossible to ignore. Early dial-up Internet service providers faced mounting losses from unauthorized usage, while enterprises discovered that a compromised password could cascade into a full-network breach without any audit trail to trace the intrusion.
The AAA framework — standing for Authentication, Authorization, and Accounting — crystallized from this operational necessity. It provided a conceptual and architectural scaffold that separated three logically distinct but deeply interdependent concerns into cleanly defined services. Cisco Systems, Livingston Enterprises, and the IETF played pivotal roles in standardizing protocols that embodied this model, transforming ad-hoc security checks into a principled, auditable, and scalable architecture.
1970s • UNIX Password Model
1991 • TACACS Introduced
1997 • RADIUS Standardized (RFC 2058/2059)
2003 • Diameter Protocol (RFC 3588)
2010s–Present • Zero Trust & Identity-Centric AAA
The central question that the AAA framework addresses remains as relevant today as it was in the era of dial-up modems: How can a system reliably determine who is requesting access, decide what that entity is allowed to do, and maintain a tamper-evident record of everything that occurred? Understanding the answer requires examining each pillar of the triad in turn.
SECTION 2
Core Principles & Definitions
The AAA framework decomposes secure access management into three sequentially dependent functions. Each function answers a distinct question, yet all three must operate in concert to provide a security posture that is both usable and auditable. A failure in any single pillar can undermine the guarantees provided by the other two: authentication without authorization leads to unconstrained access; authorization without accounting leaves no forensic trail; and accounting without proper authentication renders audit logs unreliable because subject identity cannot be trusted.
Authentication (AuthN)
Authorization (AuthZ)
Accounting (Acct)
Two additional concepts underpin the AAA model. Identification — the act of claiming an identity (e.g., entering a username) — is sometimes listed as a precursor step, making the model 'IAAA.' Meanwhile, non-repudiation is the property that emerges when strong authentication is coupled with comprehensive accounting: a user cannot credibly deny having performed a recorded action. Together, these supplementary concepts reinforce the integrity of the triad.
KEY TAKEAWAY
SECTION 3
Visual Explanation — The AAA Flow
The following diagram illustrates the canonical AAA transaction flow. A client (supplicant) initiates an access request to a Network Access Server (NAS), which acts as a policy enforcement point. The NAS forwards credential data to a centralized AAA Server (such as a RADIUS or TACACS+ server). The server performs authentication against an identity store, returns authorization attributes (e.g., VLAN assignment, ACLs), and later receives accounting records that document the session lifecycle.
Notice that the NAS functions as both a policy enforcement point (PEP) and a relay. It does not make authentication or authorization decisions autonomously in a centralized AAA deployment; instead, it delegates those decisions to the AAA server, which serves as the policy decision point (PDP). This separation of concerns is critical for scalability — a single RADIUS server can support thousands of NAS devices — and for security, because credentials never persist on the edge devices themselves.
SECTION 4
How It Works — Protocols and Mechanisms
The AAA model is protocol-agnostic at the conceptual level, but two dominant protocols implement it in practice: RADIUS and TACACS+. Each takes a different architectural approach to separating the three A's, and understanding their mechanics reveals the design space of AAA implementations.
RADIUS — Combined AuthN/AuthZ, Separate Accounting
RADIUS, defined in RFC 2865/2866, operates over UDP (ports 1812 for authentication/authorization and 1813 for accounting). It combines authentication and authorization into a single Access-Request/Access-Accept exchange: the Access-Accept packet carries both the authentication verdict and the authorization attributes (such as VLAN IDs, ACL names, or session timeouts) as attribute-value pairs (AVPs). Accounting is handled by separate Accounting-Request packets with status types of Start, Interim-Update, and Stop. RADIUS encrypts only the user's password field within the Access-Request packet; the remainder of the packet (including authorization attributes) is transmitted in cleartext, a well-known limitation that modern deployments mitigate by wrapping RADIUS inside IPsec or TLS (RadSec, RFC 6614).
TACACS+ — Fully Separated AAA
TACACS+, a Cisco-proprietary protocol operating over TCP port 49, treats authentication, authorization, and accounting as three entirely independent exchanges. This granular separation allows an administrator to authenticate users against an LDAP directory while enforcing command-level authorization via a separate policy engine and shipping accounting records to a dedicated syslog collector. The entire TACACS+ packet body is encrypted (using a shared secret and MD5-based pseudo-pad), providing confidentiality for all three transaction types — a significant advantage over classic RADIUS in environments where authorization attributes themselves are sensitive.
Authentication Factor Categories
Regardless of the transport protocol, authentication relies on presenting one or more factors from distinct categories. When two or more factors from different categories are required, the system employs multi-factor authentication (MFA), dramatically reducing the probability of credential compromise because an attacker must independently defeat each factor.
| Factor Category | Description | Examples |
|---|---|---|
| Knowledge (Something you know) | A secret memorized by the user. | Password, PIN, security question |
| Possession (Something you have) | A physical or digital artifact uniquely held by the user. | Smartcard, TOTP app, FIDO2 security key |
| Inherence (Something you are) | A biometric characteristic intrinsic to the user. | Fingerprint, retina scan, voice pattern |
| Location (Somewhere you are) | Geolocation or network-based constraint. | GPS coordinates, source IP range |
| Behavior (Something you do) | Patterns of interaction unique to the user. | Keystroke dynamics, gait analysis |
Authentication factor taxonomy — the first three are classical; the last two are emerging.
MFA vs. Multi-Step Authentication
SECTION 5
Authorization Models & Accounting Detail
Once a user is authenticated, the authorization engine must determine the precise set of permissions to grant. Several formal models exist, each embodying different trade-offs between expressiveness, administrative overhead, and scalability. Understanding these models is essential because they determine how authorization policies are encoded, evaluated, and maintained across an organization.
Accounting Data Categories
The accounting component of AAA captures a range of session metadata. In RADIUS, these are conveyed through Accounting-Request packets with an Acct-Status-Type attribute that indicates Start (session begins), Interim-Update (periodic usage data), or Stop (session ends). The server typically stores these records in a relational database or forwards them to a SIEM for correlation. Key recorded attributes include session duration, octets transferred (input and output), the authenticated username, the NAS IP and port, and any vendor-specific attributes that capture command-level detail.
- Session accounting: Start/stop timestamps, session ID, termination cause.
- Usage accounting: Bytes in/out, packets in/out — essential for ISP billing.
- Command accounting: Every CLI command executed on a managed device (TACACS+ specialty).
- Event accounting: Failed login attempts, privilege escalation events, policy violations.
SECTION 6
Worked Example — RADIUS AAA for Wi-Fi Access
Consider a university deploying WPA2-Enterprise Wi-Fi using 802.1X with a RADIUS back-end. A student, Alice, opens her laptop and attempts to connect to the 'UnivSecure' SSID. The following worked example traces the complete AAA lifecycle from association to session teardown.
AAA Lifecycle: Alice Connects to University Wi-Fi
- 1
Step 1 — Identification
Alice's supplicant (e.g., wpa_supplicant on Linux) sends an EAPOL-Start frame to the wireless access point (AP). The AP responds with an EAP-Request/Identity frame, and Alice's device replies with her username:alice@univ.edu. At this point, Alice has identified herself but has not yet been authenticated.Identity claimed:alice@univ.edu - 2
Step 2 — Authentication
The AP (acting as the NAS) encapsulates Alice's EAP identity in a RADIUS Access-Request packet and forwards it to the university's FreeRADIUS server. The server initiates an EAP-TLS handshake: Alice's device presents a client certificate, and the RADIUS server validates it against the university CA. The server also presents its own certificate, which Alice's supplicant verifies. Because certificate-based authentication is a possession factor (the private key stored on her device), this constitutes single-factor authentication; the university could add a password prompt for MFA.EAP-TLS mutual authentication succeeds. RADIUS server issuesAccess-Accept. - 3
Step 3 — Authorization
Bundled within the Access-Accept packet, the RADIUS server includes authorization AVPs:Tunnel-Private-Group-Id = 100(assigning Alice to VLAN 100, the student network),Session-Timeout = 28800(8-hour session limit), andFilter-Id = "student-acl"(applying the student ACL that blocks access to administrative subnets). The AP enforces these attributes immediately.Alice is placed on VLAN 100 with an 8-hour timeout and a restrictive ACL. - 4
Step 4 — Accounting Start
As soon as Alice's session is established, the AP sends a RADIUS Accounting-Request withAcct-Status-Type = Start. This packet records the session ID, Alice's username, the AP's NAS-IP-Address, the NAS-Port (the radio interface), and the start timestamp. The RADIUS server logs this record to its PostgreSQL database and acknowledges with an Accounting-Response.Accounting record created: session start at2025-01-15T09:00:00Z. - 5
Step 5 — Accounting Stop & Session Teardown
After 3 hours, Alice closes her laptop. The AP detects the disassociation and sends a RADIUS Accounting-Request withAcct-Status-Type = Stop, includingAcct-Session-Time = 10800(seconds),Acct-Input-Octets = 524288000(500 MB downloaded), andAcct-Terminate-Cause = User-Request. Security analysts can later query this accounting data for capacity planning, anomaly detection, or compliance audits.Complete audit trail: Alice, VLAN 100, 3-hour session, 500 MB transferred, user-initiated disconnect.
SECTION 7
RADIUS vs. TACACS+ — Strengths and Limitations
While both RADIUS and TACACS+ implement the AAA model, they differ significantly in architecture, security properties, and typical deployment contexts. The table below provides a systematic comparison across dimensions that matter most in protocol selection.
| Dimension | RADIUS | TACACS+ |
|---|---|---|
| Transport | UDP (1812/1813) | TCP (49) |
| AAA Separation | AuthN + AuthZ combined; Accounting separate | All three fully separated |
| Encryption | Password field only (without RadSec) | Entire packet body encrypted |
| Primary Use Case | Network access (Wi-Fi, VPN, dial-up) | Device administration (router/switch CLI) |
| Granularity | Coarse — AVP-level policies per session | Fine — per-command authorization possible |
| Standardization | IETF RFCs (open standard) | Cisco proprietary (documented but not IETF) |
| Multiprotocol Support | Broad — PPP, 802.1X, EAP, etc. | Narrower — primarily Cisco IOS/NX-OS |
Key architectural differences between RADIUS and TACACS+.
KEY TAKEAWAY
SECTION 8
Connection to Zero Trust & Modern IAM
The traditional AAA model assumes a clear perimeter: authenticate at the edge, authorize once, and account for the session. Zero Trust Architecture (ZTA), as formalized by NIST SP 800-207, dissolves this perimeter assumption. In a Zero Trust environment, every request — not just the initial session — is subject to continuous AAA evaluation. Authentication becomes continuous and risk-adaptive, authorization is enforced at the individual resource level (micro-segmentation), and accounting must capture fine-grained telemetry from every micro-service interaction.
| Aspect | Traditional AAA | Zero Trust AAA |
|---|---|---|
| Authentication | Once at session start (perimeter) | Continuous; re-evaluated per request with context signals |
| Authorization | Static ACLs/roles assigned at login | Dynamic ABAC policies; least-privilege per micro-service |
| Accounting | Session-level start/stop records | Per-request telemetry fed to SIEM/SOAR in real time |
| Trust Model | Trust-but-verify (implicit trust inside perimeter) | Never trust, always verify |
| Key Protocols | RADIUS, TACACS+, Kerberos | OAuth 2.0, OpenID Connect, SPIFFE/SPIRE, mTLS |
Evolution from perimeter-based AAA to Zero Trust AAA.
Modern identity platforms like OAuth 2.0 and OpenID Connect (OIDC) can be viewed through the AAA lens: OIDC handles authentication by issuing ID tokens, OAuth 2.0 handles authorization by issuing scoped access tokens, and structured logging of token grants and API calls serves as the accounting layer. Service mesh frameworks like Istio embed mutual TLS authentication and fine-grained authorization policies at the sidecar proxy level, effectively distributing AAA enforcement to every hop in a micro-service architecture. As you advance into topics like identity federation, SAML assertions, and decentralized identity (DID), you will see that the AAA triad remains the conceptual skeleton onto which all of these technologies attach.
SECTION 9
Practice Problems
Question 1: CONCEPTUAL
Show answer
Question 2: BASIC CALCULATION
Acct-Session-Time = 7200, Acct-Input-Octets = 1073741824, and Acct-Output-Octets = 268435456. Calculate the session duration in hours and the total data transferred in gigabytes (GB, using powers of 2).Show answer
Question 3: INTERMEDIATE
Show answer
Question 4: APPLIED
Show answer
id_token (a signed JWT) that asserts the authenticated user's identity with claims like 'sub', 'email', and 'iss'. The user authenticates via a login form, biometric, or federated IdP. Authorization: Handled by OAuth 2.0 access tokens. The authorization server issues scoped access_tokens (e.g., scope: 'read:orders write:inventory') that micro-services validate at their API gateways or sidecar proxies. Accounting: There is no single standard artifact. Accounting is implemented through structured logging of token issuance events, API gateway access logs (capturing request URI, token claims, response code, latency), and SIEM ingestion of these logs for audit and compliance. The startup might also use the /introspection endpoint to record token revocation events.Question 5: CRITICAL THINKING
Show answer
SUMMARY
Summary
Summary
The AAA framework decomposes secure access management into three interdependent pillars. Authentication verifies identity through one or more factor categories (knowledge, possession, inherence, location, behavior), with multi-factor authentication (MFA) requiring factors from at least two distinct categories. Authorization determines permitted actions through models like DAC, MAC, RBAC, and ABAC. Accounting records session metadata — timestamps, data volumes, commands executed — for billing, compliance, and forensics.
Two canonical protocols implement AAA: RADIUS (UDP-based, combined AuthN/AuthZ, widely used for network access) and TACACS+ (TCP-based, fully separated AAA, preferred for device administration with per-command authorization). In modern architectures, the AAA model extends into Zero Trust environments where authentication is continuous, authorization is per-request, and accounting generates rich telemetry — a natural evolution of the same three questions the framework has always asked: Who are you? What can you do? What did you do?