Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Keycloak

Leer hoe je LibreChat configureert om Keycloak te gebruiken voor gebruikersauthenticatie.

  1. Toegang tot Keycloak Admin Console:
  • Open de Keycloak Admin Console in uw webbrowser. Deze is meestal te vinden op een URL zoals http://localhost:8080/auth/admin/.
  1. Maak een Realm aan (indien nodig):
  • Als je nog geen realm voor je applicatie hebt, maak er dan een aan. Klik op 'Add Realm' en geef deze een naam.
  1. Maak een Client aan:
  • Klik binnen jouw realm op 'Clients' en vervolgens op 'Create'.
  • Voer een client ID in en selecteer 'openid-connect' als het Client Protocol.
  • Stel 'Client Authentication' in op 'On'.
  • Voer bij 'Valid Redirect URIs' http://localhost:3080/oauth/openid/callback in, of de juiste URI voor jouw applicatie.

image

image

image

  1. Configure Client:
  • Nadat je de client hebt aangemaakt, word je doorverwezen naar de instellingenpagina ervan.
  • Noteer de 'Client ID' en 'Secret' van het tabblad 'Credentials' – deze heb je nodig voor je applicatie.

image

  1. Rollen toevoegen (Optioneel): Als je de toegang wilt beperken tot gebruikers met specifieke rollen, kun je rollen definiëren in Keycloak en deze toewijzen aan gebruikers.
  • Ga naar het tabblad 'Roles' in je client of realm (afhankelijk van waar je de rollen wilt definiëren).
  • Maak rollen aan die overeenkomen met de waarde(n) die je hebt in OPENID_REQUIRED_ROLE.

image

  1. Wijs rollen toe aan gebruikers (optioneel):
  • Ga naar 'Users', selecteer een gebruiker en ga naar het tabblad 'Role Mappings'.
  • Wijs ten minste een van de rollen die zijn opgegeven in OPENID_REQUIRED_ROLE toe aan de gebruiker.

image

  1. Pad naar rollenlijst binnen token ophalen (Optioneel):
  • Decodeer je jwtToken van de OpenID-provider en bepaal het pad voor de rollenlijst binnen het access token. Als je bijvoorbeeld Keycloak gebruikt, is het pad realm_access.roles.
  • Zet dit pad in de OPENID_REQUIRED_ROLE_PARAMETER_PATH variabele in het .env bestand.
  • Met de parameter OPENID_REQUIRED_ROLE_TOKEN_KIND kun je opgeven welk tokentype je wilt gebruiken. Mogelijke waarden zijn access en id.
  1. Update je projectconfiguratie:
  • Open het .env bestand in je projectmap en voeg de volgende variabelen toe:
    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

Hoe is deze gids?