Skip to main content

LibreChat is joining ClickHouse. Learn more

LibreChat

Keycloak

Scopri come configurare LibreChat per utilizzare Keycloak per l'autenticazione degli utenti.

  1. 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/.
  1. 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.
  1. 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/callback o l'URI appropriato per la tua applicazione.

image

image

image

  1. 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.

image

  1. 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.

image

  1. 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_ROLE all'utente.

image

  1. 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_PATH nel file .env.
  • Tramite il parametro OPENID_REQUIRED_ROLE_TOKEN_KIND è possibile specificare quale tipo di token si desidera utilizzare. I valori possibili sono access e id.
  1. Aggiorna la configurazione del tuo progetto:
  • Apri il file .env nella 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?