Agent RBAC
Named, reusable roles as the governed authority source for your agents. Create a role once, assign it everywhere, edit it live, and route anything outside a role through an approval workflow — with recertification keeping every assignment accountable on a cadence you set.
The authority model
An agent with at least one active role assignment is role-governed. Its permitted scope set becomes:
- the union of its active roles’ scopes,
- plus live IdP entitlement delegations (unchanged from the delegation model — an entitlement counts only while the delegator still holds it),
- plus approved, unexpired scope exceptions,
- plus the credential’s enrollment-time scopes only if your organization’s manual scopes count policy is on. Off (the default) means roles are definitive: out-of-role authority requires an approved exception.
Three invariants hold everywhere: a role-governed agent is always in declared-scope mode (a role that resolves to zero scopes yields an empty permitted set, never unrestricted legacy behavior); an active JIT task’s required_scopes still takes wholesale precedence; and consumer-delegation and trading-mandate authority domains are untouched — roles govern workforce-agent surfaces only.
Role tiers
- Organization roles — your org’s shared vocabulary, created by admins or members holding the Role Admin role. Roles marked default are auto-assigned to every agent at onboarding.
- Operator roles — any member with a linked operator identity can package their own live IdP entitlements into per-purpose roles for the agents they anchor. Scopes are validated as held at creation (SCOPE_NOT_HELD otherwise) and live-filtered at every read: if the creator loses the underlying entitlement or is deactivated, the role’s grant lapses silently — it narrows, never widens.
Roles are live-mutable: edits apply on the next token mint or verification, and every change writes an append-only history entry (who, what scopes added or removed, why). Assignments require a written reason and revoke as a soft delete — the trail survives.
Scope exceptions
When a role-governed agent needs authority outside its roles, request an exception: POST /v1/agent-roles/agents/{agent_id}/exceptions with a scope, a justification, and an optional expiry. Admins and members holding the Agent Approver role decide (POST …/exceptions/{id}/decide; rejection requires a reason the requester sees). Approved exceptions join the permitted set until they expire or are revoked. Every step is audited, and decisions fire the agent.scope_exception_decided webhook.
Recertification
Set a recertification period in the RBAC policy and every role assignment must be re-confirmed on that cadence by an admin or a Role Manager (POST /v1/agent-roles/assignments/{id}/certify, reason required). Two enforcement postures:
- Advisory (default) — overdue assignments are flagged in the queue and audited; live authority is unaffected.
- Enforce — overdue assignments go inert: the agent loses those scopes at the next mint or verification (fail closed; the agent stays role-governed) until someone recertifies. The transition audits as agent_role_recert_suspended and fires agent.role_recert_suspended.
Delegated administration
Three org member roles, assignable from Team & Access, spread the work without spreading admin:
- Role Admin — creates and edits org-level role definitions.
- Role Manager — assigns and unassigns roles and runs recertification. Admins may restrict a manager to specific operators’ agents (PUT /v1/agent-roles/manager-scopes/{user_id}); an empty restriction set means org-wide.
- Agent Approver — decides scope-exception requests.
Org admins can do all of the above. An agent’s own operator can always assign existing roles to, and request exceptions for, the agents they anchor.
Org policy
- Require roles — agents without any role are flagged under advisory scope enforcement or refused (role_required) under block mode, at both verification and the token mint.
- Single vs multiple roles — restrict agents to exactly one role (assignment of a second returns MULTIPLE_ROLES_NOT_ALLOWED) or allow composition of narrow roles.
- Manual scopes count — see the authority model above. Off for definitive roles; on for a softer rollout.
- Recertification period + enforce — see Recertification.
Policy changes are admin-only, audited, and apply at the next mint or verification — the same kill-switch contract as every other governance surface.
Related: Agent Policy (restriction rules that compose on top of role grants), Concepts.