Authorization Concepts
WL-APDP implements a novel Intent-Goal Authorization model designed specifically for AI agent ecosystems.
Traditional vs Intent-Goal Authorization
Traditional Authorization
Traditional authorization models like RBAC and ABAC answer: "Can this user perform this action on this resource?"
User Alice → Action: Read → Resource: Document123 → Allow/Deny
Intent-Goal Authorization
Intent-Goal Authorization extends this by considering the context of why an action is being performed:
Agent → Intent: Summarize sales data
→ Goal: Quarterly report generation
→ Action: Read
→ Resource: SalesDatabase
→ Allow/Deny
Core Concepts
Principal
The entity requesting authorization. In AI agent ecosystems, this is typically:
- User: The human who initiated the agent task
- Agent: The AI agent performing the action
- Service: A backend service acting on behalf of agents
Action
The operation being performed:
read,write,delete- Standard CRUD operationsexecute- Running tools or functionsdelegate- Granting permissions to other agents
Resource
The object being accessed:
- Documents: Files, databases, APIs
- Tools: MCP servers, functions
- Agents: Other AI agents (for delegation)
Intent
The immediate purpose of the action. Examples:
- "Summarize this document"
- "Query customer data"
- "Send notification email"
Intents are typically provided by the agent and validated against allowed patterns.
Goal
The broader objective the action serves. Examples:
- "Generate quarterly report"
- "Handle customer support ticket"
- "Perform security audit"
Goals establish the business context for authorization decisions.
Delegation Chain
A chain of trust showing how permissions were delegated:
Admin Alice → Agent Coordinator → Research Agent → Tool Agent
Each link in the chain must be authorized. This ensures:
- Agents can only act within their delegated scope
- Actions are traceable to the original authorizer
- Permissions don't escalate through delegation
Authorization Flow
┌─────────────────────────────────────────────────────────────┐
│ Authorization Request │
│ Principal: User::"alice" │
│ Action: Action::"read" │
│ Resource: Document::"quarterly-report" │
│ Context: │
│ intent: "summarize financial data" │
│ goal: "quarterly earnings call preparation" │
│ delegation_chain: ["alice", "finance-agent"] │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 1: Delegation Chain Validation │
│ - Verify each delegator had permission to delegate │
│ - Check delegation didn't exceed scope │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 2: Intent Validation │
│ - Check intent matches allowed patterns │
│ - Verify intent is consistent with action │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 3: Goal Validation │
│ - Verify goal is permitted for this principal │
│ - Check action is appropriate for goal │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 4: Policy Selection & Evaluation │
│ - Select applicable policies based on metadata │
│ - Evaluate Cedar policies │
│ - Return decision (Allow/Deny + reasons) │
└─────────────────────────────────────────────────────────────┘
Policy Evaluation
Intelligent Policy Selection
Before evaluating policies, WL-APDP filters to only applicable policies:
- Principal Match: Policy applies to this principal type
- Action Match: Policy covers this action
- Resource Match: Policy applies to this resource type
- Context Match: Required context fields are present
This achieves 20-30x performance improvement over evaluating all policies.
Cedar Evaluation
Selected policies are evaluated using the Cedar engine:
permitpolicies grant accessforbidpolicies deny accessforbidtakes precedence overpermit- No matching policies = default deny
Example Request
{
"principal": "User::\"alice\"",
"action": "Action::\"read\"",
"resource": "Document::\"financial-report-2024\"",
"context": {
"intent": "summarize Q4 financial data",
"goal": "prepare earnings call materials",
"delegation_chain": [
{"from": "User::\"alice\"", "to": "Agent::\"finance-assistant\""}
]
}
}
Example Response
{
"decision": "allow",
"reasons": [
{
"policy_id": "finance-read-policy",
"description": "Finance team members can read financial documents"
}
],
"diagnostics": {
"policies_evaluated": 3,
"policies_applicable": 1,
"evaluation_time_ms": 2
}
}
Next Steps
- Cedar Syntax - Learn to write Cedar policies
- Policy Examples - See real-world examples
- API Reference - Integrate with your agents