Skip to main content

Identities & Risk Scores

Concepts

Every developer and agent that connects through AIControls becomes a tracked identity. The Identities page shows who is active, their behavioral baseline, risk score, and token usage — giving you a clear picture of your AI estate.

Identity types

AIControls recognizes two identity types:

TypeDescription
DeveloperA human using an AI coding tool (Claude Code, Cursor, Copilot). Identified by email address from the OIDC token or PAT. Grouped by team.
AgentAn automated agent or CI pipeline. Identified by SPIFFE SVID, Kubernetes service account, or a named PAT. Labeled with the agent type (e.g. claude-code).

Identities are created automatically on first request — no manual enrollment required.

Verified identity

Every identity carries a verified flag, separate from its type. Verified means the identity was established cryptographically or by credential lookup — not just asserted:

Verification methodHow it's established
Kubernetes ServiceAccount / OIDC JWTThe bearer token's signature, issuer, and audience were validated against the cluster's OIDC/JWKS issuer
VirtualKeyA proxy-issued key was resolved via hash lookup to a known agent record

An identity is unverified in every other case: anonymous access, an identity built from unsigned JWT claims (passthrough validation), or any self-declared identity that was never checked against a signing key or key store. Unverified doesn't mean untracked — the identity still appears in the audit log and Identities page — it means the proxy took the caller's word for who it is.

By default AIControls lets unverified traffic through like any other identity. Administrators can flip on a stricter mode that hard-blocks any request from an unverified identity and records the attempt in the audit log (Policy: unverified-identity). This is a deployment-level setting — see Agent Identity for how to enable it and how it interacts with the identity validation mode.

Risk scores

Each identity carries a continuously updated risk score (0–100). The score reflects four signals over the last 7 days:

SignalWeight
Violation rate — requests denied or flagged by policyHigh
HITL rate — requests routed for human approvalHigh
Blast radius — breadth of resources accessed (files, repos, namespaces)Medium
Write-tool breadth — variety of write/mutate tools usedMedium

Identities are ranked on the Security Posture page. A rising score triggers an admin alert; a score above the configured threshold can trigger auto-pause when anomaly detection is enabled.

Behavioral baselines

AIControls builds a per-identity baseline over 7 days of observed activity: typical call rate, token volume, tool mix, and active hours. Once a baseline is established, deviations appear in the Anomalies feed and raise the identity's risk score.

A new identity shows Learning status until enough activity is observed. Established identities show Stable. Identities with recent significant deviations show Drifting.

Developer detail view

Click any identity to open its detail panel: token usage and cost, active sessions, recent audit events, the risk score trend, team membership, and issued PATs. Admins can set a per-developer budget override and add or revoke PATs directly from the panel.