Auth0 puede utilizarse como proveedor de OpenID Connect para LibreChat. Al usar Auth0 con la reutilización de tokens habilitada (OPENID_REUSE_TOKENS=true), debe configurar la variable de entorno OPENID_AUDIENCE para evitar problemas de autenticación.
Auth0 no permite URLs http://localhost en aplicaciones de producción. Para el desarrollo/pruebas locales, necesitarás usar HTTPS. Puedes utilizar servicios como:
ngrok: ngrok http 3080 (proporciona un túnel HTTPS a localhost)
Caddy: Servidor proxy HTTPS local
localtunnel: Similar a ngrok
Ejemplo con ngrok:
ngrok http 3080# This will give you a URL like: https://abc123.ngrok.io
Agregue las siguientes variables de entorno a su archivo .env:
# OpenID Connect Configuration# Domain from Basic Information (add https:// prefix)OPENID_ISSUER=https://dev-abc123.us.auth0.com# Client ID from Basic InformationOPENID_CLIENT_ID=your_long_alphanumeric_client_id# Client Secret from Basic Information (click to reveal)OPENID_CLIENT_SECRET=your_client_secret_from_basic_information# Callback URL (must match what's configured in Auth0)OPENID_CALLBACK_URL=/oauth/openid/callback# Token ConfigurationOPENID_REUSE_TOKENS=trueOPENID_SCOPE=openid profile email offline_access# IMPORTANT: Your Auth0 API identifier (from Step 3)OPENID_AUDIENCE=https://api.librechat.ai# Security Settings (recommended)OPENID_USE_PKCE=true# Session Configuration (generate a secure random string)OPENID_SESSION_SECRET=your-secure-session-secret-32-chars-or-more# Optional: Custom button appearanceOPENID_BUTTON_LABEL=Continue with Auth0# OPENID_IMAGE_URL=https://path-to-auth0-logo.png# If using ngrok for testing, also update:# DOMAIN_CLIENT=https://your-domain.ngrok.io# DOMAIN_SERVER=https://your-domain.ngrok.io
LibreChat incluye el parámetro audience en las solicitudes de autorización, utilizando el primer valor no vacÃo cuando se configuran múltiples audiencias separadas por comas.
Auth0 reconoce la audiencia como una API registrada
Auth0 emite tokens de acceso JWT que pueden ser validados
LibreChat valida correctamente los tokens y la autenticación funciona adecuadamente
El identificador de su API de Auth0. Requerido al usar OPENID_REUSE_TOKENS=true con Auth0 para evitar problemas con tokens opacos. Se aceptan valores separados por comas para la validación de JWT; las solicitudes de autorización utilizan el primer valor no vacÃo.