RBAC vs TBAC
- RBAC (Traditional)
- TBAC (Devctrl)
Principle: “Who is this user, and what role were they assigned?”
- Access is based on the actor’s identity (role)
- Roles bundle static permissions — “Support Agent”, “Admin”
- Permissions persist as long as the role is assigned
- Works well for predictable, human workflows
Why RBAC breaks down for AI agents
AI agents are fundamentally different from human users:- Dynamic tasks — agents plan and execute multi-step workflows on the fly. Static roles can’t anticipate every combination of tools an agent might need.
- Over-provisioning — to avoid breaking agents, teams grant broad access. A “Support Agent” role might include tools the agent rarely uses, creating unnecessary risk.
- No task context — RBAC has no concept of what the agent is currently doing. It can’t scope permissions to a specific customer, ticket, or transaction.
- Audit gaps — you know the agent has the “Support” role, but you can’t prove it only accessed what it needed for a specific ticket.
How TBAC works in Devctrl
TBAC combines three concepts: identities, task sessions, and policies.-
Identity — the agent authenticates with a bearer token tied to an identity. The identity carries labels (like
team: support) but no broad permissions. -
Task session — when the agent begins a task, it creates a task session with specific context (like
customer_id: "cust_456"). The session returns a time-limited token. - Policy evaluation — on every tool call, the gateway evaluates CEL policies against the full context: identity labels, task context, and the requested tool. Only calls that match the policy are allowed.
Example: support agent refund
- Without Devctrl (RBAC)
- With Devctrl (TBAC)
TBAC doesn’t replace identity. It adds a task dimension to authorization decisions. The agent still authenticates with a credential — but what it can do depends on the task it’s performing, not just who it is.
Next steps
Identities
Learn how agent identities work — credentials, labels, and allowed tools.
Tasks
Define tasks with context schemas and scoped permissions.