Keycloak
Scopri come configurare LibreChat per utilizzare Keycloak per l'autenticazione degli utenti.
- Accedi alla console di amministrazione di Keycloak:
- Apri la Keycloak Admin Console nel tuo browser web. Solitamente si trova a un URL come
http://localhost:8080/auth/admin/.
- Crea un Realm (se necessario):
- Se non hai già un realm per la tua applicazione, creane uno. Clicca su 'Add Realm' e assegnagli un nome.
- Crea un Client:
- All'interno del tuo realm, clicca su 'Clients' e poi su 'Create'.
- Inserisci un client ID e seleziona 'openid-connect' come Client Protocol.
- Imposta 'Client Authentication' su 'On'.
- In 'Valid Redirect URIs', inserisci
http://localhost:3080/oauth/openid/callbacko l'URI appropriato per la tua applicazione.
- Configura Client:
- Dopo aver creato il client, verrai reindirizzato alla sua pagina delle impostazioni.
- Annota il 'Client ID' e il 'Secret' dalla scheda 'Credentials': ti serviranno per la tua applicazione.
- Aggiungi ruoli (Opzionale): Se desideri limitare l'accesso agli utenti con ruoli specifici, puoi definire i ruoli in Keycloak e assegnarli agli utenti.
- Vai alla scheda 'Roles' nel tuo client o realm (a seconda di dove desideri definire i ruoli).
- Crea ruoli che corrispondano al/ai valore/i che hai in
OPENID_REQUIRED_ROLE.
- Assegna ruoli agli utenti (Opzionale):
- Vai su 'Users', seleziona un utente e vai alla scheda 'Role Mappings'.
- Assegna almeno uno dei ruoli specificati in
OPENID_REQUIRED_ROLEall'utente.
- Ottieni il percorso dell'elenco dei ruoli all'interno del token (Opzionale):
- Decodifica il tuo jwtToken dal provider OpenID e determina il percorso per l'elenco dei ruoli all'interno dell'access token. Ad esempio, se stai utilizzando Keycloak, il percorso è
realm_access.roles. - Inserisci questo percorso nella variabile
OPENID_REQUIRED_ROLE_PARAMETER_PATHnel file.env. - Tramite il parametro
OPENID_REQUIRED_ROLE_TOKEN_KINDè possibile specificare quale tipo di token si desidera utilizzare. I valori possibili sonoaccesseid.
- Aggiorna la configurazione del tuo progetto:
- Apri il file
.envnella cartella del tuo progetto e aggiungi le seguenti variabili:OPENID_ISSUER=http://localhost:8080/realms/[YourRealmName] OPENID_CLIENT_ID=[YourClientID] OPENID_CLIENT_SECRET=[YourClientSecret] OPENID_SESSION_SECRET=[JustGenerateARandomSessionSecret] OPENID_CALLBACK_URL=/oauth/openid/callback OPENID_SCOPE="openid profile email" OPENID_REQUIRED_ROLE=[YourRequiredRole] # Single role or comma-separated roles (e.g., role1,role2,admin) OPENID_REQUIRED_ROLE_TOKEN_KIND=(access|id) # that means, `access` or `id` OPENID_REQUIRED_ROLE_PARAMETER_PATH="realm_access.roles" # Optional: redirects the user to the end session endpoint after logging out OPENID_USE_END_SESSION_ENDPOINT=true # Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000) # OPENID_MAX_LOGOUT_URL_LENGTH=2000
Com’è questa guida?