Your IAM system was designed for humans and services with predictable behavior. AI agents break that model. According to a 2025 SailPoint survey, 80% of organizations using AI agents have observed them acting unexpectedly or performing unauthorized actions. The problem isn't the agents—it's that your credential provisioning, policy evaluation, and audit trails assume deterministic workloads.
This guide walks you through implementing an IAM architecture that handles autonomous agent behavior while maintaining compliance with SOC 2 Type II and ISO 27001 control requirements.
The Problem: Why Static IAM Fails for AI Agents
Traditional IAM involves provisioning credentials, assigning static permissions, and auditing actions against known user identities. AI agents operate differently. They make real-time decisions about which APIs to call, which files to access, and which external services to integrate—often without explicit human approval for each action.
Your current system can't answer: "Did the agent access that database because Sarah requested it, or because the agent's model decided it was contextually relevant?" That dual-identity problem creates audit gaps that will fail your next SOC 2 Type II examination.
What You Need Before Starting
Technical prerequisites:
- Identity provider supporting OAuth 2.0 with custom claims (Okta, Auth0, Azure AD)
- Policy engine capable of runtime evaluation (Open Policy Agent, Cedar, or cloud-native options like AWS Verified Permissions)
- Centralized logging infrastructure (ELK stack, Splunk, or CloudWatch)
- API gateway or service mesh for request interception
Organizational prerequisites:
- Documented list of AI agents in production or planned deployment
- Clear ownership: who approves agent capabilities vs. who operates them
- Compliance requirements mapped to identity controls (ISO 27001 A.5.15-5.18, NIST 800-53 Rev 5 AC-2 through AC-6)
Baseline knowledge:
- How your current IAM system provisions credentials
- Where authorization decisions happen in your architecture
- Your audit log retention and analysis capabilities
Step-by-Step Implementation
Phase 1: Implement Delegation Tokens
MIT researchers have proposed delegation tokens that explicitly bind user, agent, and scope into a single verifiable artifact. Here's how to build this:
1. Extend your OAuth token structure
Add custom claims to your JWT tokens:
{
"sub": "agent-id-12345",
"delegated_by": "[email protected]",
"delegation_scope": ["read:customer_data", "write:reports"],
"delegation_context": {
"task_id": "quarterly-analysis-2024-q4",
"expires_at": "2024-12-31T23:59:59Z"
}
}
2. Configure your IdP to issue these tokens
In Okta, create a custom authorization server:
- Add custom claims mapping agent identity to human delegator
- Set token lifetime based on task duration
- Require explicit user consent for initial delegation
3. Modify your services to validate both identities
Your API endpoints must check:
- Is the agent identity valid?
- Does the delegating user have permission for this action?
- Is the requested operation within the delegation scope?
Phase 2: Build Context-Aware Policy Evaluation
Static role assignments won't work. You need runtime policy evaluation.
1. Define policies that consider agent behavior patterns
Using Open Policy Agent (OPA):
allow {
input.agent_id == data.registered_agents[_].id
input.delegated_by == data.users[user_id]
check_delegation_scope(input.action, input.delegation_scope)
not anomalous_behavior(input.agent_id, input.action)
}
anomalous_behavior(agent_id, action) {
recent_actions := data.agent_history[agent_id].last_100_actions
action_frequency := count([a | a := recent_actions[_]; a == action])
action_frequency > data.thresholds.max_repetitions
}
2. Deploy OPA as a sidecar or centralized service
For Kubernetes deployments:
apiVersion: v1
kind: ConfigMap
metadata:
name: opa-policy
data:
policy.rego: |
# Your policy definitions
---
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- name: opa
image: openpolicyagent/opa:latest
args:
- "run"
- "--server"
- "--config-file=/config/config.yaml"
3. Integrate policy checks into your request flow
Every API call from an agent should trigger:
- Token validation (cryptographic signature check)
- Policy evaluation (OPA query with full context)
- Decision logging (record the policy decision and inputs)
Phase 3: Implement Dual-Identity Audit Trails
Your audit logs must trace actions back to both the agent and the delegating user.
1. Structure your audit events
Required fields:
{
"timestamp": "2024-12-15T14:23:45Z",
"agent_id": "agent-12345",
"delegated_by": "[email protected]",
"action": "database.query",
"resource": "customers.payment_info",
"policy_decision": "allow",
"policy_version": "v2.3.1",
"context": {
"task_description": "Generate Q4 revenue report",
"data_accessed": ["customer_id", "transaction_amount"],
"agent_reasoning": "Required for aggregate calculations"
}
}
2. Configure retention for compliance
ISO 27001 A.8.15 requires evidence of authorization decisions. Set retention:
- 90 days hot storage for operational review
- 7 years cold storage for compliance (adjust for your regulations)
3. Build queries to answer compliance questions
You need to answer: "Show all customer data accessed by AI agents on behalf of Sarah in Q4 2024."
In your SIEM or log analysis tool:
delegated_by:"[email protected]"
AND timestamp:[2024-10-01 TO 2024-12-31]
AND resource:*customer*
| stats count by agent_id, action, resource
Validation: How to Verify It Works
Test 1: Delegation enforcement
Deploy a test agent without a delegation token. Attempt to access a protected resource. Expected result: 403 Forbidden with error "missing delegation token."
Test 2: Scope limitation
Create a delegation token with scope ["read:reports"]. Have the agent attempt write:customer_data. Expected result: 403 Forbidden with error "action outside delegation scope."
Test 3: Audit trail completeness
Perform a series of agent actions. Query your audit logs. Verify every action includes:
- Both agent and user identity
- Policy decision and version
- Sufficient context to understand the "why"
Test 4: Anomaly detection
Configure your policy to flag repetitive behavior. Have a test agent call the same API 100 times in one minute. Expected result: Policy denial after threshold exceeded.
Maintenance and Ongoing Tasks
Weekly:
- Review agent behavior anomalies flagged by policy engine
- Check for delegation tokens approaching expiration without renewal
- Audit new agent deployments against your approval process
Monthly:
- Analyze agent access patterns for privilege creep
- Update policy rules based on new agent capabilities
- Test delegation token revocation (simulated compromised user account)
Quarterly:
- Review and update delegation scopes as business needs change
- Audit compliance with ISO 27001 A.5.15-5.18 controls
- Validate audit log retention and retrieval for compliance reporting
As needed:
- When deploying new AI agents: create delegation framework before production access
- When agents exhibit unexpected behavior: immediate policy review and scope restriction
- When compliance requirements change: map new controls to your delegation and audit architecture
The key difference from traditional IAM: you're not managing static permissions. You're managing a dynamic relationship between human intent, agent capability, and runtime context. Your maintenance tasks should focus on keeping that relationship visible and controllable.



