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

Keycloak

Apprenez à configurer LibreChat pour utiliser Keycloak pour l'authentification des utilisateurs.

  1. Accéder à la console d'administration Keycloak :
  • Ouvrez la console d'administration Keycloak dans votre navigateur web. Celle-ci se trouve généralement à une URL telle que http://localhost:8080/auth/admin/.
  1. Créer un Realm (si nécessaire) :
  • Si vous n'avez pas encore de realm pour votre application, créez-en un. Cliquez sur 'Add Realm' et donnez-lui un nom.
  1. Créer un client :
  • Dans votre domaine, cliquez sur « Clients », puis sur « Create ».
  • Saisissez un client ID et sélectionnez 'openid-connect' comme Client Protocol.
  • Réglez « Client Authentication » sur « On ».
  • Dans 'Valid Redirect URIs', saisissez http://localhost:3080/oauth/openid/callback ou l'URI appropriée pour votre application.

image

image

image

  1. Configurer le client :
  • Après avoir créé le client, vous serez redirigé vers sa page de paramètres.
  • Notez le 'Client ID' et le 'Secret' depuis l'onglet 'Credentials' – vous en aurez besoin pour votre application.

image

  1. Ajouter des rôles (Optionnel) : Si vous souhaitez restreindre l'accès aux utilisateurs ayant des rôles spécifiques, vous pouvez définir des rôles dans Keycloak et les assigner aux utilisateurs.
  • Allez dans l'onglet 'Roles' de votre client ou realm (selon l'endroit où vous souhaitez définir les rôles).
  • Créez des rôles qui correspondent à la ou aux valeurs que vous avez dans OPENID_REQUIRED_ROLE.

image

  1. Attribuer des rôles aux utilisateurs (Optionnel) :
  • Allez dans 'Users', sélectionnez un utilisateur, et allez dans l'onglet 'Role Mappings'.
  • Attribuez au moins l'un des rôles spécifiés dans OPENID_REQUIRED_ROLE à l'utilisateur.

image

  1. Obtenir le chemin de la liste des rôles à l'intérieur du jeton (Optionnel) :
  • Décodez votre jwtToken provenant du fournisseur OpenID et déterminez le chemin d'accès à la liste des rôles dans le jeton d'accès. Par exemple, si vous utilisez Keycloak, le chemin est realm_access.roles.
  • Mettez ce chemin dans la variable OPENID_REQUIRED_ROLE_PARAMETER_PATH du fichier .env.
  • Grâce au paramètre OPENID_REQUIRED_ROLE_TOKEN_KIND, vous pouvez spécifier le type de jeton que vous souhaitez utiliser. Les valeurs possibles sont access et id.
  1. Mettez à jour la configuration de votre projet :
  • Ouvrez le fichier .env dans votre dossier de projet et ajoutez les variables suivantes :
    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 

Que pensez-vous de ce guide ?