Auth0 può essere utilizzato come provider OpenID Connect per LibreChat. Quando si utilizza Auth0 con il riutilizzo dei token abilitato (OPENID_REUSE_TOKENS=true), è necessario configurare la variabile d'ambiente OPENID_AUDIENCE per evitare problemi di autenticazione.
Auth0 non consente URL http://localhost nelle applicazioni in produzione. Per lo sviluppo/test locale, dovrai utilizzare HTTPS. Puoi utilizzare servizi come:
ngrok: ngrok http 3080 (fornisce un tunnel HTTPS verso localhost)
Caddy: Proxy server HTTPS locale
localtunnel: Simile a ngrok
Esempio con ngrok:
ngrok http 3080# This will give you a URL like: https://abc123.ngrok.io
Questo passaggio è obbligatorio quando si utilizza OPENID_REUSE_TOKENS=true. Senza di esso, Auth0 restituirà token opachi che non possono essere convalidati da LibreChat, causando infiniti cicli di aggiornamento.
Vai alla Dashboard di Auth0 → Applications → APIs
Fai clic su "Create API"
Configura l'API:
Nome: LibreChat API (o il nome che preferisci)
Identificativo: https://api.librechat.ai (o il tuo identificativo preferito)
Nota: Questo è solo un identificatore univoco, non un URL reale. Non è necessario che sia accessibile.
Modelli comuni: https://api.yourdomain.com, https://librechat.yourdomain.com, ecc.
Aggiungi le seguenti variabili d'ambiente al tuo file .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# Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000)# OPENID_MAX_LOGOUT_URL_LENGTH=2000# 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 include il parametro audience nelle richieste di autorizzazione, utilizzando il primo valore non vuoto quando sono configurate più audience separate da virgola.
Auth0 riconosce l'audience come una API registrata
Auth0 emette token di accesso JWT che possono essere convalidati
LibreChat convalida correttamente i token e l'autenticazione funziona in modo appropriato
L'identificativo della tua API Auth0. Obbligatorio quando si utilizza OPENID_REUSE_TOKENS=true con Auth0 per prevenire problemi con i token opachi. Sono accettati valori separati da virgola per la convalida JWT; le richieste di autorizzazione utilizzano il primo valore non vuoto.