Docs Local Kubernetes Blog Enterprise Community Get Started GitHub

Auth0

Auth0 is an identity platform that provides authentication and authorization services. Agent Gateway can validate JWTs issued by Auth0.

Why use Auth0 with Agent Gateway?

  • Managed identity - No infrastructure to maintain
  • Social login - Google, GitHub, Microsoft, and more
  • Enterprise SSO - SAML, LDAP, Active Directory
  • MFA - Built-in multi-factor authentication
  • API protection - JWT-based API authentication

Configuration

Configure Agent Gateway to validate Auth0 JWTs:

binds:
- port: 3000
  listeners:
  - routes:
    - backends:
      - mcp:
          targets:
          - name: my-server
            stdio:
              cmd: npx
              args: ["@modelcontextprotocol/server-everything"]
      policies:
        mcpAuthentication:
          mode: strict
          issuer: https://your-tenant.auth0.com/
          audiences:
          - https://api.example.com
          jwks:
            url: https://your-tenant.auth0.com/.well-known/jwks.json

Auth0 setup

  1. Create an API in Auth0 Dashboard:

    • Name: Agent Gateway API
    • Identifier: https://api.example.com
  2. Create an Application:

    • Type: Single Page Application or Machine to Machine
    • Note the Client ID and Client Secret
  3. Configure allowed callbacks and origins

Getting a token

Machine-to-machine

curl -X POST "https://your-tenant.auth0.com/oauth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "audience": "https://api.example.com",
    "grant_type": "client_credentials"
  }'

Using the token

curl http://localhost:3000/mcp \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize",...}'

Permission-based authorization

Use Auth0 permissions with Agent Gateway:

policies:
  mcpAuthentication:
    mode: strict
    issuer: https://your-tenant.auth0.com/
    audiences: [https://api.example.com]
    jwks:
      url: https://your-tenant.auth0.com/.well-known/jwks.json
  authorization:
    rules:
    # Check for specific permission
    - if: '"read:tools" in auth.claims.permissions'

Learn more