What is an AZTP Identity?
An AZTP identity is a cryptographically-verifiable digital identity for agents—whether they are humans, services, or AI—based on open standards like SPIFFE (opens in a new tab). Each agent receives a unique, cryptographically-signed identity (SPIFFE ID, X.509 certificate, JWT, etc.) issued and managed by a trusted authority (such as astha.ai).
Key points:
- Every agent gets a unique, verifiable identity for secure authentication and authorization.
- Identities are based on open standards (SPIFFE, X.509, JWT) and can be verified, revoked, and linked to policies or other agents.
- This enables zero trust: every action is authenticated, authorized, and auditable.
For more details, see the SPIFFE documentation (opens in a new tab) and AZTP spec (opens in a new tab).
Note: Frederick Kautz, the author of AZTP, is a steering committee member of SPIFFE and a core contributor to SPIFFE. If you want to talk about AZTP with Fred, you can schedule a call here (opens in a new tab).
How to Issue an Identity with aztp-client
Follow these steps to issue a new agent identity using aztp-client:
- Login to astha.ai and obtain your API key.
- Initialize the aztp-client with your API key.
- Call
secureConnect
/secure_connect
with your agent object and a name to issue a new identity. - The client receives a cryptographically-signed identity (SPIFFE ID, certificate, etc.) for the agent.
Python Example
from aztp_client import Aztp
import os
# 1. Get your API key from astha.ai and set it as an environment variable
AZTP_API_KEY = os.getenv('AZTP_API_KEY')
# 2. Initialize the aztp-client
client = Aztp(api_key=AZTP_API_KEY)
# 3. Create your agent object (replace {} with your actual agent)
agent = {}
# 4. Issue an identity for your agent
secured_agent = await client.secure_connect(agent, "my-agent")
print("AZTP ID:", secured_agent.identity.aztp_id)
TypeScript Example
import aztp from "aztp-client";
// 1. Get your API key from astha.ai and set it as an environment variable
const AZTP_API_KEY = process.env.AZTP_API_KEY;
// 2. Initialize the aztp-client
const client = aztp.initialize({ apiKey: AZTP_API_KEY });
// 3. Create your agent object (replace {} with your actual agent)
const agent = {};
// 4. Issue an identity for your agent
const securedAgent = await client.secureConnect(agent, "my-agent");
console.log("AZTP ID:", securedAgent.identity.aztpId);
For advanced identity flows (parent/child, linking, revocation, etc.), see the blog example repo (opens in a new tab) and the AZTP documentation (opens in a new tab).