Identity for
AI Agents
Open protocol for AI agent authentication and authorization. Ed25519 cryptographic identity, OAuth 2.0 token exchange, scoped JWTs. No passwords. No API keys. No secrets to rotate.
The Problem
AI agents need API access. Current solutions are broken.
Shared API Keys
Static secrets that leak. No way to know which agent used the key. Can't scope per-agent. Rotation is manual and error-prone.
Borrowed User Tokens
Agent acts as the human. No audit trail for agent vs. human actions. Over-privileged — agent gets all of the user's permissions.
Service Accounts
One service account per agent doesn't scale. Credentials need rotation. No cryptographic identity — just username/password with extra steps.
AID: Identity is the Credential
With AID, the agent's Ed25519 keypair is its credential. No shared secrets. No passwords. No rotation schedules. The private key never leaves the agent's machine.
Ed25519 keypair = identity. Nothing to leak, nothing to rotate.
Every token identifies which agent requested it. Full accountability.
Role-based scopes. Each agent gets only the access it needs.
RS256 tokens work with any API, any gateway, any language.
How it Works
Three steps. No passwords. Standard OAuth 2.0.
Register
One-time setup. Admin registers the agent's public key with the auth server and assigns a role with scoped permissions.
--auth https://auth.example.com/acme \
--token eyJ... --role-id 2
Authenticate
Agent signs its identity document and proof of possession, sends them to the OAuth token endpoint.
--auth https://auth.example.com/acme
Token obtained (3600s)
Access APIs
Use the JWT with any API that validates tokens. Standard Bearer auth. Works with AWS Gateway, Cloudflare, nginx, anything.
Bearer $TOKEN" \
https://api.example.com/files
OAuth 2.0 Token Exchange Flow
Why AID?
Built for the $11B non-human identity market. Open, standards-based, cloud-agnostic.
No Shared Secrets
Ed25519 asymmetric crypto. Private key never leaves the agent. Nothing to leak, nothing to rotate.
Replay Protected
Proof of possession with timestamps. 5-minute validity window prevents replay attacks.
Role-Based Scopes
Each agent gets a role with specific permissions. Request only the scopes you need. Least privilege by default.
Multi-Server
One identity, many auth servers. Register with multiple APIs. Different roles, different scopes, same keypair.
Standard OAuth 2.0
Custom grant type on standard OAuth. RS256 JWTs. OIDC discovery. JWKS endpoints. Works with existing infrastructure.
Token Caching
Automatic local token cache. Scope-aware. 60-second buffer before expiry. Skip with --no-cache when needed.
Full Audit Trail
Every token request tracked. Agent address, timestamp, scope. Know exactly which agent did what, when.
Cloud Agnostic
Not tied to AWS, Azure, or GCP. Works with any OAuth 2.0 server. Open protocol, open source, MIT licensed.
The Protocol
AID extends OAuth 2.0 with a single custom grant type. Everything else is standard.
Agent Identity Document
A signed JSON document containing the agent's public key, address, and fingerprint. The agent signs it with its Ed25519 private key to prove ownership.
Proof of Possession
A timestamped challenge signed with the agent's private key. Proves the agent currently holds the key (not just a replay of a previous request). 5-minute validity window.
AID + AMP
The Agent Messaging Protocol provides the foundation:
- • Ed25519 keypair generation
- • Agent addresses (name@tenant.provider)
- • Fingerprints for identity verification
- • Cryptographic message signing
Agent Identity builds on AMP to add:
- • OAuth 2.0 token exchange (urn:aid:agent-identity)
- • Scoped RS256 JWT tokens
- • Role-based access control
- • Multi-server registration
Quick Start
Install in 30 seconds. Authenticate in 3 commands.
The Landscape
Non-human identity is an $11.3B market. Here's where AID fits.
| AID | Entra Agent ID | AWS AgentCore | API Keys | |
|---|---|---|---|---|
| Cloud Lock-in | None | Azure | AWS | None |
| Crypto Identity | Ed25519 | Certificates | IAM Roles | None |
| Secret Rotation | Not needed | Auto | Auto | Manual |
| Multi-Tenant | Native | Via Azure AD | Via IAM | Manual |
| Open Source | MIT | No | No | N/A |
| Price | Free | $$$/mo | $$$/mo | Free |
For Auth Server Implementers
Add AID support to your OAuth 2.0 server in four steps.
Add a POST /agent_registrations endpoint that accepts public keys, addresses, and fingerprints. Assign roles with scoped permissions.
Handle grant_type=urn:aid:agent-identity in your POST /oauth/token endpoint. Verify the signed identity and proof.
Verify the Agent Identity signature, check expiration, validate proof of possession timestamp, and match fingerprints against registrations.
Add urn:aid:agent-identity to grant_types_supported in your discovery document so clients can auto-detect support.