ROOTVIELROOTVIEL

Scenario 6

Preview — execution disabledAgentic architectureIntermediate

Agent Authorization & Policy Enforcement

An agent can propose any action; a deterministic boundary decides what is allowed to happen.

The central safety principle of an agentic system is that reasoning is not authorizing. A model may plan, argue and conclude that an action is a good idea — but whether that action is permitted to take effect is decided elsewhere, by a deterministic policy that sits outside the model and cannot be talked out of. This scenario is a static architectural walkthrough of that boundary: how a proposed action is checked against policy, permissions and an authorization context before anything happens, and how every decision is recorded.

No action is executed anywhere in this preview. The "actions" are synthetic proposals, and the approvals and denials are illustrative verdicts from a deterministic rule set.

Honesty

Separating the proposer from the authorizer is what makes prompt injection, a confused-deputy mistake or a simply over-eager plan contained by design: the worst a compromised reasoner can do is propose. It cannot grant itself permission.

Preview Mode — Execution Disabled

This laboratory is currently available for architectural exploration and educational demonstrations only. Live agent execution and security testing are disabled. Operational access requires prior explicit authorization from RavenRootviel.

Architecture

Components and flows

The agents, services, verifiers, policy engines and evidence stores in this scenario, and how they connect. Drag to pan, scroll to zoom, and select any component for its role, inputs and outputs.

Agent Authorization & Policy Enforcement — architecture
proposesholds?APPROVEDENYAGENTProposing AgentSERVICEAuthorizationContextVERIFIERCapability VerifierPOLICY ENGINEPolicy EngineSERVICEApproved actionSERVICEDenied actionEVIDENCE STOREAudit log
Filter
Data / control flowAuthorization checkBlocked / neverWrites evidence

Agents

Agents and responsibilities

Each agent has a narrow responsibility, explicit inputs and outputs, and — crucially — its own authorization posture. Reasoning is never authorization.

Proposing Agent

Plans toward the task and emits proposed actions (tool calls, writes, external messages) with their arguments and a justification. It never executes.

Inputs
Task · Working context
Outputs
Proposed action + justification
Tools
Planner (reasoning)
Authorization
None. The proposer holds no capability to cause side effects; it can only request them.
Verification
Its justification is advisory; the authorization decision does not depend on it.
Possible failures
May propose an unsafe or out-of-scope action — this is expected and is exactly what the policy boundary contains.

Authorization Context Assembler

Gathers the facts the decision depends on: the acting principal, the delegation chain and its scope, the resource, and the current policy version.

Inputs
Proposed action · Principal / delegation token · Resource descriptor
Outputs
Authorization context (who, what, on what, under which scope)
Tools
Capability / token reader (deterministic)
Depends on
proposer
Authorization
Read-only; assembles facts, decides nothing.
Verification
Scope is read from signed, short-lived credentials rather than inferred.
Possible failures
Missing or expired credential — fails closed (treated as no authority).

Capability Verifier

Deterministically checks that the principal actually holds a capability covering this action on this resource, that the delegation scope has not been exceeded, and that the capability has not been revoked or expired.

Inputs
Authorization context
Outputs
Capability check result (holds / does not hold)
Tools
Attenuation / scope checker
Depends on
context
Authorization
Enforces the capability model; it is part of the boundary.
Verification
Pure function of (capability, action, resource); reproducible.
Possible failures
Over-broad capability issued upstream — a provisioning error, caught in capability review and visible in the audit log.

Policy Engine

Applies the explicit, deterministic policy to the full authorization context and the capability result, returning APPROVE or DENY with the rule that decided it. Deny by default.

Inputs
Authorization context · Capability check result
Outputs
APPROVE / DENY + deciding rule · Audit record
Tools
Deterministic rule engine
Depends on
context · capcheck
Authorization
This is the authorization boundary.
Verification
Decision is reproducible and logged with the deciding rule and inputs.
Possible failures
Policy misconfiguration — surfaced by the audit trail and policy tests, never by relaxing the engine for a demo.

Workflow

Processing and decisions

The ordered path from input to recorded decision.

  1. 1

    Propose

    The agent emits a proposed action with arguments and a justification. Nothing is executed.

  2. 2

    Assemble authorization context

    The principal, delegation scope, resource and policy version are gathered from signed credentials and descriptors — not inferred from the model’s text.

  3. 3

    Verify capability

    A deterministic check confirms the principal holds an in-scope, non-revoked, unexpired capability for this exact action on this resource.

  4. 4

    Decide under policy

    The policy engine returns APPROVE or DENY with the deciding rule. Deny by default; anything not explicitly permitted is refused.

  5. 5

    Record and route

    The verdict and its full context are logged. An approved action would be dispatched to an executor (disabled here); a denied one is returned to the agent with a reason.

Example execution

Walk through an illustrative trace

A synthetic, predefined sequence — step forward and back to see what each component does, the evidence it produces and the decisions taken. This is a conceptual/synthetic trace, not an executed experiment, and it cannot be run live in this preview.

Step 1 / 5 · Proposing Agent

Synthetic trace

Action proposed

To "clean up stale data", the agent proposes delete_records(table="audit_log", where="age > 30d"). It attaches a justification.

Synthetic trace · not executed

Evidence

Evidence in this scenario

What is recorded, of what kind, with what integrity property and from where. Demonstrative data — not cryptographic evidence of a real system.

Capability check result

Deterministic result

Integrity: Pure function of capability + action + resource

Provenance: Capability Verifier

Authorization context

Assembled facts

Integrity: Scope read from signed, short-lived credentials

Provenance: Authorization Context Assembler

Decision audit record

Audit log entry (synthetic)

Integrity: Append-only in a real deployment; demonstrative here

Provenance: Policy Engine

Security controls

Authorization, validation and containment

The mechanisms that make the scenario safe by design, independent of what any model concludes.

Reasoning is not authorizing

The proposer cannot cause effects; only the policy engine can approve an action, and it is deterministic.

Capability-based, least privilege

A principal can only act within a signed, attenuated, revocable capability scope.

Deny by default

Anything not explicitly permitted by policy is refused.

Complete, tamper-evident audit

Every proposal and verdict is logged with the deciding rule and the inputs it saw.

Failure conditions

What can go wrong — and the expected behaviour

Honest failure modes and the containment or recovery that keeps a failure from becoming an unauthorized effect.

Compromised or injected reasoner

The proposing agent is manipulated into proposing a harmful action.

Recovery
Contained by design — the proposal is denied at the boundary; the worst case is a logged, refused attempt.

Expired / missing credential

The delegation token is absent or expired.

Recovery
Fail closed: treated as no authority, action denied.

Over-broad capability issued upstream

A provisioning mistake grants more scope than intended.

Recovery
Caught in capability review; visible in the audit log; never worked around by loosening the engine.

Technical notes

Design considerations, limitations and references

  • All actions here are synthetic proposals; nothing is executed and no executor is connected in this preview.
  • The separation of proposer and authorizer is the same property demonstrated, at the prompt level, in the Prompt Injection scenario and the in-browser Prompt Injection Lab.
  • Capability attenuation, delegation chains and revocation are covered in depth in the Academy (Cryptographic delegation).

References

  • OWASP Top 10 for LLM Applications — LLM08: Excessive Agency
  • ROOTVIEL Academy — Cryptographic delegation (principal/delegate, scope attenuation, revocation)
  • ROOTVIEL Knowledge Base — Insecure agent delegation & the confused deputy

Try this lab

Run it — coming soon

Interactive execution of this scenario is not part of the preview. When it is enabled, it will run on controlled, authorized scenarios only.

Execution disabled

Live execution is not available in this preview. Access will require explicit authorization from RavenRootviel.

Authorized Access Only — Live Security Testing

Live security testing and agent execution require prior explicit authorization from RavenRootviel. The current preview provides educational content and non-operational demonstrations only. Browsing the educational content is public; operational use of the labs will require express authorization when it is enabled in a later phase. Access & use policy.