Skip to content

Identity Overview

VeraID provides a unified control plane for managing every non-human identity (NHI) in your organization. An identity represents any automated actor that authenticates, accesses resources, or performs actions on behalf of your organization — from service accounts and API keys to autonomous AI agents and IoT endpoints.

NHI Types

VeraID classifies non-human identities into seven distinct types, each with purpose-built governance capabilities.

TypeDescriptionCommon Use Cases
SERVICE_ACCOUNTMachine-to-machine authenticationMicroservice communication, database access, internal API calls
API_KEYExternal API access credentialsThird-party integrations, partner access, public API consumers
OAUTH_TOKENOAuth application integrationsSSO-connected apps, marketplace integrations, delegated access
CI_CDDeployment pipeline identitiesGitHub Actions, GitLab CI, Jenkins, ArgoCD, Terraform runners
AI_AGENTAutonomous AI systems with budget controls and prompt injection detectionLLM-powered workflows, MCP tool servers, autonomous agents
IOT_DEVICEIoT device endpointsEdge sensors, embedded controllers, connected hardware
KUBERNETES_PODKubernetes workload identitiesPod service accounts, sidecar proxies, CronJob runners

Identity Fields

Every identity in VeraID carries a standard set of fields that drive policy evaluation, risk scoring, and audit logging.

FieldTypeDescription
idstringUnique identifier (UUID v4), assigned at creation
namestringHuman-readable display name
typeenumOne of the seven NHI types listed above
statusenumCurrent lifecycle state: ACTIVE, SUSPENDED, or REVOKED
descriptionstringFree-text description of the identity’s purpose
metadataJSONArbitrary key-value metadata (e.g., team, cost center, environment)
tagsstring[]Labels for filtering and grouping (e.g., production, critical)
allowedIPsstring[]IP allowlist for request origin validation (CIDR notation supported)
allowedOriginsstring[]Permitted HTTP origins for CORS-style enforcement
riskScorenumberDynamic risk score from 0 (low) to 100 (critical), auto-calculated
lastUsedAtdatetimeTimestamp of the most recent authenticated action
expiresAtdatetimeOptional expiration date; identity auto-suspends after this time
agentConfigJSONAI agent-specific configuration (budget limits, allowed models, MCP policies)
createdAtdatetimeTimestamp of identity creation
updatedAtdatetimeTimestamp of last modification

Example Identity Object

{
"id": "idt_8f14e45f-ceea-462a-a5e7-7b3e50a8b72c",
"name": "payment-processor",
"type": "SERVICE_ACCOUNT",
"status": "ACTIVE",
"description": "Handles payment gateway communication for the billing service",
"metadata": {
"team": "payments",
"costCenter": "ENG-042",
"environment": "production"
},
"tags": ["production", "pci-scope", "critical"],
"allowedIPs": ["10.0.0.0/16", "172.16.0.0/12"],
"allowedOrigins": [],
"riskScore": 12,
"lastUsedAt": "2026-03-19T08:42:11Z",
"expiresAt": null,
"agentConfig": null,
"createdAt": "2025-11-01T14:30:00Z",
"updatedAt": "2026-03-18T22:15:44Z"
}

AI Agent Configuration

Identities of type AI_AGENT support an agentConfig object with additional governance controls:

{
"agentConfig": {
"budgetLimit": 500.00,
"budgetPeriod": "monthly",
"budgetUsed": 127.43,
"allowedModels": ["gpt-4o", "claude-sonnet-4"],
"maxTokensPerRequest": 8192,
"promptInjectionDetection": true,
"mcpServers": ["database-readonly", "slack-notifications"],
"mcpToolPolicy": "allowlist"
}
}

Lifecycle States

Every identity follows a defined lifecycle with three states. Transitions are audited and trigger configurable notifications.

┌──────────┐ suspend ┌────────────┐ revoke ┌──────────┐
│ ACTIVE │ ───────────────► │ SUSPENDED │ ──────────────► │ REVOKED │
│ │ ◄─────────────── │ │ │ │
└──────────┘ activate └────────────┘ └──────────┘
│ ▲
│ revoke │
└────────────────────────────────────────────────────────────┘

ACTIVE

The identity is fully operational and can authenticate, access resources, and perform actions according to its assigned policies. All new identities start in this state.

SUSPENDED

The identity is temporarily disabled. All authentication attempts are rejected, and in-flight sessions are invalidated. Suspension is reversible — an administrator can reactivate a suspended identity, restoring it to ACTIVE status.

Common reasons for suspension:

  • Elevated risk score exceeding a policy threshold
  • Owner offboarding investigation
  • Scheduled maintenance window
  • Pending credential rotation

REVOKED

The identity is permanently decommissioned. All credentials are invalidated, policy bindings are removed, and the identity cannot be reactivated. Revocation is an irreversible terminal state.

Common reasons for revocation:

  • Owner has left the organization
  • Identity confirmed as compromised
  • Service or application permanently decommissioned
  • Compliance-driven cleanup of unused identities

What’s Next