T Techclick ← Cisco ISE hub
Cisco ISE · Session factory · Interactive lesson

Quote the reason code. The session is AuthZ.

Night ticket: a contractor cannot get on the wire. The switch looks fine. Someone writes “RADIUS failed — restart ISE.” The L3 who inherits that ticket wants three things: the Live Log reason code, whether AuthC or AuthZ broke, and the dACL, VLAN, or SGT the NAD actually holds. ISE does not hand out a login. It hands out an authorization result. That result is the session.

~20 min read · L2 primary · Quiz at end · Dummy lab only

After this page you can

Hero · who talks to whom
Teaches: laptop talks to the NAD, NAD talks RADIUS to the PSN
Notice: the endpoint never talks ISE policy directly. Supplicant → NAD → PSN. If the NAD object is wrong, Live Logs stay empty.
Quick answer

Supplicant talks to the NAD. NAD talks RADIUS to a PSN. The PSN picks a policy set, then an identity store (AuthC), then an authorization profile. The profile is the session: ACCESS_ACCEPT or ACCESS_REJECT, plus dACL, VLAN, SGT, or URL-Redirect. Posture is after Auth-Accept. Never say “RADIUS failed.” Quote 22056 or 15039, the policy set, and the result the NAD holds.

Say this out loud

Authentication names who is on the wire. Authorization names the session. A green Event 5200 with the wrong dACL is still a failed ticket. CoA is how ISE changes that session — if the NAD applies it.

1. Why the reason code is first

ISE is not “the RADIUS box.” It is identity plus authorization plus (often) profiling and posture. A running Application Server does not mean 802.1X succeeded. A green PSN does not mean that NAD used it. A user who “got on the network” can still be in a remediation dACL.

Live Logs sit on MnT and are viewed on the primary PAN. Official path: Operations → RADIUS → Live Logs. Click the Details icon. The fields that close a ticket are Failure Reason, Event, Authentication Policy, Authorization Policy, Authorization Profiles, Security Group, Posture Status, and Session ID.

22056 is “Subject not found in the applicable identity store(s).” That is AuthC — typo, wrong sequence, machine identity hitting a user-only store, or a MAB MAC not in Internal Endpoints. 15039 is “Rejected per authorization profile” — AuthC often passed; AuthZ chose a profile with ACCESS_REJECT (commonly default DenyAccess). Same word “failed.” Opposite station. Event 5200 is Authentication succeeded. Event 5400 is Authentication failed. Do not mix the two.

Do not say this

“RADIUS failed — restart ISE.” That sentence hides 22056, 15039, a posture redirect, a missing NAD, and a CoA the switch ignored. Quote the code, then name the result.

Event 5200

Authentication succeeded. Still read Authorization Profiles, Security Group, and Posture Status. Success here is not “user is productive.”

Event 5400

Authentication failed. Now you need Failure Reason — 22056, 15039, and 22040 are not interchangeable.

https://ise-lab.example.com / Operations / RADIUS / Live Logs
Training mock · not live

Operations → RADIUS → Live Logs · Primary PAN

RADIUS Live Logs

Status · Identity · Event · Failure Reason · Auth Policy · AuthZ Policy · AuthZ Profiles · SGT
FAIL finance.user 5400 22056 Subject not found in the applicable identity store(s)
Policy: Wired-MAB-then-Dot1X · Store: Internal Users · Profile: —
PASS j.patel 5200 Failure Reason empty
AuthZ Profiles: PermitAccess · dACL EMP-ACCESS · Security Group: Employees
PASS k.rao 5200 Failure Reason empty · Posture: Unknown
AuthZ Profiles: Posture_Redirect · URL-Redirect · dACL QUAR-LIMIT

Source: Cisco ISE Administrator Guide 3.3 — Troubleshoot, RADIUS Live Logs. Viewed on the primary PAN. Click Details for Authentication Detail. Lab names only.

2. Mental model: AuthC names who, AuthZ is the session

Memorize the order before you open Policy Sets. Every ticket is “which station broke?” The last station that succeeded is what the NAD still holds.

Flow 1 · session factory
The NAD holds the last AuthZ result — that is the session 1 · NAD Switch / WLC / VPN IP + shared secret 2 · AuthC Identity store 22056 lives here 3 · AuthZ Profile + exceptions 15039 lives here 4 · Session = result dACL · VLAN · SGT or URL-Redirect 5 · Posture After Auth-Accept then CoA 6 · CoA — change the live session Posture result, profiler hit, or ANC. ISE sends CoA. The NAD must apply the new AuthZ. If the switch ignores CoA, Live Logs look new and the user stays on the old dACL. PAN writes policy · PSN answers RADIUS · MnT stores Live Logs · pxGrid publishes the session The NAD radius-server host is a PSN IP, not the PAN. Live Logs are viewed on the primary PAN.

Read left → right, then down. Station 4 is the point of the lesson: the session is not AuthC. It is the authorization result the NAD applied.

Path · AuthC vs AuthZ
Teaches: authentication and authorization are different branches
Feel only. The real fork: did AuthC fail (22056), or did AuthZ hand back DenyAccess, a printer SGT, or a posture redirect?

Hard words, once

WordMeansIf you mix it up
NADNetwork Access Device — switch, WLC, or VPN concentrator that sends RADIUS.You debug ISE while the shared secret or source IP is wrong. No Live Log.
Policy setContainer: allowed protocols + AuthC rules + exceptions + AuthZ rules. Path: Work Centers → Network Access → Policy Sets.You edit Default while Wired-MAB-then-Dot1X is the set that hit.
AuthC / identity storeWhere ISE looks up who: Internal Users, AD, LDAP, Internal Endpoints (MAB), or a sequence.22056. User exists in AD; policy pointed at Internal Users.
AuthZ / authorization profileThe RADIUS result: Access Type, VLAN, dACL, SGT, URL-Redirect, Airespace ACL.15039 — default DenyAccess, not a dead PSN.
SessionWhat the NAD holds after AuthZ — not the password check.You close the ticket on Event 5200 while the dACL is still QUAR-LIMIT.
dACLDownloadable ACL named on the authorization profile and pushed to the NAD.You chase a VLAN when the profile only sent a dACL.
SGTSecurity Group Tag (TrustSec). Live Logs column: Security Group.You look only at VLAN and miss the tag the firewall is matching.
CoAChange of Authorization (RFC 5176). ISE tells the NAD to reauthorize the same session.You rebuild the policy set because the switch never applied CoA.

3. Decision flow at the PSN

Cisco’s policy-set evaluation is hierarchical. First the set matches. Then allowed protocols. Then identity-store rules. Then local exceptions, then global exceptions, then authorization rules. If no set matches, the Default policy set runs. You cannot delete Default. Its default authorization rule denies access.

Flow 2 · which station do you open?
Ticket: user cannot get on the wire Live Log exist? Ops → RADIUS → Live Logs No Suspect NAD IP · secret · PSN host Yes Reason code? Quote it first 22056 · 5400 Fix the identity store 15039 · 5400 Fix AuthZ / DenyAccess 5200 + redirect Posture after Accept 5200 + wrong SGT Quote the AuthZ result Then prove the NAD applied that result dACL / SGT / VLAN on the switch session · CoA sent vs CoA ignored Live Logs new + NAD old = CoA miss, not a stale policy set Dummy lab: show logging application ise-psc.log tail · then show the NAD session

Diamond = decision. If there is no Live Log, stop guessing stores. The NAD never delivered a valid RADIUS request.

Interview sentence

I open Live Logs first. I quote the reason code, the policy set, and the authorization profile. The session is that profile — dACL, VLAN, or SGT — not the password check.

4. How to choose the result (dACL / SGT / VLAN)

Do not start in Policy Sets until you know which flow the endpoint is supposed to use, and which result the NAD should hold. Wrong method + right password still fails. Right password + wrong profile is a failed session.

If the endpoint is…UseIdentity store (AuthC)Session result (AuthZ)Watch this trap
Managed laptop / user with a supplicant802.1X (PEAP-MSCHAPv2 or EAP-TLS)AD or cert store / sequenceEmployee VLAN + dACL, or SGT EmployeesMachine identity host/PC.domain hitting a user-only store → 22056
Printer, camera, badge reader, no supplicantMABInternal Endpoints (MAC)Profiled VLAN / printer dACL / SGT PrintersLaptop reuses the drop → leftover HP-Printer profile
Contractor / BYOD web loginCWA / GuestGuest or sponsor portalRedirect, then Guest after loginAuthZ never includes Cisco_WebAuth / URL-Redirect
Must prove disk encryption / AV802.1X + postureSame as 802.1XUnknown → redirect + limited dACL; Compliant → PermitAccessTreating Unknown as AuthC fail
Unknown device, visibility onlyMAB + profiler, No CoA if you only watchInternal EndpointsLimited or monitorGlobal profiler CoA = No CoA overrides per-profile CoA
https://ise-lab.example.com / Policy / Policy Elements / Results / Authorization / Authorization Profiles
Training mock · not live

Policy → Policy Elements → Results → Authorization → Authorization Profiles → EMP-ACCESS

Authorization Profile · EMP-ACCESS

EMP-ACCESS
ACCESS_ACCEPT
EMP-ACCESS
20 · Employees
Employees
Not set
Cancel Submit

Source: Cisco ISE Administrator Guide 3.3 — Segmentation, Authorization Profiles. Access Type, DACL Name, VLAN, and Security Group are the session. Identity Source is not on this page. Lab names only.

5. Do: Live Logs, AuthC, AuthZ proof

Primary sources for this block: Cisco ISE Administrator Guide 3.3 — Troubleshoot (Live Logs) and Segmentation (policy sets, authorization profiles). Confirm live UI labels on your release before you change production.

Side A — Live Logs first

If ISE has no Live Log, the PSN never accepted a valid request. Do not edit AuthZ until you have a row — or you have proved the NAD object is missing.

  1. Open Live Logs on the primary PAN

    Path: Operations → RADIUS → Live Logs. Filter Identity or Endpoint ID. Click Details. Write down Event, Failure Reason, Authentication Policy, Authorization Policy, Authorization Profiles, Security Group, Posture Status, Session ID, Network Device.

  2. If the row is empty

    Path: Administration → Network Resources → Network Devices → Add. IP Address must be the RADIUS source the NAD actually uses. Shared Secret must match (lab only — never a production secret in chat). Device Profile decides which CoA method ISE will send. RADIUS host on the switch/WLC = PSN IP, not PAN.

  3. If Event is 5400

    Stop at Failure Reason. 22056 → Side B (store). 15039 → Side C (profile / default deny). 22040 → password or shared secret. Do not restart Application Server for any of those.

Side B — AuthC (who)

  1. Open the set that actually hit

    Work Centers → Network Access → Policy Sets. Insert a set above Default. Condition it on Device Type, Location, or NAS-IP so wireless guest never hits wired 802.1X rules.

  2. Authentication policy

    Dot1X rule → AD or All_User_ID_Stores. MAB rule → Internal Endpoints. Set If User not found deliberately: REJECT for 802.1X user rules; CONTINUE only when you truly want MAB fallback on the same set.

  3. Prove 22056 is a store miss

    Quote the store on the Details report. A contractor in AD who hits Internal Users is still 22056. A machine identity host/… hitting a user-only sequence is still 22056. Restarting the PSN does not create the account.

Side C — AuthZ (the session)

  1. Authorization policy order

    Exceptions, then specific (Compliant_Devices_Access), then posture Unknown redirect, then profiled phones, then Default DenyAccess. Profiles live under Policy → Policy Elements → Results → Authorization → Authorization Profiles.

  2. Name the result on the profile

    Access Type = ACCESS_ACCEPT or ACCESS_REJECT. Then DACL Name, VLAN, Security Group, Web Redirection. That tuple is what the NAD should hold. Event 5200 with Authorization Profiles = DenyAccess is 15039 territory — AuthC passed, AuthZ rejected.

  3. Posture pair (if you enforce)

    Unknown / NonCompliant → URL-Redirect and a remediation dACL. Compliant → PermitAccess (or your employee profile). CoA is mandatory to move the session when posture status changes. Enable aaa server radius dynamic-author on Catalyst with the PSN as client.

  4. Prove the NAD applied it

    Live Log Authorization Profiles / Security Group must match the switch or WLC session. If Live Logs show the new profile and the NAD still has the old VLAN or dACL, treat it as CoA ignored. Do not rebuild the set.

Dummy lab · ISE-LAB/admin# · Event 5400, not 5200
show logging application ise-psc.log tail
10:42:18 5400 Authentication failed
  User: finance.user  NAS: 10.10.1.2  Policy: Wired-MAB-then-Dot1X
  Failure: 22056  Subject not found in the applicable identity store(s)

What you say: “Live log 22056 — user not in the identity store used by that policy.” Next: check which ID store the policy set calls. Then prove process health so nobody restarts a healthy box:

Dummy lab · process health ≠ RADIUS success
show application status ise
ISE PROCESS NAME     STATE
Database             running
Application Server   running
M&T Session Database running
ISE Indexing Engine  running
Green success = these log fields

Live Log: Event 5200, Failure Reason empty, Policy Set = the set you intended, Identity Store = AD (or the store you designed), Authorization Profiles = EMP-ACCESS (or PermitAccess), Security Group = the SGT you designed, Posture Status = Compliant or not required. NAD session shows the same VLAN / dACL / SGT.

6. Runtime path after go-live

A healthy user session is not “ISE is up.” It is this sequence, end to end. The NAD session at the end is the authorization result.

  1. Supplicant starts EAP (or MAB sends the MAC).
  2. NAD sends Access-Request to the PSN in its server group.
  3. PSN matches a policy set → allowed protocols → identity store → AuthZ (exceptions first).
  4. Access-Accept carries VLAN / dACL / SGT / redirect. Access-Reject is still an ISE decision — read 15039 before you blame the switch ACL.
  5. If posture is on: first Accept is often Unknown + URL-Redirect. The agent reports. ISE sends CoA. NAD reauthorizes. Second Live Log shows Compliant or NonCompliant and a new profile.
  6. Profiler may CoA later if the endpoint identity changes. ANC Quarantine is a human (or SOAR) action — treat it as change-control.
  7. pxGrid can publish the session to FMC / DNAC. pxGrid down looks like “ISE worked, the firewall never saw the SGT.”
Proof · quote the session, then close
Teaches: close the ticket from Live Logs and NAD proof, not from a green process list
Feel only. Close from Live Log fields plus the NAD session. Application Server running is not proof.
Personas in one line

PAN authors and replicates policy. PSN answers RADIUS. MnT stores Live Logs (view them on the primary PAN). pxGrid is the bus. The NAD points at PSN IPs.

Four tickets, four stations

22056, contractor not in the store. Event 5400. “ISE is up. The store that policy called does not contain this user.” Open the AuthC rule. Do not restart the PSN.

15039, default deny. AuthC often passed. Authorization Profiles is DenyAccess. “Rejected per authorization profile — fix the hit rule, not the password.”

5200 + printer SGT. Password works. Endpoint Profile = HP-Printer, static=no. Authorization followed the printer rule. Quote the profile. Do not reset AD.

5200 + old VLAN. Live Logs show the new profile. Switch session is stale. ISE sent CoA; the NAD ignored it. Quote aaa server radius dynamic-author. Do not rebuild the set.

7. Traps + proof checklist

FailureLooks likeStationDo this
22056“RADIUS failed”AuthC / storeQuote the store on the hit policy. Fix sequence or identity. Do not restart ISE.
15039“RADIUS failed”AuthZHit rule is often Default DenyAccess. Fix conditions, not the password.
5200 + wrong dACL/SGTAuth success, no appsAuthZ result / profilerQuote Authorization Profiles and Security Group. Re-profile or change the rule.
Posture NonCompliantAuth success, remediation pagePosture after AcceptRestricted dACL until the check is green and CoA fires.
No Live LogPort hangingNADDevice object, source IP, shared secret, PSN as radius host.
CoA ignoredISE new, NAD oldNAD CoAdynamic-author + NAD profile. Do not rebuild AuthZ.
ANC QuarantineGood creds, still deadChange-controlName the owner. Do not reset the password.
FMC has no user / SGT“ISE worked”pxGridPublish path, not a new policy set.
Proof checklist (pilot or ticket close)

Knowledge check

Six judgment items. Mapped to Live Logs, AuthC vs AuthZ, and the session-as-result rule. Check answers, then Reset to retry.

Q1

A ticket says only “RADIUS failed.” What is the first sentence you put on the ticket?

Correct: b. Re-read Quick Answer and Why the reason code is first. “RADIUS failed” hides 22056, 15039, posture, and a missing NAD.
Q2

Live Log shows Event 5400 and Failure Reason 22056 — Subject not found in the applicable identity store(s). What broke?

Correct: b. Re-read Mental model and Side B. 22056 is AuthC — a store miss — not posture and not 15039.
Q3

Failure Reason is 15039 — Rejected per authorization profile. AuthC looks clean. What is the session?

Correct: c. Re-read Why the reason code is first and Side C. 15039 is AuthZ. The session result is reject.
Q4

User passed AuthC. Live Log shows Event 5200, Authorization Profiles = PermitAccess, Security Group = Employees, dACL EMP-ACCESS. The switch still has last week’s VLAN. What is the live session?

Correct: a. Re-read Mental model and Runtime path. The session is the authorization result the NAD applied, not the row ISE just wrote.
Q5

Event 5200, Posture Status = Unknown, Authorization Profiles includes URL-Redirect and a limited dACL. What is true?

Correct: d. Re-read Runtime path. Posture is after Accept. The session is already the redirect profile.
Q6

A new closet switch has no Live Log rows at all. Application Server is running. What is the first fault domain?

Correct: b. Re-read Decision flow and Side A. No log means the request never arrived as a valid NAD. You cannot quote a reason code that does not exist.

Sources

Related: Blog 2 · Evidence desk · Cisco ISE interview hub · Dummy lab