TL;DR: SpiceDB models authorization as a typed relationship graph with consistency controls, caveats, and delegated permissions so applications can make the correct decision every time an actor accesses a resource, according to Authzed. The key issue is not connecting agents to identity, but enforcing authorization at the point of action with current state.
At a glance
What this is: This is an analysis of how SpiceDB structures authorization for applications and AI agents, with the key finding that permission decisions must be consistently enforced at request time rather than inferred from identity alone.
Why it matters: It matters because IAM and architecture teams need a model that handles delegation, changing access, and agent-driven requests without relying on stale tokens or static role assumptions.
👉 Read Authzed's analysis of AI agent authorization with SpiceDB
Context
Authorization for AI agents and modern applications fails when teams treat identity as the control point instead of the decision point. The primary issue is not whether an actor has authenticated, but whether the system can make the right authorization decision each time access is requested. For AI agent identity and NHI governance, that distinction is central because delegated access, task-based permissions, and changing state all happen faster than manual review cycles.
SpiceDB represents authorization as relationships between objects, so access can be derived from tasks, teams, resources, and delegation paths rather than copied into every service. That matters for NHI and autonomous workflows because permissions often move through multiple layers before an action is executed. The article's starting position is typical of teams building agentic or distributed systems that need continuous authorization rather than one-time approval.
Key questions
Q: What should security teams do when AI agents need access to tools and data?
A: Security teams should treat AI agents as runtime access actors and separate them from static machine identities. Limit tool scope, define approval gates, and require explicit revocation triggers for sessions and delegated access. The goal is to prevent broad runtime behaviour from inheriting static privileges.
Q: Why do stale authorization decisions create risk in dynamic environments?
A: Because a correct policy can still produce the wrong outcome if the system evaluates it against old relationship data. In fast-moving environments, revocation, reassignment, and object creation can happen close together, and stale reads may preserve access that should already be gone. Consistency is therefore part of access control.
Q: What breaks when delegation is handled only with bearer tokens?
A: Bearer tokens copy authority without making the delegation chain visible or narrow enough for task-scoped control. That makes it hard to prove why an actor has access, hard to expire authority cleanly, and easy to over-grant. Relationship-based delegation gives teams a clearer and more auditable permission model.
Q: How do teams decide when contextual caveats are better than permanent access?
A: Use caveats when access should depend on request-specific conditions such as time, environment, threshold, or task context. Use permanent relationships only for durable authority. If the condition is temporary or situational, baking it into a long-lived entitlement creates unnecessary privilege and makes review harder.
Technical breakdown
Authorization as a relationship graph
SpiceDB models authorization as objects, relations, and permissions. Objects are the entities in the system, relations describe how they connect, and permissions are computed from those relationships. The schema supports union, intersection, exclusion, and graph traversal, so access can be inherited across teams, projects, tasks, and delegated paths. This is materially different from storing entitlements as static application logic, because the policy decision is derived from the graph at runtime rather than hard-coded into each service.
Practical implication: Model access paths explicitly so downstream services can ask one authorization system instead of re-implementing rules.
CheckPermission, caveats, and contextual authorization
The CheckPermission API is the enforcement point, while the application remains responsible for calling it before data is released or an action is taken. Caveats add conditional logic to relationships using request context such as time, IP address, or numeric thresholds. That allows a permission to exist only when the current conditions are satisfied, without turning temporary context into permanent policy. For agent workflows, this is important because a request may be technically authorized only within a narrow operational boundary.
Practical implication: Use contextual checks for agent actions that depend on environment, threshold, or request attributes.
Consistency controls and the New Enemy Problem
Authorization can still fail if the system evaluates the right policy against stale relationship data. SpiceDB addresses this through ZedTokens and explicit consistency options, letting applications bind later checks to a known revision of authorization state. That matters when access is revoked and a new sensitive object is created immediately afterward, because stale reads can reintroduce removed access. This is the core of the New Enemy Problem in authorization systems, and it is especially relevant in dynamic NHI and agentic environments where entitlements change mid-flow.
Practical implication: Tie sensitive follow-on checks to the correct authorization revision when revocation and creation happen close together.
NHI Mgmt Group analysis
Continuous authorization is the real control boundary for agentic systems. Identity proof alone does not answer whether an action should proceed. When an agent can request tools, documents, or delegated operations in rapid sequence, the decision must be evaluated at the resource boundary, not assumed from the session boundary. Practitioners should treat authorization as a live enforcement layer, not a one-time entitlement event.
Stale authorization state creates a New Enemy Problem for NHIs. Access revocation is only meaningful if the next check observes the new state. A relationship graph, cache, or replica that lags behind policy change can allow a removed actor to benefit from old access paths. The implication is that revocation latency becomes a governance risk, not just an operational detail.
Named concept: authorization consistency debt. This is the gap between the policy the organisation believes it has and the revision actually used at decision time. In fast-moving agent and workload environments, that debt accumulates when checks are performed against outdated relationships, cached entitlements, or implicit delegation assumptions. Practitioners should treat consistency as part of identity governance, not merely performance tuning.
Delegation has to be represented, not implied. Bearer tokens and broad service credentials obscure who is acting on whose authority, which makes task-scoped control difficult to prove or audit. Relationship-based delegation gives the organisation a visible chain of authority that can expire, narrow, and be inspected. That is the governance model teams need when AI agents and service accounts both act on behalf of something else.
Agent security and NHI security converge at the authorization graph. A system that can express users, agents, tools, and resources in one model can govern all of them with the same decision logic. That does not remove the need for authentication, runtime isolation, or policy ownership, but it does remove the fragmentation that often causes inconsistent access outcomes. Practitioners should unify these decision paths before agent sprawl creates unreconciled entitlements.
From our research:
- 79% of organisations have experienced secrets leaks, with 77% of these incidents resulting in tangible damage, according to the Ultimate Guide to NHIs.
- Only 5.7% of organisations have full visibility into their service accounts, which shows how thin the operational baseline still is for non-human identity governance.
- That visibility gap makes relationship-based authorization more relevant, and our 52 NHI Breaches Analysis shows how quickly weak identity boundaries become breach conditions.
What this signals
Authorization consistency debt: teams that rely on cached or stale entitlements will keep seeing policy drift between what the organisation thinks is true and what the application actually enforces. That becomes more visible as agent workflows, delegated access, and workflow automation increase the number of decision points per transaction.
Identity, access, and runtime teams should expect more pressure to centralise enforcement around one decision system rather than distributing access logic across services. The organisations that do this well will have a clearer audit trail, fewer hidden exceptions, and better control over revocation timing.
For practitioners aligning with modern Zero Trust patterns, the practical signal is simple: if a service can act on old permissions after access changes, the control model is already too loose. The next step is not more review cadence, but tighter decision freshness and clearer delegation boundaries.
For practitioners
- Map every delegated action to a relationship path Identify how users, service accounts, and AI agents gain access to tools, documents, and tasks, then express those paths as relationships instead of scattered application rules.
- Bind sensitive checks to fresh authorization state Require the application to use the latest relevant revision when revocation, reassignment, or task completion changes access during the same workflow.
- Use caveats for environment-bound agent actions Attach context conditions such as time, location, threshold, or task identifier to permissions that should only hold in a specific runtime situation.
- Separate policy decision from policy enforcement Keep one system responsible for evaluating permissions and make every application call it before releasing data or executing a high-risk action.
Key takeaways
- SpiceDB's core lesson is that authorization must be decided at request time, not assumed from identity or session state.
- Stale relationship data creates a real governance gap because revocation can fail even when the policy is technically correct.
- Teams governing AI agents, service accounts, and delegated workflows need one visible authorization model that can express context, expiry, and fresh decision checks.
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 address the attack and risk surface, while NIST Zero Trust (SP 800-207), NIST CSF 2.0 and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-01 | The article centres on authorization decisions for non-human identities and delegated access. |
| NIST Zero Trust (SP 800-207) | 3.1 | The article aligns with continuous verification and decision freshness in Zero Trust. |
| NIST CSF 2.0 | PR.AC-4 | Permission enforcement and least privilege are central to the authorization model described. |
| NIST SP 800-53 Rev 5 | AC-6 | Least privilege and delegated access control are core to the article's governance model. |
Require fresh authorization checks before each sensitive action and avoid assuming prior approval still holds.
Key terms
- Relationship Graph Authorization: A model that derives permissions from explicit relationships between objects instead of from hard-coded application rules. It lets teams express who can do what, to which resource, and through which delegation path, which is especially useful when access changes frequently or spans agents, users, and services.
- Authorization Consistency: The requirement that a permission decision uses the correct and current version of relationship data. In fast-changing environments, consistency is part of security because a stale check can reintroduce access that was already revoked or ignore a new restriction that should already apply.
- Caveat: A caveat is a conditional check attached to a relationship or entitlement, allowing access only when runtime context meets a defined rule. In practice, it lets teams keep the permission graph stable while adding precise, temporary constraints such as time or IP matching.
What's in the full article
Authzed's full article covers the implementation detail this post intentionally leaves for the source:
- Schema patterns for objects, relations, permissions, and graph traversal in SpiceDB
- How CheckPermission, CheckBulkPermissions, and ZedTokens behave in real workflows
- Examples of caveats, expiration, and delegated access across agent and application paths
- Practical use of the Watch API for audit and derived authorization views
Deepen your knowledge
NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are building or maturing an IAM programme, it is worth exploring.
Published by the NHIMG editorial team on July 28, 2026.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org