Agent authentication SDK for secure service-to-service communication
Project description
Overview
Authed is an identity and authentication system built specifically for AI agents. As AI agents become active participants on the internet, they need secure, scalable ways to identify themselves and authenticate with each other across different systems and organizations.
Traditional authentication methods like OAuth and API keys were designed for human users and applications, forcing agents to rely on static credentials that don't scale with the dynamic nature of AI interactions. Authed solves this problem by giving agents their own identity.
Authed is a developer-first, open-source protocol that:
- Provides unique identities for AI agents
- Enables secure agent-to-agent authentication across different ecosystems
- Eliminates the need for static credentials
- Removes human bottlenecks from authentication workflows
- Dynamically enforces access policies between trusted entities
Quick start
Note: While Authed is open source, we currently only support our hosted registry (https://api.getauthed.dev). Self-hosted registries are possible but not officially supported yet.
1. Register as a Provider
Before installing Authed, register as a provider. Save your provider ID and secret - you'll need these for configuration. For detailed instructions, see our registration guide.
2. Install Authed
pip install authed
3. Generate keys
authed keys generate --output agent_keys.json
4. Initialize configuration
authed init config
This will prompt you for:
- Registry URL (https://api.getauthed.dev)
- Provider ID
- Provider secret
5. Create Your First Agent ID
authed agents create --name my-first-agent
Basic integration
Here's a minimal example using FastAPI:
from fastapi import FastAPI, Request
from authed import Authed, verify_fastapi, protect_httpx
import httpx
app = FastAPI()
# Initialize Authed
auth = Authed.initialize(
registry_url="https://api.getauthed.dev",
agent_id="your-agent-id",
agent_secret="your-agent-secret",
private_key="your-private-key",
public_key="your-public-key"
)
# Protected endpoint
@app.post("/secure-endpoint")
@verify_fastapi
async def secure_endpoint(request: Request):
return {"message": "Authenticated!"}
# Making authenticated requests
@app.get("/call-other-agent")
@protect_httpx()
async def call_other_agent():
async with httpx.AsyncClient() as client:
response = await client.post(
"http://other-agent/secure-endpoint",
headers={"target-agent-id": "target-agent-uuid"},
json={"message": "Hello!"}
)
return response.json()
Environment setup
Configure Authed using environment variables:
# Registry and agent configuration
AUTHED_REGISTRY_URL="https://api.getauthed.dev"
AUTHED_AGENT_ID="your-agent-id"
AUTHED_AGENT_SECRET="your-agent-secret"
# Keys for signing and verifying requests
AUTHED_PRIVATE_KEY="your-private-key"
AUTHED_PUBLIC_KEY="your-public-key"
Documentation
For more detailed documentation, visit our official documentation.
Why choose Authed?
Designed for agent interactions
Authed is built specifically for the way AI agents interact - dynamic, distributed, and requiring minimal human intervention.
Secure by design
Our protocol uses robust cryptographic signatures and verification mechanisms to ensure agents only interact with trusted entities.
Scalable identity
As your ecosystem of agents grows, Authed scales with you - no need to manage ever-growing lists of API keys or credentials.
Roadmap
We are working hard on new features!
- Self-hosted registries: Adding support and documentation for self-hosting registries
- Registry interoperability: Expanding registry to make them interoperable, allowing agents to authenticate across registries with the same ID
- Instance-based IDs: Adding support for instance-based identities
- Instance binding: Adding instance binding to agent IDs
- OpenID integration: Adding OpenID identity binding for end users
- Enhanced permissions: Expanding the permission engine to allow more fine-grained permissions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file authed-0.1.5.tar.gz.
File metadata
- Download URL: authed-0.1.5.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46105eecd0ca0805ea70a5a91da13443aff6cced4ef2c3fea90f9b6ac3302b25
|
|
| MD5 |
a9979c15248783c635a694e0d55f30d0
|
|
| BLAKE2b-256 |
0a6ae0271bb38bddb10efc6012e91e0585b424049c146544b0f7533863591be9
|
File details
Details for the file authed-0.1.5-py3-none-any.whl.
File metadata
- Download URL: authed-0.1.5-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e13f497e88914fd8e9a8941e08d96a27e51dd4b641a03470bd160a4041fbcff7
|
|
| MD5 |
2074d8e618f70831ee47f1ce4b4274d9
|
|
| BLAKE2b-256 |
b262d388fd984f8aedbb1cf6836d183aff1335859aa3344e8993ea6333f81773
|