Defense control

Agent Authorization

How to authorize AI agent actions outside the model: who is asking, under whose authority, to do exactly what, to which resource, with which parameters, to which destination, and under which policy version.

By Norbert HofmannPublished: 2026-09-20Last reviewed: 2026-09-20Level: AdvancedAudience: Security Engineers, Developers, AI Engineers
Control family
Identity and authorization
Enforcement
Deterministic, outside the model
Core question
Who, under whose authority, may do exactly what, to which resource, with which parameters
Level
Advanced
Table of contents

Security Objective

Agent authorization is the control that decides whether one concrete, fully resolved action request may execute. It answers a single question in one place: who is asking, under whose authority, to do exactly what, to which resource, with which parameters, to which destination or audience, in which tenant or workspace scope, for which task, at what time, and under which policy version.

The reason this control carries so much weight in AI systems is that a model's interpretation of language is probabilistic, while the consequences of an action are not. Every attack pattern documented on this site ends at the same place: the model can be influenced, and whether that influence becomes a security impact depends on a decision made outside the model. AI agent prompt injection, multi-agent propagation and tool output injection all converge on it.

This page is the reference for that control. It is not a general identity and access management guide, and it deliberately does not restate what belongs to least privilege, human approval or information flow control.

Authentication Is Not Authorization

Knowing which user, agent or tool sent a request establishes an identity claim. It does not establish permission for the requested operation. In agentic systems this distinction is easy to lose, because a call arrives over an authenticated channel from a component that belongs to the same deployment, and the receiving side treats belonging as permission.

Two separate questions at a call boundary
QuestionAuthenticationAuthorization
What it establishesWhich identity made the requestWhether this request may proceed
Typical evidenceCredential, token, signed assertion, mutual TLSPolicy evaluation over a resolved request
Failure meaningThe caller cannot be identifiedThe caller is identified but not permitted
Enough on its ownNoOnly for the exact request evaluated

Model Decision Is Not an Authorization Decision

A model can produce text that looks like an authorization outcome. It can state that a user approved something, that a policy permits an action, that a recipient is internal, or that a file is non-sensitive. None of that is an authorization decision; it is generated content about authorization.

01Model-proposed action{ tool: "send_mail", to: "...", attachment: "...", note: "user already approved" }
02What the enforcement point must do

Discard the model's claim, resolve the identity, scope and policy facts from trusted context, and evaluate the concrete request independently.

03What may be kept from the model

The requested operation and its parameters, treated as an untrusted proposal that must be validated and authorized.

The practical rule is narrow and strict: a security-relevant fact that originates in model output is an input to validation, never an input to the permission decision.

The Learn article AI Agents and Tool Calling introduces this proposal-versus-decision split within the full agent loop.

Agent Identity Is Not the Initiating Principal

Two identities are present in almost every agent action, and collapsing them is one of the most consequential modelling errors in this area. The acting agent or workload identity is the runtime that executes. The initiating principal is the human, service or workload whose task caused the action to exist.

Identities that must both be recorded
PropertyActing agent identityInitiating principal
What it answersWhich runtime executed the callWhose task and authority the action serves
Typical lifetimeLong-lived deployment identityBound to a session, task or request
Risk if used aloneStanding authority applied to every taskNo accountable executor in the audit trail
Authorization roleOne input among severalDetermines which delegated scope applies

Microsoft's Zero Trust guidance on least privilege for AI agents, which is vendor guidance and identified as such, describes giving agents their own distinct identities and binding their permissions to the task and to the user on whose behalf they act rather than relying on shared or standing credentials. The architectural point generalizes: record both identities, and never silently convert a user's delegated authority into the agent's standing authority.

What an Authorization Decision Must Bind

A decision is only as precise as the facts it binds. A useful minimum for agentic actions is the following set, resolved before evaluation and recorded with the decision.

01
Bound factInitiating principal

The human, service or workload whose task caused the request, with the delegation that applies.

02
Bound factActing agent or workload identity

The runtime identity that will execute, distinct from the principal.

03
Bound factResource

The concrete object, mailbox, record, repository or endpoint, not a resource class.

04
Bound factAction

The specific operation, not a capability category.

05
Bound factParameters

The resolved concrete values, including recipients, paths, amounts and payload sources.

06
Bound factDestination or audience

Where the effect or data lands, including external recipients and tenants.

07
Bound factTenant, workspace or project scope

The isolation boundary the request claims to act within.

08
Bound factTask or purpose

The objective the action serves, where the application can supply it reliably.

09
Bound factTime and policy version

When the decision was made and which rule set produced it.

Where the Decision and the Enforcement Live

Two components are worth separating even in a small system. The decision point evaluates a resolved request against policy and returns a decision with a reason. The enforcement point sits on the execution path and will not perform the operation without an allow decision for that exact request.

Authorization path for an agent action
SystemInitiating Principal / Identity Context
Variable trustUser Task / Request Content
SystemAgent / Planner
Variable trustProposed Exact Action
SystemAuthorization Context Resolver
SystemPolicy Decision Point
SystemPolicy Enforcement Point / Tool Gateway
SystemDownstream Resource
Variable trustResult

The flow is linear, but the trust model is not. The user task and the model's proposed action are request content and remain variable; they say what is wanted, never what is permitted. The resolver, decision point and enforcement point are system components, and the identity, session, delegation and policy facts they use are resolved out of band from trusted stores, not read out of the prompt. Being a system component does not make the content it handles trusted, and the downstream resource returns data and results that carry their own trust and may themselves be externally influenced.

Place the decision as close as practical to the consequential action, so that the request evaluated is the request executed.

Orchestrator Checks Do Not Guarantee Downstream Enforcement

An authorization check in the orchestrator protects the orchestrator's own execution path. It does not constrain what the target system will accept from a credential that reaches it by another route. Where the target system is the real policy enforcement point, the action must be authorized there as well.

Orchestrator-only check
  1. Agent plan
  2. Orchestrator policy check
  3. Broad downstream credential
  4. Target system executes

The target system accepts whatever the credential permits. Any path that reaches the credential inherits its full authority.

Decision plus downstream enforcement
  1. Agent plan
  2. Orchestrator policy check
  3. Scoped, audience-restricted credential
  4. Target system authorizes the request

Both layers evaluate. The credential that leaves the orchestrator cannot do more than the delegated scope allows.

Downstream revalidation checks

  • The target system evaluates the request under its own policy, not only the orchestrator
  • The credential presented downstream is scoped to the resource and audience of this task
  • The initiating principal and delegated scope survive the hop in a verifiable form
  • A denial downstream is recorded as a distinct event from an orchestrator denial

Capability Availability Is Not Permission

Tool discovery answers what the agent can see. Authorization answers whether this task may use it. Systems frequently conflate the two, exposing a registered tool to every session and treating registration as consent.

Discovery and permission are separate decisions
QuestionTool availabilityAuthorization
Decided byRegistration and session configurationPolicy evaluation of a concrete request
GranularityThe tool as a wholeOne invocation with resolved parameters
Changes with taskOften notShould change with principal, scope and purpose
Sufficient for executionNoYes, for exactly that request

Reducing which tools are exposed at all is valuable, but it belongs to least privilege. Authorization still has to evaluate each invocation that the exposure permits.

Token Possession Is Not Universal Authority

Tokens are a common carrier of delegated authority, and they are frequently over-read. A token establishes what its issuer asserted, for which audience, with which scopes or roles, and for how long. It is not a general permission to act on the holder's behalf everywhere.

01
PropertyAudience and resource restriction

Which target the token is intended for, so a token obtained for one resource is not accepted by another.

02
PropertyScopes and roles

Which operations the delegation covers, evaluated alongside resource-side policy.

03
PropertyExpiry

How long the assertion remains acceptable, which bounds but does not replace revocation.

04
PropertyBinding or recipient constraints

Whether the token is usable only by the intended presenter.

RFC 8707, Resource Indicators for OAuth 2.0, is used here narrowly: it defines a way for a client to signal the specific protected resource it intends to access when requesting a token, which supports issuing tokens restricted to that target audience. That is one useful mechanism for avoiding broadly valid tokens. It is not a claim that OAuth is required for agent authorization, nor that any token mechanism resolves agent security on its own.

Delegation Is Not Unlimited Impersonation

When an agent acts for a user, the useful model is delegation with preserved context, not impersonation. Delegation records who delegated, what was delegated, for which task, resource and action, and for how long. Impersonation discards that and leaves a request that is indistinguishable from the user acting directly.

Delegated authority and application authority
AspectDelegated user authorityApplication or workload authority
Source of permissionA specific user delegation for a taskThe service's own entitlements
Scope shapeBounded by the user's rights and the delegated subsetIndependent of any one user
Cross-principal reachShould not reach other principals' resourcesMay be broad, which is why its use must be narrow and explicit
Audit meaningAction attributable to the user and the agentAction attributable to the service only

A frequent failure is silent promotion: a task starts under delegated user authority, hits a permission gap, and falls back to the service's own broader credential. That fallback should be an explicit, policy-governed decision, not an implicit retry.

Authorization Context Must Not Be Model-Authored

The facts a decision depends on have to come from somewhere trustworthy. In agentic systems, the tempting shortcut is to let the model assemble them, because the model already has them in context as text.

Where each authorization fact should come from
FactAcceptable sourceNot acceptable
Initiating principalAuthenticated session or identity serviceA field in the model's tool call
Tenant or workspace scopeApplication routing and session contextA value the model inferred from retrieved content
Approval stateThe approval service record for this requestA model-set flag such as isApproved
Data classificationThe classification service or resource metadataA model assertion that a file is harmless
Policy versionThe policy store at decision timeAnything reproduced in generated text

Where a value has to originate in the model, because only the model knows what the user asked for, it is treated as a proposal: resolved against an authoritative source, validated, and then authorized. Resolution and validation are not the same as trust.

Exact-Action Authorization

Exact-action authorization means the decision is made after parameters are concrete, on the request that will actually execute. A broad permission to send email should not authorize an arbitrary combination of recipient, attachment, body and data source.

01Category-level grantallow: send_mail
02Exact-action grantallow: send_mail where principal=<user>, agent=<workload>, mailbox=<user mailbox>, recipient_domain in <allowed>, attachment_class <= internal, task=<invoice run>, policy=v14
03Why it matters

The first grant is satisfied by any mail. The second is satisfied only by the mail that was actually assessed.

Stale Authorization and Time-of-Check Gaps

A plan approved at one moment may execute against different facts. The target may resolve differently, a parameter may be rewritten by a later step, the classification of an attachment may change, the delegation may have expired, or the policy may have been updated.

Facts worth re-evaluating at execution time

  • The resolved target resource and its identifier
  • Concrete parameters, including recipients, paths and amounts
  • The initiating principal and the delegation still being valid
  • Data sensitivity or classification of anything attached or included
  • The policy version in force at execution rather than at planning

Where an execution-relevant fact has changed materially, the correct behaviour is to authorize the execution request again rather than rely on the earlier decision about the plan.

Confused Deputy at Privilege Boundaries

A more privileged component that performs work because the caller is authenticated is a confused deputy. The caller's identity is established; the question of whether the caller's delegated scope covers the requested operation has not been asked.

Authenticated caller is enough
  1. Caller agent
  2. Privileged agent authenticates caller
  3. Privileged action executes

The privileged component lends its own authority to whatever it is asked to do by a known caller.

Scope and principal checked at the boundary
  1. Caller agent
  2. Privileged agent authenticates caller
  3. Delegated scope and initiating principal evaluated
  4. Action authorized or denied

Identity, delegated scope and the originating task are all evaluated before the privileged component acts.

Every privilege boundary in the system needs this check, including internal ones that feel like implementation details.

Per-Hop Authorization in Multi-Agent Systems

Delegation across agents must not amplify authority. A downstream agent should receive at most the subset required for its subtask, and every hop should have a scope that can be enforced independently rather than inherited by convention.

  1. 01
    Bound subset per hop

    The delegated scope handed to a downstream agent is a subset of the upstream scope, derived from the subtask rather than copied wholesale.

  2. 02
    Preserved initiating principal

    The principal and task travel with the delegation in a form the receiving side can verify, not as prose in a message.

  3. 03
    Independent enforcement

    Each hop authorizes the request it receives; no hop treats an upstream allow as sufficient for its own action.

  4. 04
    No re-expansion

    A downstream component cannot request a broader grant than the delegation it received, and attempts to do so are denied and recorded.

The attack-side view of what happens without this is documented in multi-agent prompt injection; this page is the control reference rather than the threat description.

Human Approval Is a Layer, Not the Base Model

Human approval is valuable for selected high-impact actions, and it is a poor substitute for an authorization model. If the base decision is missing, approval becomes the only gate, and it is the gate most easily worn down by volume.

Approval of intent and authorization of parameters
PropertyApproval of intentAuthorization of the concrete action
What is agreedThat a kind of action should happenThat this exact request may execute
Covers parametersUsually notYes, by construction
Survives parameter changeShould notRe-evaluated when facts change
Scales with volumePoorlyYes

An approval that is worth having is specific and informed: it names the resource, the parameters and the destination that will be used. Approval UX, consent quality and fatigue belong to the human-in-the-loop control rather than to this page.

Boundaries With Neighbouring Controls

Authorization is one control among several that meet at the action boundary. Keeping the responsibilities apart makes each of them testable.

Who owns which decision
ControlQuestion it answersNot its job
Agent authorizationMay this concrete request execute, under whose authorityDeciding how much authority exists in the first place
Least privilegeHow much standing authority, identity and credential reach exists at allEvaluating individual requests
Human-in-the-loopShould a person confirm this high-impact actionServing as the base permission model
Information flow controlMay this data reach this destinationWhether the operation itself is permitted
Output validationIs the structure, type and parameter set validWhether the caller may perform it
Tool-chain analysisIs the sequence of actions unsafe in combinationSingle-request permission

Sequence-level composition is covered in Tool-Chain Analysis; a chain result never pre-authorizes a call.

Deny by Default and Fail Closed

When a security-relevant fact is missing or ambiguous, the safe outcome is a denial with a reason code. The unsafe outcome is a system that lets the missing fact be completed from model-authored text, because that converts an availability problem into an authorization bypass.

Fail-closed conditions

  • The initiating principal cannot be resolved for this request
  • The tenant, workspace or project scope is ambiguous
  • The target resource does not resolve to exactly one object
  • The delegation has expired or cannot be verified
  • The policy store is unreachable or the applicable rule set is unknown
  • A required parameter is absent and would otherwise be inferred

Each of these produces a denial that is visible, attributable and testable, which is what makes deny-on-missing-context measurable later.

Revocation and Short-Lived Authority

Authorization decisions are made against a state that can change. Two operational properties matter here, and both are kept deliberately bounded because credential lifecycle in general belongs to least privilege and identity management.

01
PropertyRevocation latency

How long it takes, in practice, for a withdrawn delegation or disabled agent identity to stop being accepted at enforcement points.

02
PropertyAuthority lifetime

How long a delegation or credential remains valid, which bounds exposure between revocation and expiry.

Microsoft's vendor guidance on least privilege for AI agents discusses just-in-time and time-bound elevation for agent identities rather than persistent standing rights. The relevant point for authorization is narrower: the enforcement point must consult current state, so that a withdrawal takes effect at the next decision rather than at the next credential renewal.

Worked Scenario: A Routine Vendor Invoice Email

The scenario is synthetic, bounded and reversible. Its purpose is to show that proposal, authorization and execution are three separate facts, not to demonstrate any technique.

01User request

An employee asks the assistant to prepare and send the routine monthly invoice email to the usual vendor contact.

02Agent proposal

The planner produces a concrete send_mail action with a resolved recipient address and a specific attachment drawn from the finance workspace.

03Context resolution

The resolver establishes the initiating user from the session, the agent workload identity, the mailbox the delegation covers, the allowed recipient domains for this task, the classification of the attachment and the tenant scope. None of these values are read from the model's output.

04Policy evaluation

The decision point evaluates the exact request. The proposed combination of recipient and attachment falls outside the policy for this task: the attachment classification is not permitted for the resolved recipient.

05Enforcement

The enforcement point denies the request with a reason code before any mail transaction is attempted.

06Observed outcome

Deepest observed gate: authorization. No message was sent, no attachment left the workspace, and no data reached an unauthorized destination.

What the Scenario Does and Does Not Prove

Reading the result honestly
ClaimSupported by the runNot supported
The enforcement point denied this requestYes, with a recorded reason code and policy versionThat it denies every out-of-scope request
No data reached an unauthorized destinationYes, for this runThat the deployment cannot exfiltrate data by another path
The binding model was sufficient hereYes, for this action and these parametersThat the same binding covers other tools
Planning was influenced or merely impreciseOnly if paired trials were runAny conclusion about model quality from a single observation

A single contained run demonstrates that one gate held for one request. Coverage claims require the measurements in the testing section, with their denominators stated.

Authorization Telemetry

Authorization telemetry is what makes the control investigable. The minimum is a record per decision that ties the proposal, the resolved context, the decision and the outcome together.

What to record per consequential action
  1. 01
    Proposed action

    The operation and parameters the model produced, stored as a proposal with its correlation and task identifier.

  2. 02
    Resolved context

    Initiating principal, acting agent identity, tenant or workspace scope, delegation and task, each with its source.

  3. 03
    Target and parameters

    The concrete resource, destination or audience and the parameter set, with sensitive values handled according to data policy.

  4. 04
    Decision

    Allow or deny, the reason code, the policy or rule version, and the decision point that produced it.

  5. 05
    Approval

    Whether a human approval applied, what it covered and who granted it.

  6. 06
    Execution

    Whether the enforcement point executed, and what the downstream system returned.

Four states that must stay distinct

  • Proposed: the model requested the action
  • Authorized: the decision point allowed this exact request
  • Executed: the enforcement point performed it
  • Succeeded: the downstream system reported a completed effect

Collapsing these into a single event makes it impossible to tell a blocked attempt from a completed action, which is precisely the distinction an investigation needs.

Testing and Metrics

Each measure below is reported separately, with its denominator stated. There is no composite authorization score, because a single number hides which property failed.

Authorization measures with explicit denominators
MeasureNumeratorDenominator
Authorization Decision CoverageConsequential action requests evaluated by the policy pointConsequential action requests observed
Deny-on-Missing-Context RateIncomplete-context requests deniedIncomplete-context requests tested
Scope Violation Block RateOut-of-scope requests deniedOut-of-scope requests tested
Parameter Substitution Block RateMaterially changed requests denied or re-authorizedMaterially changed requests tested
Cross-Principal Isolation RateUnauthorized cross-principal requests deniedCross-principal attempts tested
Delegation Non-Amplification RateDownstream grants within the upstream delegated scopeDownstream delegations tested
Downstream Revalidation CoverageActions revalidated by target enforcementActions requiring downstream enforcement
Authorization False-Deny RateBenign authorized tasks deniedBenign authorized tasks tested

Revocation Enforcement Time is reported as an operational latency rather than a rate: the time between a withdrawal and the first enforcement point that stops accepting the withdrawn authority. Benign task utility is reported separately as well, and is never folded into a security figure, because a system that denies everything scores perfectly on every block rate.

To practice these properties in a controlled setting, the Agent Authorization lab is a deterministic simulation of exact-action authorization, principal and delegation binding, re-authorization after material parameter changes and per-hop non-amplification.

Incident Response and Common Mistakes

When an agent action goes wrong, the first job is to establish which of four different failures occurred, because the remediation differs entirely.

Preserve and classify

  • Preserve the original user objective and the model-proposed action
  • Preserve the resolved authorization context and the full decision trace
  • Preserve the downstream request and response, including any denial reason
  • Classify: influence only, policy decision failure, enforcement bypass, or downstream authorization gap
  • Determine whether any effect executed, and whether it is reversible
  • Record whether the deepest reached stage was proposal, authorization, execution or completed effect

Recurring mistakes

  • Treating an authenticated internal caller as an authorized one
  • Accepting an approval flag or permission claim from model output
  • Authorizing a plan and executing different parameters
  • Collapsing the initiating principal into the agent's standing identity
  • Relying on an orchestrator check while the downstream credential remains broad
  • Granting one token that several resources accept
  • Logging only successful actions, so denials and proposals are invisible

Standards and guidance referenced

OWASP
Top 10 for Agentic Applications 2026, ASI03 Identity & Privilege Abuse (neighbouring risk framework), LLM01:2026 Prompt Injection (related attack class)
IETF
RFC 8707 Resource Indicators for OAuth 2.0 (resource and audience restriction)
Microsoft
Least privilege for AI agents with Microsoft Entra Agent ID (vendor guidance), Identity, Access, and Least Privilege (vendor guidance), Authorization in Microsoft Entra Agent ID (product-specific)

On source use: the Microsoft pages are vendor and product guidance and are labelled as such, with product-specific behaviour not generalized beyond that product. OWASP's Top 10 for Agentic Applications 2026 is used as a neighbouring risk framework for identity and privilege abuse, not as an authorization standard. RFC 8707 is used narrowly for explicit resource indication and audience restriction, with no implication that OAuth is required or sufficient. NIST SP 800-207 was considered and intentionally omitted, because its policy decision and enforcement terminology adds no claim this page needs beyond the generic architecture already described here. Related attack-side material is available in the attack library, including indirect prompt injection and persistent prompt injection.

Frequently Asked Questions

Is this just IAM for agents?

It builds on identity and access management but adds the agentic parts: two identities per action, model-proposed parameters, delegation across hops and re-authorization when execution-relevant facts change.

Can the model make the authorization decision if it is a strong model?

No. The point is not model quality, it is independence. A decision derived from the same content that may have been influenced is not an independent control.

Is an authenticated agent-to-agent call safe?

Authentication identifies the caller. The receiving component still has to evaluate the delegated scope and the initiating principal before performing a privileged action.

Does a broad approval like send email cover the message the agent composed?

It should not. Approval of intent is not authorization of parameters. The recipient, attachment and data source belong in the authorized request.

Is an orchestrator-side check enough?

Only for the orchestrator's own path. Where the target system is the real enforcement point, the request has to be authorized there too, with a credential scoped to that resource.

Does OAuth solve agent authorization?

No. Token mechanisms, including resource indicators from RFC 8707, help restrict audience and resource. They do not decide whether this principal may perform this action with these parameters.

What should happen when the initiating principal cannot be resolved?

Deny with a reason code. Completing missing security context from model-authored text turns an availability problem into an authorization bypass.

How does this differ from least privilege?

Least privilege determines how much authority exists at all. Authorization decides whether one concrete request may use it. Both are needed, and neither substitutes for the other.

Can an action be authorized and still blocked?

Yes, and that is correct behaviour. Information flow rules may deny sending particular data to a particular destination even when the operation itself is permitted.

What is the minimum useful telemetry?

One record per consequential action linking proposal, resolved context, decision with reason and policy version, approval if any, and execution result, keeping proposed, authorized, executed and succeeded distinct.

References

  1. Least privilege for AI agents with Microsoft Entra Agent IDMicrosoft Learn · GuidanceReviewed 2026-09-20
  2. Identity, Access, and Least PrivilegeMicrosoft Learn · GuidanceReviewed 2026-09-20
  3. Authorization in Microsoft Entra Agent IDMicrosoft Learn · Technical documentationReviewed 2026-09-20
  4. OWASP Top 10 for Agentic Applications 2026OWASP GenAI Security Project · GuidanceReviewed 2026-09-20
  5. RFC 8707 Resource Indicators for OAuth 2.0IETF · Standard · 2020-02Reviewed 2026-09-20
  6. LLM01:2026 Prompt InjectionOWASP GenAI Security Project · GuidanceReviewed 2026-09-20