Out-of-Bounds Access (Mission Governance at the PS)
Missions are immutable (§1279) and the resource never evaluates mission content — only the PS has the mission description, tool list, and log (§1193). Mission-level enforcement happens at the PS's token endpoint (§781, §1283, §1748). When an agent requests a scope that is inside its resource's policy but outside the approved mission, the resource still issues a resource token; the PS is the party that detects the mismatch, and per §797 responds with `202 + requirement=interaction` asking the user for consent. If the user declines, the agent must propose a new mission with a new s256.
Agent asks the resource for a resource token with scope="analytics:read", still referencing its original mission M1 (s256=R9kNpXeErMQ1Jvk_…).
The RESOURCE does not have the mission description or tool list — only the PS has those (§1193).
The resource evaluates against ITS OWN scope policy, decides analytics:read is a valid scope for analytics endpoints, and issues the resource token (§652).
The mission object {approver, s256} is stamped into the resource token as OPAQUE metadata — the resource does not judge whether the scope aligns with the mission's intent. That is the PS's job.
Step 1: POST /authorize (scope=analytics:read) + M1 → 200 resource token
Description (Markdown)
# Analyze Q2 Customer Feedback (Analytics Extension) Read customer feedback records and detailed analytics data to produce a comprehensive report.
Structured Fields
Approved Tools
Read customer feedback records
Read detailed analytics data
PS Capabilities
application/json
approver="https://ps.example"; s256="R9kNpXeErMQ1Jvk_vxYUp3YEdggmvUhksWtjXtcmnh0…
interaction, clarification
sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…
sig=("@method" "@authority" "@path" "signature-key" "aauth-mission");created=170…
sig=:AQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQIDAQI…
{
"scope": "analytics:read"
}Covered Components
Signature Base
Signature-Key Header
sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQrand0In0…"
Signature-Input Header
sig=("@method" "@authority" "@path" "signature-key" "aauth-mission");created=1700000000;alg="ed25519"
{"alg":"EdDSA","kid":"resource-key-1","typ"?:"aa-resource+jwt"}{"iss"?:"https://api.example","aud"?:"https://as.example","dwk"?:"aauth-resource.json","jti"?:"6cf12ea2-4a19-4b0d-9d91-1e7d4e0b3c15","agent"?:"aauth:local@agent.example","agent_jkt"?:"5j5WMuITu8-cV1RdClUeNgnSg3aLJpCYiFvzcwDgYhI","scope"?:"analytics:read","iat"?:1776222894,"exp"?:1776223494,"mission"?:{"approver"?:"https://ps.example","s256"?:"R9kNpXeErMQ1Jvk_vxYUp3YEdggmvUhksWtjXtcmnh0"}}