Skip to main content
Blog · Concepts · April 2026

What is pre-action authorization?

The short version: sessions and scopes authorize the actor. Pre-action authorization authorizes the action — the exact destination, the exact amount, the exact parameters — before execution.

The shape of the problem

Most authorization systems answer one question: is this caller allowed to do things in this category? A user with a valid session and the right role can transfer funds. An AI agent with a valid OAuth token and the right scope can call the wire-transfer tool. The system says yes.

That answer was good enough when the gap between "decided to act" and "acted" was a human pressing a button. It is not good enough when the actor is an autonomous program that can be steered — by a prompt-injected document, by a compromised data source, by a malformed model response — into actions the human never authorized. The session was real. The scope was real. The action was not.

What pre-action authorization adds

Pre-action authorization asks a sharper question: was this exact action — these arguments, this destination, this amount — approved by a named human, and is the approval still valid?

That requires four things the older systems don't typically produce together:

  • Action binding. The authorization names the exact parameters of the action. A captured authorization for "wire $1,000 to Acme" cannot authorize "wire $50,000 to Acme" or "wire $1,000 to a different account."
  • Authority chain. The authorization records who held the authority, where it came from, and which policy it was issued under — pinned at request time so later policy changes don't retroactively legitimize past actions.
  • Named signoff. A human principal signs off explicitly. Not "the user is logged in." A signature, by name, over the bound action context.
  • Verifiable evidence. What emerges is a self-verifying receipt — checkable offline, by an auditor with no access to the issuing system.

Where it matters

The places where pre-action authorization earns its weight are the places where the cost of an unauthorized action is unrecoverable — not just unwanted:

  • Wire transfers, ACH releases, treasury operations.
  • Beneficiary changes, vendor bank-account updates, payment-destination rewrites.
  • Production deployments, infrastructure changes, IAM permission changes.
  • Bulk data exports, cross-tenant reads, anything that touches PII.
  • Government benefit disbursements, caseworker overrides, claim approvals.
  • Any AI-agent-issued action where prompt injection has a meaningful blast radius.

What it does not replace

Pre-action authorization is a layer, not a replacement. It assumes you already have:

  • Authentication (so you know who is asking).
  • Session and scope authorization (OAuth 2.1, OIDC, MCP authorization, IAM roles).
  • Audit logs (for forensics and detection).

What it adds is the missing question between authorization and execution: not can you do it, but did a named human authorize the specific thing you are about to do?

See it work

EMILIA Protocol is an open protocol implementation of pre-action authorization. Its models are formally analyzed — 26 TLA+ invariants checked by TLC and 35 Alloy facts — and the reference runtime is Apache 2.0.

Read the protocolTry the live demo
What Is Pre-Action Authorization?