IREX - Intégration De Keycloak Dans LibreChat : Une Solution Open-Source Pour Une Authentification Centralisée

Cet article vous guidera pas à pas dans le processus d'intégration de Keycloak, une solution d'authentification open-source dans LibreChat.

 · 4 min read

Document avec titres numérotés

  1. Introduction
  2. Avec l'adoption croissante de l'intelligence artificielle dans les entreprises, la sécurisation des plateformes comme LibreChat est désormais une priorité. Cette interface open-source pour modèles de langage nécessite une gestion d'accès fiable et professionnelle. L'intégration de Keycloak, solution reconnue de gestion des identités et des accès (IAM), répond à ce besoin en offrant un système d'authentification solide et conforme aux standards du monde professionnel. Ce guide détaille la procédure pour configurer Keycloak comme solution d'authentification pour LibreChat.

  3. Présentation de Keycloak
  4. Keycloak, est un serveur d'identité et de gestion des accès (IAM) open-source. Il permet de centraliser l'authentification via des protocoles standards comme OpenID Connect (OIDC), offrant des fonctionnalités avancées telles que l'authentification unique (SSO), la fédération d'identités et des politiques de mot de passe complexes.

  5. Prérequis
  6. Avant toute chose, pour mener à bien l'intégration de Keycloak dans LibreChat, il est nécessaire de disposer des éléments suivants :

    • Une instance Keycloak fonctionnelle.
    • Une instance LibreChat déployée en local ou publique.
    • Un accès à un terminal en ligne de commande.
    • Des connaissances de base sur le fonctionnement de Docker et la gestion des variables d'environnement.

  7. Configuration du client dans Keycloak
  8. a. Connexion au realm

    • Tout d'abord, il faut accéder à l'Administration Keycloak : Connectez-vous à la console d'administration de votre instance Keycloak (généralement https://votre-domain-keycloak.auth/admin).
    • Ensuite, sélectionner le Realm : Choisissez le realm dans lequel vous souhaitez créer le client. Par défaut, le realm master est utilisé, mais il est conseillé d'en créer un nouveau pour une meilleure isolation.

    • Création d'un client dans le realm de Keycloak


    b. Création du client
    • Une fois connecté à votre Realm, il faut vous rendre dans la rubrique Client et cliquer sur Create client.
    • Ensuite, vous pourrez procéder à la configuration de vos paramétres généraux :
      • Client Protocol : Laissez openid-connect.
      • Client ID : Entrez un identifiant unique, par exemple librechat.
      • Vous pouvez également ajouter un nom et une description à votre configuration, puis validez.

      Configuration des paramètres généraux du client LibreChat dans Keycloak


    c. Configuration du client

    Dans le volet Settings qui suit, vous pourrez accéder à des paramètres supplémentaires à configurer :
    • Rendez-vous dans la rubrique Access settings et renseignez l'URL d'acceuil (Home URL) de LibreChat, ainsi que l'URL de redirection (Valid Redirect URIs) vers le callback de LibreChat, qui se met sous la forme https://[VOTRE-DOMAINE-LIBRECHAT]/oauth/openid/callback.

    • Configuration des paramètres généraux du client LibreChat dans Keycloak

    • Dans la rubrique Capability config, activez l'option Client authentication.

    • Configuration des paramètres généraux du client LibreChat dans Keycloak

    • Rendez-vous à présent dans le volet Credentials, choisissez l'option ClientID and Secret pour le paramètre Client authenticator.
    • Copiez la clé Client secret et conservez la, car elle sera utile pour la configuration de Keycloak dans LibreChat.
    • Configuration des crédentials

  9. Configuration de LibreChat
  10. a. Mise à jour de la configuration du projet

    Pour cette étape, il faut se rendre dans le dossier du projet LibreChat, et mettre à jour ces variables dans le fichier .env :
    • ALLOW_SOCIAL_LOGIN=true qui permet d'activer l'authentification avec Keycloak.
    • OPENID_ISSUER=http://localhost:8080/realms/[YourRealmName] qui correspond à l'URI de votre Realm Keycloak.
    • OPENID_CLIENT_ID=[YourClientID] qui correspond au Client-ID que vous avez choisi lors de la créationdu client LibreChat dans Keycloak.
    • OPENID_CLIENT_SECRET=[YourClientSecret] qui correspond à la clé Client secret qui a été copié dans la partie Credentials du client Keycloak de LibreChat.
    • OPENID_SESSION_SECRET=[JustGenerateARandomSessionSecret] qui correspond à la clé secrète de session, il suffira juste d'en générer une.
    • OPENID_CALLBACK_URL=/oauth/openid/callback qui est l'URL de callback par défaut.

    Après avoir terminé, il faut sauvegarder les modifications et redémarrer les conteneurs Docker avec les commandes suivantes, tout en vous assurant d'être dans le repertoire contenant votre fichier compose :
        
            docker compose down
            docker compose up -d
        

    Une fois le redémarrage effectué, accédez à votre instance LibreChat. Si le bouton Continue with OpenID apparait, et vous permet de vous authentifier via les credentials (adresse mail et mot de passe) d'un de vos utiisateurs Keycloak, la configuration sera effective :
    • Accès à l'instance LibreChat

    • Instance LibreChat avec le bouton de connexion avec OpenID

    • Connexion avec Keycloak

    • Interface Keycloak de connexion

    • Accès à l'interface LibreChat

    • Interface de LibreChat après succès de la connexion OpenID

  11. Conclusion
  12. L'intégration de Keycloak dans LibreChat représente une avancée significative pour améliorer la sécurité et la gestion des utilisateurs au sein de cette application d'IA conversationnelle. En utilisant Keycloak, LibreChat bénéficie d'une solution d'authentification et d'autorisation robuste, permettant une gestion centralisée des identités et des accès.
    Cette intégration offre de nombreux avantages : elle simplifie le processus d'inscription et de connexion pour les utilisateurs, améliore la protection des données sensibles et facilite la mise en œuvre de fonctionnalités avancées telles que l'authentification multi-facteur. De plus, avec Keycloak, les administrateurs peuvent facilement gérer les rôles et les permissions, garantissant ainsi un contrôle sur l'accès à différentes fonctionnalités de l'application.

  13. Voir aussi
  14. Dans cette optique, vous pouvez consulter :


No comments yet

No comments yet. Start a new discussion.

Add Comment