The Rule
When an agent gets a token, its effective permissions are the intersection of three sets:orders:write but the user only consented to products:read and cart:write. So the effective token does not include orders:write.
Why Three Sets?
| Set | Who controls it | What it means |
|---|---|---|
| Agent-Approved | Service operator | ”I’ve reviewed this agent. It’s allowed these capabilities.” |
| User-Consented | End user | ”I trust this agent with these specific permissions on my data.” |
| Requested | Agent (per-request) | “For this task, I only need these scopes.” |
- A malicious agent can’t get scopes the service didn’t approve
- A user can’t be tricked into granting more than the service allows
- An agent can request less than its maximum (principle of least privilege)
What Happens When the Intersection Is Empty?
Token issuance fails. The agent gets aSCOPE_NOT_APPROVED error.
The agent requested orders:write but was only approved for products:read. No overlap → no token.