Because permission state in tokens goes stale between refreshes, makes revocation harder, and blurs the line between identity claims and live authorization. That approach works poorly when access changes mid-session or when customers expect fast, explainable policy updates without waiting for a new login.
Why token-embedded permissions age badly
Embedding permissions in a JWT turns authorization into a snapshot. That is convenient for stateless services, but governance suffers when the token outlives the decision it represents. If roles, entitlements, or policy conditions change after issuance, the token can continue to authorize actions that no longer match current policy.
The core issue is drift. A JWT can remain valid until expiry even when the underlying user, customer, or workload should have lost access, and that gap makes access reviews, emergency revocation, and policy explainability harder.
Teams usually feel this first when they need fast policy change. If access must be reduced for a sensitive case, or a customer must be moved to a different entitlement tier, embedded permissions delay enforcement unless you shorten token lifetimes, force reauthentication, or add an online authorization check.
Why embedded permissions create governance friction
Governance is not only about whether a token can be verified. It is about whether the permission state inside that token is still authoritative. Once permissions are frozen into the token, the business process that changes access, approves exceptions, or revokes rights no longer has a single live source of truth.
That creates a split-brain model: identity claims say who the subject is, while the token payload says what the subject may do. In practice, those two can diverge, especially in systems that support mid-session entitlement changes, delegated administration, customer self-service, or rapid incident response.
For this reason, many teams move high-risk decisions out of the token and into a policy check at request time. The token then proves the caller and carries limited context, while authorization remains responsive to current state, such as account status, device posture, tenant policy, or time-bound exceptions.
What to design for instead
JWTs work best when they carry stable claims, not fast-changing business permissions. Use them to establish identity and coarse session context, then rely on a policy layer for decisions that need to reflect live access state.
A practical pattern is to keep token lifetimes short, rotate signing keys carefully, and reserve embedded permissions for low-volatility attributes. When permissions are operationally sensitive, pair the token with an introspection step, a centralized authorization service, or another live policy source so revocation and policy edits take effect quickly.
It also helps to distinguish authentication evidence from authorization state. If you cannot explain when a permission changes, where it is recorded, and how quickly the change takes effect, the token design is probably carrying too much governance responsibility.
Risk and Threat Considerations
Embedded permissions can preserve access longer than intended, which creates over-authorization risk after role changes, offboarding, incident containment, or customer entitlement updates. The longer the token lifetime, the larger the window in which stale rights can be used without a fresh policy decision.
Failure mechanism: The system trusts a previously issued JWT even after the underlying permission model has changed, so revoked or reduced access is not enforced until expiry, refresh, or an out-of-band control intervenes.
Impact: Attackers who obtain a valid token, or users whose access should have been removed, may continue to act under outdated permissions, increasing unauthorized access, lateral movement, and audit findings around revocation latency.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 and OWASP API Security Top 10 address the attack and risk surface, while NIST SP 800-53 Rev 5 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST SP 800-53 Rev 5 | IA-5 — Authenticator Management | JWT freshness and revocation depend on credential and token lifecycle control. |
| AC-6 — Least Privilege | Embedded permissions can overstate access when rights change after issuance. | |
| AC-3 — Access Enforcement | Live authorization is needed when permissions must change mid-session. | |
| Recommendation — Set short lifetimes and revocation handling for bearer tokens and related authenticators. Limit token scope to the minimum permissions needed for the session. Enforce current access decisions at request time, not only at token issuance. | ||
| NIST Zero Trust (SP 800-207) | ZA-? — Zero Trust Architecture | This topic centers on verifying access continuously instead of trusting stale session state. |
| Recommendation — Move sensitive authorization decisions into continuously evaluated policy checks. | ||
| OWASP Non-Human Identity Top 10 | NHI-07 — Long-Lived Secrets | JWTs with embedded permissions become governance problems when they remain valid too long. |
| Recommendation — Reduce token lifetime and rotate or revoke credentials that outlive policy changes. | ||
| OWASP API Security Top 10 | API5 — Broken Function Level Authorization | Stale token permissions can let callers keep functions they should no longer have. |
| Recommendation — Check current function authorization on every sensitive API request. | ||
Practitioner Guidance
What to verify: Confirm whether the token is meant to prove identity only, or whether it is also being used as the source of truth for live authorization. If the token is carrying permissions that can change during a session, check how revocation, entitlements updates, and emergency access removal are enforced before expiry.
Decision rule: If a permission change must take effect immediately, do not rely on waiting for token expiry. Move that decision to a live policy check, or pair the token with short lifetimes and a revocation path that can actually interrupt active sessions.
Common mistake: Treating “stateless” as “governable.” Stateless token validation does not solve authorization freshness, and it often hides the operational gap until a role change, breach, or customer dispute forces the issue.
Practitioner takeaway: Keep JWTs small, stable, and easy to validate, then put fast-changing access decisions somewhere that can be updated and revoked without waiting for the token to age out.
Related resources from NHI Mgmt Group
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 11, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org