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

Azure Entra

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

  1. Allez sur le Azure Portal et connectez-vous avec votre compte.
  2. Dans la zone de recherche, tapez "Azure Entra" et cliquez dessus.
  3. Dans le menu de gauche, cliquez sur App registrations, puis sur New registration.
  4. Donnez un nom à votre application et sélectionnez Web comme type de plateforme.
  5. Dans le champ Redirect URI, saisissez votre URL de rappel OpenID de LibreChat et cliquez sur Register. Pour les installations Docker locales, utilisez http://localhost:3080/oauth/openid/callback. Pour les instances déployées, remplacez http://localhost:3080 par la valeur de votre DOMAIN_SERVER public, par exemple https://chat.example.com/oauth/openid/callback.

image

  1. Vous verrez une page Vue d'ensemble avec quelques informations sur votre application. Copiez l'ID de l'application (client) et l'ID du répertoire (locataire) et enregistrez-les quelque part.

image

  1. Dans le menu de gauche, cliquez sur Authentication et cochez les cases Access tokens et ID tokens sous Implicit grant and hybrid flows.

image

  1. Dans le menu de gauche, cliquez sur Certificates & Secrets, puis sur New client secret. Donnez un nom et une date d'expiration à votre secret, puis cliquez sur Add. Vous verrez une colonne Value contenant votre secret. Copiez-le et enregistrez-le dans un endroit sûr. Ne le partagez avec personne !

image

  1. Si vous souhaitez restreindre l'accès par groupes, vous devez ajouter la revendication (claim) groups au jeton. Pour ce faire, allez dans Token configuration et cliquez sur Add group claim. Sélectionnez les groupes que vous souhaitez inclure dans le jeton et cliquez sur Add.

image

  1. Ouvrez le fichier .env dans le dossier de votre projet et ajoutez les variables suivantes avec les valeurs que vous avez copiées :
DOMAIN_CLIENT=https://your-domain.com # use http://localhost:3080 if not using a custom domain
DOMAIN_SERVER=https://your-domain.com # use http://localhost:3080 if not using a custom domain
 
# enable social login or else OpenID button will not appear on login page
ALLOW_SOCIAL_LOGIN=true
 
OPENID_CLIENT_ID=Your Application (client) ID
OPENID_CLIENT_SECRET=Your client secret
OPENID_ISSUER=https://login.microsoftonline.com/Your Directory (tenant ID)/v2.0/
OPENID_SESSION_SECRET=Any random string
OPENID_SCOPE=openid profile email #DO NOT CHANGE THIS
OPENID_CALLBACK_URL=/oauth/openid/callback # this should be the same for everyone
 
OPENID_REQUIRED_ROLE_TOKEN_KIND=id
 
# If you want to restrict access by groups
OPENID_REQUIRED_ROLE_PARAMETER_PATH="roles"
OPENID_REQUIRED_ROLE="Your Group Name" # Single role or comma-separated roles (e.g., Group1,Group2,Admin)
 
# Optional: redirects the user to the end session endpoint after logging out
OPENID_USE_END_SESSION_ENDPOINT=true 

L'URI de redirection enregistré dans Azure doit correspondre exactement à l'URL utilisée par LibreChat. Si DOMAIN_SERVER=https://chat.example.com, Azure doit utiliser https://chat.example.com/oauth/openid/callback.

  1. Enregistrez le fichier .env

Remarque : Si vous utilisez Docker, exécutez docker compose up -d pour appliquer les modifications de configuration du fichier .env

Avancé : Réutilisation de jetons

LibreChat prend en charge la réutilisation des jetons Azure Entra ID pour la gestion des sessions, ce qui peut offrir une meilleure intégration avec votre environnement Azure. Cette fonctionnalité permet à LibreChat d'utiliser les jetons d'actualisation d'Azure au lieu de gérer ses propres jetons de session.

Pour en savoir plus sur cette fonctionnalité et comment la configurer, consultez Re-use OpenID Tokens for Login Session.

Avancé : Intégration de l'API Microsoft Graph

Lorsque vous utilisez Azure Entra ID comme fournisseur OpenID, vous pouvez activer l'intégration de l'API Microsoft Graph pour améliorer le système de permissions et de partage avec des fonctionnalités de recherche de personnes et de groupes.

Prérequis

  1. Votre inscription d'application Azure doit disposer des autorisations Microsoft Graph API appropriées
  2. Le consentement de l'administrateur peut être requis pour certaines étendues (scopes) de l'API Graph (comme GroupMember.Read.All)

Ajout des autorisations de l'API Graph

  1. Dans votre inscription d'application Azure, allez dans API permissions
  2. Cliquez sur Add a permission > Microsoft Graph > Delegated permissions
  3. Ajoutez ces permissions :
    • User.Read - Se connecter et lire le profil utilisateur
    • People.Read - Lire les contacts de l'utilisateur
    • GroupMember.Read.All - Lire toutes les appartenances aux groupes
    • User.ReadBasic.All - Lire les profils de base de tous les utilisateurs
  4. Cliquez sur Grant admin consent si nécessaire (vous aurez besoin de privilèges d'administrateur)

Configuration

Requis : Activer la réutilisation des jetons

Important : Vous DEVEZ activer la réutilisation des jetons OpenID pour que cette fonctionnalité fonctionne :

OPENID_REUSE_TOKENS=true

Voir la Configuration de réutilisation des jetons ci-dessus pour plus de détails.

Ajoutez les variables d'environnement suivantes à votre fichier .env :

# Enable Entra ID people search in permissions/sharing
USE_ENTRA_ID_FOR_PEOPLE_SEARCH=true
 
# Include group owners as members when searching groups
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=true
 
# Microsoft Graph API scopes (these are automatically included with the OpenID scopes)
OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

Lorsqu'elle est activée, la sélection de personnes dans les boîtes de dialogue d'autorisations et de partage permettra de :

  • Rechercher à la fois parmi les utilisateurs locaux de LibreChat et les utilisateurs Azure Entra ID
  • Afficher les profils des utilisateurs avec leurs noms et adresses e-mail de votre organisation
  • Autoriser la recherche et la sélection de groupes Azure Entra ID
  • Afficher les membres du groupe en fonction de vos autorisations Graph API

Notes

  • La réutilisation des jetons (OPENID_REUSE_TOKENS=true) est obligatoire pour que cette fonctionnalité fonctionne
  • Les OPENID_GRAPH_SCOPES sont automatiquement ajoutés à votre OPENID_SCOPE existant lors de l'authentification.
  • La recherche de groupe nécessite l'autorisation GroupMember.Read.All, qui requiert généralement le consentement de l'administrateur.
  • La recherche d'utilisateurs fonctionne avec les autorisations de base User.Read, People.Read et User.ReadBasic.All

Avancé : Intégration SharePoint

LibreChat peut s'intégrer avec SharePoint Online et OneDrive for Business, permettant aux utilisateurs de parcourir et de joindre des fichiers directement depuis leurs bibliothèques SharePoint.

Prérequis

  1. Toutes les exigences de Token Reuse doivent être remplies
  2. Votre inscription d'application Azure nécessite des autorisations SharePoint supplémentaires
  3. Votre inscription d'application Azure doit exposer et accorder une étendue d'API LibreChat, telle que api://<client-id>/access_as_user

Ajout des autorisations SharePoint

  1. Dans votre inscription d'application Azure, allez dans API permissions
  2. Cliquez sur Add a permission

Pour l'accès à SharePoint :

  1. Sélectionnez SharePoint (pas Microsoft Graph)
  2. Choisissez Delegated permissions
  3. Ajouter : AllSites.Read - Lire les éléments dans toutes les collections de sites

Pour les téléchargements de fichiers :

  1. Cliquez à nouveau sur Add a permission

  2. Sélectionnez Microsoft Graph

  3. Choisissez Delegated permissions

  4. Ajouter : Files.Read.All - Lire tous les fichiers auxquels l'utilisateur peut accéder

  5. Cliquez sur Grant admin consent pour les deux autorisations

Configuration

Avant d'activer les variables SharePoint, assurez-vous que la configuration de réutilisation du jeton OpenID demande la portée de l'API de l'application LibreChat. Cela donne à Azure un jeton d'accès avec une audience d'application qui peut être utilisé comme assertion « on-behalf-of » pour l'échange de jetons SharePoint et Graph.

# OpenID token reuse and OBO-compatible audience
OPENID_REUSE_TOKENS=true
OPENID_SCOPE=openid profile email offline_access api://<client-id>/access_as_user
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
 
# Enable SharePoint file picker
ENABLE_SHAREPOINT_FILEPICKER=true
 
# Your SharePoint tenant URL
SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
 
# SharePoint scope for file picker (replace 'yourtenant' with your actual tenant)
SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
 
# Graph API scope for downloading files
SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

Utilisation

Une fois correctement configuré :

  1. Les utilisateurs verront l'option « From SharePoint » dans le menu des pièces jointes.
  2. Cliquer dessus ouvre le sélecteur de fichiers SharePoint natif
  3. Les utilisateurs peuvent parcourir et sélectionner des fichiers depuis n'importe quel site SharePoint ou OneDrive auquel ils ont accès.
  4. Les fichiers sélectionnés sont téléchargés et joints à la conversation

Note de sécurité

L'intégration SharePoint respecte toutes les autorisations SharePoint existantes. Les utilisateurs ne peuvent accéder qu'aux fichiers qu'ils sont déjà autorisés à consulter dans SharePoint/OneDrive.

Pour un dépannage détaillé et une configuration avancée, consultez : Guide d'intégration SharePoint

Que pensez-vous de ce guide ?