---
title: "Auth0 for AI Agents is Now Generally Available (GA)"
description: "Build secure AI agents with Auth0, the complete authentication and authorization solution."
authors:
  - name: "Gareth Davies"
    url: "https://auth0.com/blog/authors/gareth-davies/"
date: "Nov 19, 2025"
category: "Announcements"
tags: ["ai", "ai agents"]
url: "https://auth0.com/blog/auth0-for-ai-agents-generally-available/"
---

# Auth0 for AI Agents is Now Generally Available (GA)

<style>
    
  /* Increases spacing between bullet points */   
    li {padding-bottom: .7em; }

  /* Hides Disqus module */
  #disqus_thread {display: none;}

  /* Style a table. Add borders, center table, and reduce font size. */
  table {
    width: 95%;
    margin: 1.4rem auto !important;
    border-collapse: collapse;
    font-size: .9em;
  }
  table, td, th {
    border: 1px solid;
  }
  table th {
    line-height: normal;
    padding: .6em;
    font-size: 1.1em;
  }
  td {
    padding: .6em;
    line-height: normal;
  }
  table code { font-size: .7em !important; }

</style>

TL;DR: [Auth0 for AI Agents](https://auth0.com/ai) is now available in GA\! Connect your AI agents to apps and data more securely, give users control over the actions AI agents can perform and the data they can access, and enable human confirmation for critical agent actions. [Start building today](https://auth0.com/signup?onboard_app=auth_for_aa&ocid=701KZ000000cXXxYAM-aPA4z0000008OZeGAM).

## The Challenge: Build Powerful AI Agents without Sacrificing Security 

As your teams move quickly to build AI agents, it’s essential to strike a balance between speed and precision. Today, the easiest way to get up and running is to use an AI agent framework and have your AI agents use hard-coded credentials or API keys. When doing this, you'll find that this is only suitable for development and testing, not for taking your AI agents to production. This approach is flawed because it not only grants AI agents more access than necessary, but it also lacks the essential authentication solution needed for robust security. This leaves substantial, unaddressed gaps outside the scope of the framework:
* How will your AI agents identify your users and securely connect to their apps and APIs?
* How do you maintain agent oversight and build in human approval for critical actions?

Failure to properly address these challenges and set specific agent access parameters to actively safeguard user data can quickly turn your AI agents into a significant liability.

##The Solution: Auth0 for AI Agents \— The Complete Auth Solution for AI Agents

[Auth0 for AI Agents](https://auth0.com/ai) provides a secure foundation for developers to build AI agents without compromising security or innovation. This complete solution securely connects your AI agents to apps and data, applying the correct user permissions in every scenario. If you’re building AI agents, we allow you to:

* Identify the user interacting with the agent.  
* Give the AI agent access to the user’s data that you have.   
  * For example, their chat history, preferences, or previous orders.  
* More securely connect to applications on behalf of that user.   
  * For example, checking their calendar and scheduling an appointment, sending an email, or booking a ticket.  
* Give your users control \— at the appropriate moment in the agent workflow \— to approve critical actions, such as sending a document or allowing a purchase.  
* Enforce fine-grained data access based on user permissions by setting specific access parameters for your AI agents to better safeguard user data. 

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/62qdnMvhTwtykWSaa4lxxR/6d53a0c21f99a932f33127d55f7c02e3/MurtazaKhomusi.png" alt="Murtaza Khomusi Head of Product Marketing" style="width:60%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

## How Auth0 for AI Agents Can Support Your Use Case

Auth0 for AI Agents comprises four features you can use for B2B, B2C, and internal apps: User Authentication, Token Vault, Asynchronous Authorization, and FGA for RAG. 

## User Authentication: Enable a More Secure Login Experience for AI Agents 

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/22Jx9bxdlT2nt0FMh78PBX/63f0b1f81f92f45e358f1664b37122fb/UserAuthentication.png" alt="Auth0 for AI Agents - User Authentication" style="width:55%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

More secure and scalable [User Authentication](https://auth0.com/ai/docs/intro/user-authentication) enables security, protects data, and controls access to features, while giving your agent secure access to first-party APIs. An example use case is a customer support AI agent working with a customer. Once the user logs in, user authentication enables the agent to identify the user and their order history. 

```python
@router.get("/protected")
def protected_route(auth_session=Depends(auth0_client.require_session)):
    user = auth_session.get("user")
    if not user:
        return {"error": "User not authenticated"}
    return {
        "message": f"Hello {user.get('email')}!",
        "user_id": user.get("sub")
    }
```

```javascript
export default async function Home() {
  const session = await auth0.getSession();

  if (!session) {
    return (
      <main>
        <a href="/auth/login?screen_hint=signup">Sign up</a>
        <a href="/auth/login">Log in</a>
      </main>
    );
  }

  return (
    <main>Welcome, {session.user.name}!</main>
  );
}
```

## Token Vault: More Securely Connect to 3rd-Party APIs 

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/4H3mIrqtPe2JAfpNqklAc9/2cab75fb70bdf9c5345508f18ce75d91/TokenVaultRequest.png" alt="Auth0 for AI Agents - Token Vault request" style="width:55%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

[Token Vault](https://auth0.com/features/token-vault) is a secure, centralized authorization layer that integrates your AI agents with third-party APIs and external systems, such as Google Drive, Jira, or Slack. Auth0 helps secure credentials to these external systems by automatically storing, managing, and refreshing OAuth tokens, ensuring sensitive data and credentials are never at risk or stored within your agent’s logic. At the same time, you can control which agents can access which third-party systems. Token Vault allows AI agents to act seamlessly on behalf of the end-user, who provides consent only once, making it a secure and simple solution for connecting integrated apps and any OAuth service.

An example internal use case is building a productivity AI agent that requires access to GitHub and Slack. Empower your AI agent to take actions with  [35+ supported app integrations](https://auth0.com/ai/docs/integrations/overview) and connect to any other app via standard OAuth support. 

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/6d4lZrsxrKjAyLI8Wudgbi/cf5a9c1d0ee759984890428a939d9dd9/ProductivityAIAgentOAuthSupport.png" alt="Auth0 for AI Agents - Token Vault request" style="width:95%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

```python
with_slack_connection = auth0_ai.with_token_vault(
    connection="sign-in-with-slack",
    scopes=["channels:read"],
)

@tool
def list_channels_tool_function(date: datetime):
    # Get the access token from Auth0 AI
    access_token = get_access_token_from_token_vault()

    # Call Slack SDK
    client = WebClient(token=access_token)
    response = client.conversations_list(
        exclude_archived=True,
        types="public_channel,private_channel",
        limit=10
    )
    channels = response['channels']
    channel_names = [channel['name'] for channel in channels]
    return channel_names

list_slack_channels_tool = with_slack_connection(StructuredTool(
    name="list_slack_channels",
    description="List channels for the current user on Slack",
    args_schema=EmptySchema,
    func=list_channels_tool_function,
))
```

```javascript
export const withSlackConnection = auth0AI.withTokenVault({
  connection: 'sign-in-with-slack',
  scopes: ['channels:read'],
});

export const listChannels = withSlackConnection(
  tool({
    description: "List channels for the current user on Slack",
    parameters: z.object({}),
    execute: async () => {
      // Get the access token from Auth0 AI
      const accessToken = getAccessTokenFromTokenVault();

      // Call Slack SDK
      const web = new WebClient(accessToken);

      const result = await web.conversations.list({
        exclude_archived: true,
        types: "public_channel,private_channel",
        limit: 10,
      });

      return result.channels?.map((channel) => channel.name);
    },
  })
);
```

## Asynchronous Authorization: Enable Human-in-the-Loop Approval for Critical Actions  

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/4Y1u2lPA15PQVzJxCw7SLB/6a44f5e25bc567d424d0f4e465d6b58b/HumanInTheLoop.png" alt="Auth0 for AI Agents - Human in the Loop" style="width:55%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/3iKpj4iGca7GjNOAMrWUfX/bacb065ea72bd07416f2e521e09a95c7/HumanInTheLoopAuth0Flow.png" alt="Auth0 for AI Agents - Human in the Loop flow" style="width:85%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

Auth0 for AI Agents enables AI agents to [asynchronously authorize](https://auth0.com/ai/docs/get-started/asynchronous-authorization) users using the [Client-Initiated Backchannel Authentication Flow (CIBA)](https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow). AI agents can work in the background, only notifying the user when needed for critical actions.

When you add more secure [human-in-the-loop approvals](https://auth0.com/blog/secure-human-in-the-loop-interactions-for-ai-agents/) to your AI agent workflows, you can use Auth0 to request the user’s permission to complete an authorization request. The AI agent can render [rich authorization data](https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-initiated-backchannel-authentication-flow/user-authorization-with-ciba) in the consent prompt so the user knows exactly what they’re authorizing. 

An example use case is a user requesting that your AI agent make a purchase online, but the agent requires confirmation to complete the transaction. Even if the AI agent wanted to purchase the product, it does not have permission to do so on its own, because it doesn’t have user authorization. We only issue the token to the agent to perform an action on the user’s behalf when the user approves the transaction. This means that your users remain fully in control.

```python
with_async_user_confirmation = auth0_ai.with_async_authorization(
    audience=settings.SHOP_API_AUDIENCE,
    binding_message=lambda product: f"Do you want to buy {product}",
    user_id=get_user_id(config),
)

@tool
async def shop_online_fn(product: str):
    """Tool to buy products online."""

    credentials = get_async_authorization_credentials()

    async with httpx.AsyncClient() as client:
        response = await client.post(
            API_URL,
            headers={
                "Authorization": f"Bearer {credentials['access_token']}",
            },
            json={ "product": product },
        )

    return response.json()
```

```javascript
export const withAsyncAuthorization = auth0AI.withAsyncAuthorization({
  userID: async () => await getUser(),
  bindingMessage: async ({ product }) => `Do you want to buy ${product}`,
  audience: process.env['API_AUDIENCE']!,
});

export const shopOnlineTool = withAsyncAuthorization(tool({
    description: 'Tool to buy products online',
    parameters: z.object({ product: z.string() }),
    execute: async (params) => {
      const credentials = getAsyncAuthorizationCredentials();

      const response = await fetch(API_URL, {
        headers: {
          Authorization: `Bearer ${credentials?.accessToken}`,
        },
        body: JSON.stringify(params),
      });
      const result = await response.json();
      return result;
    },
  }));
```

*Push notifications with Guardian are available now. Email and SMS channels are coming soon*.

## Fine-Grained Authorization for Retrieval Augmented Generation (FGA for RAG): Safeguard User Data and Prevent Leaks  
<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/2sTRh29wqG3mMNN9pdxtyu/1566bf2bb890013114fa6757963c6e19/FGAForRAG.png" alt="Auth0 for AI Agents - FGA for RAG" style="width:50%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

Auth0 for AI Agents enables AI agents to implement [fine-grained authorization for Retrieval Augmented Generation (RAG](https://auth0.com/ai/docs/get-started/authorization-for-rag)), also known as FGA for RAG. When AI agents use RAG to deliver sophisticated, relevant responses to user queries, they only have access to authorized data.

An example is a GTM sales AI agent that searches company documents for competitor intel and analysis on how to pitch. The AI agent quickly searches all documents and gives your sales team direct, immediate answers. While it’s a great capability, you need to ensure that users only receive answers from documents they have access to, rather than all company documents. Looking under the hood at the code:

1. Query the Vector DB to find the most semantically relevant document embeddings to the question. The source documents will already be indexed and stored in the Vector DB.  
1. Filter the results using FGA, where the raw results from the Vector DB are checked against FGA database for permissions, and only the documents that are permitted for the user are returned back to the agent.

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/56PTFju0G6STQO11EA41Tv/b505b76d5f64a121eb13fc06fab8d9ea/GTMSalesAgent.png" alt="Auth0 for AI Agents - GTM sales agent example" style="width:85%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

[Fine-Grained Authorization](https://docs.fga.dev/) enables you to model complex permission structures, such as those involving document access, where users have various permission levels (view, comment, edit, or share). Additionally, users can belong to multiple groups, from which they inherit permissions. Fine-Grained Authorization is scalable and performant in complex permission situations with large amounts of documents. Use [FGA for RAG](https://auth0.com/blog/rag-and-access-control-where-do-you-start/) as the security layer with knowledge assistant-type AI agents to enforce document permissions during searches.

```python
@tool
def get_context_documents_tool(query: str):
    """Use the tool when user asks for documents"""
    retriever = FGARetriever(
        retriever=vector_store.as_retriever(),
        build_query=lambda doc: ClientBatchCheckItem(
            user=f"user:{user_email}",
            object=f"doc:{doc.metadata.get('documentId')}",
            relation="can_view",
        ),
    )
    documents = retriever.invoke(query)
    return "\n\n".join([document.page_content for document in documents])
```

```javascript

export const getContextDocumentsTool = tool(
  async ({ question }) => {
    const user = await auth0.getUser();
    const retriever = FGARetriever.create({
      retriever: vectorStore.asRetriever(),
      buildQuery: (doc) => ({
        user: `user:${user?.email}`,
        object: `doc:${doc.metadata.documentId}`,
        relation: 'can_view',
      }),
    });

    const documents = await retriever.invoke(question);
    return documents.map((doc) => doc.pageContent).join('\n\n');
  },
  {
    name: 'get_context_documents',
    description: 'Use the tool when user asks for documents',
    schema: z.object({ question: z.string() }),
  },
);

```

## Start building with your favorite frameworks

<picture>
<img src="https://images.ctfassets.net/23aumh6u8s0i/5fBzIuKFo6ybrYMA1sXC0j/435c406cf243fecc42bf77b34b5c0fce/Auth0AIAgentsFrameworks.png" alt="Auth0 for AI Agents frameworks" style="width:95%; margin: 1em auto; border: solid black 0px; border-radius: 0px;">
</picture>

These SDKs make it fast and easy to integrate Auth0 with your AI agents using frameworks such as [LangChain](https://www.langchain.com/), [LlamaIndex](https://www.llamaindex.ai/), and [Cloudflare Agents](https://agents.cloudflare.com/), and others. 

Our SDKs detect when your tool calls require the user to authenticate and will interrupt the tool call flow, displaying a message to the user indicating they need to authenticate. Once the user authenticates, the tool call automatically resumes. The SDKs use Auth0’s [Token Vault](https://auth0.com/features/token-vault), which stores the user’s access token to the external API. This means that on subsequent tool calls, the user will not need to authenticate again because Token Vault will automatically provide the access token.

Check out, [Assistant0: An AI Personal Assistant Secured with Auth0](https://github.com/auth0-samples/auth0-assistant0/tree/main). It’s an AI personal assistant that consolidates your digital life by dynamically accessing multiple tools to help you stay organized and efficient.

* [LangChain \+ JavaScript](https://github.com/auth0-samples/auth0-assistant0/tree/main/ts-langchain)  
* [LangChain \+ Python](https://github.com/auth0-samples/auth0-assistant0/tree/main/py-langchain)  
* [LlamaIndex \+ JavaScript](https://github.com/auth0-samples/auth0-assistant0/tree/main/ts-llamaindex)  
* [Vercel AI \+ JavaScript](https://github.com/auth0-samples/auth0-assistant0/tree/main/ts-vercel-ai)

Auth0 AI for [LangChain](https://www.langchain.com/): Auth0 for AI Agents, LangChain, and LangGraph SDKs enable you to easily integrate with and secure AI agent workflows using LangChain and LangGraph. [Get started \>\>](https://github.com/auth0/auth0-ai-js/tree/main/packages/ai-langchain)

```javascript
npm install @auth0/ai-langchain
```

```python
pip install auth0-ai-langchain
```

Auth0 AI for [LlamaIndex](https://www.llamaindex.ai/llamaindex): Auth0 for AI Agents and LlamaIndex SDKs enable you to easily integrate with and secure AI agent workflows using LlamaIndex. [Get started \>\>](https://github.com/auth0/auth0-ai-python/tree/main/packages/auth0-ai-llamaindex)

```javascript
npm install @auth0/ai-llamaindex
```

```python
pip install auth0-ai-llamaindex
```

Auth0 AI for [Vercel](https://vercel.com/solutions/ai-apps) AI SDK: Auth0 for AI Agents and Vercel AI SDKs enable you to easily integrate with and secure AI agent workflows using Vercel AI. [Get started \>\>](https://github.com/auth0/auth0-ai-js/tree/main/packages/ai-vercel)

```javascript
npm install @auth0/ai-vercel
```

## What’s Coming Soon at Auth0

* [Auth for MCP](https://auth0.com/ai/docs/mcp/auth-for-mcp) is currently available in Early Access. [Request to join the program here \>\>](https://docs.google.com/forms/d/e/1FAIpQLSferoMH9K1ZasfOqXVByCwwKoL4qOidCIdOtpHXMzUcUibGOQ/viewform). Auth for MCP will allow you to leverage Auth0’s features within your MCP-powered workflows. Authenticate users before they or their AI Agents connect to MCP Servers, register MCP clients and servers so AI Agents can safely connect to your resources using OAuth 2.0, and connect to your internal APIs securely with Custom Token Exchange.  
* Cross App Access [(XAA)](https://www.google.com/url?q=https://auth0.com/docs/xaa-resource-app&sa=D&source=docs&ust=1761171063745753&usg=AOvVaw07GVw8w_rJd3uClmX26r9A) is an open protocol that extends OAuth to support secure agent-to-app and app-to-app communication by shifting consent and policy enforcement to the Identity Provider (IdP). Auth0 will soon implement this natively, allowing your app to operate as a **requesting app** (exchanging ID-JAG tokens for access) or a **resource app** (validating and issuing scoped tokens). When your customers use a participating IdP that supports the protocol (such as Okta), they gain centralized control, visibility, and governance of all app and agent connections. [Sign up for the beta](https://docs.google.com/forms/d/e/1FAIpQLSfmhg0hi3qaJ7BZy92eTQ1zk6FWcP89hFwOk0hPJEoERZms5A/viewform).

## Build Powerful AI Agents with Auth0

Start building today:

* [Quickstarts](http://auth0.com/ai/docs/get-started)  
* [Docs](http://auth0.com/ai/docs)   
* [How-Tos](https://auth0.com/ai/docs/how-tos)  
* [Sample Apps](https://auth0.com/ai/docs/sample-apps)

Get started now: 

* Our free plan includes two connected apps in our Token Vault and more. As you scale, we offer self-service plans with added upgrades. [Start building \>\>](https://auth0.com/signup?onboard_app=auth_for_aa&ocid=701KZ000000cXXxYAM-aPA4z0000008OZeGAM)  
* Existing Auth0 users can get started for free, regardless of their current Auth0 plan. [Get started\>\>](https://manage.auth0.com/#/ai-agents)  
* We offer one year of Auth0 free for eligible startups. [Apply today \>\>](https://auth0.com/startups)  
* We provide eligible nonprofits with 50% off self-service and enterprise plans. [Apply today \>\>](https://auth0.com/nonprofits)

Questions? Join us for our Community AMA on January 14 and post your questions [here](https://community.auth0.com/t/ask-me-anything-coming-soon/193183), or join us for our [Reddit AMA on Dec 11th](https://www.reddit.com/user/auth0dev/comments/1pikqc4/hi_reddit_were_sandrino_di_mattia_chief_product/).

With Auth0 for AI Agents, you can **move fast, build responsibly, and remain in control.**