The agent borrows the user's identity, scoped to the task
A service account with every permission is how an injected instruction turns into an incident. Exchange the user's token for one scoped to the task and pointed at a single downstream, and let that downstream enforce the user's own permissions.
grant_type=token-exchange subject=user actor=agent
audience=crm scope=contacts:readThen the audit log says who did what, through which agent. An auditor won't accept "the agent did it" as an entry.
ai-agentssecurity
Longer version: the post this came from.