Skip to content

[ARAP] Broad-scope approval matching is deployment-defined. It breaks the primary AI agent use case across vendors. #517

@vatsalgupta

Description

@vatsalgupta

The spec's primary motivation is AI agents that discover
resources mid-task. The scenario is: an agent is running a task,
hits a resource it was never pre-authorized for, gets denied,
requests access, someone approves, and the agent proceeds.

The problem is what that approval actually covers.

Say the agent is building a renewal report and needs to read 50
CRM records. Each one is a separate resource. Under the
exact-match baseline, the approval for crm-record-001 covers
only crm-record-001. The agent has to go through the full
deny/request/approve cycle 50 times, once per record.

The spec acknowledges this and says broad-scope approvals fix it.
Approve "this agent can read all CRM records for 7 days" and the
agent is unblocked for the whole class. That is the value
proposition.

But then the spec says:

"Broader approvals... are where the broad-approval benefit
lives, but their matching is not portable across policy
engines."

This means two AuthZEN implementations decide for themselves
what "all CRM records" means, how it is represented on the wire,
and how the PDP checks whether a given evaluation falls within
it. If you build a PEP against one AuthZEN PDP and swap in a
different PDP from another vendor, broad-scope approvals stop
working.

This is especially a problem for independent PDP and ARS
deployments, which the spec explicitly supports. The ARS
approves a broad scope and encodes it in approval.state. With
no standard representation, a PDP from one vendor cannot
interpret an approval granted by an ARS from another.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions