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

Azure Entra

Aprende a configurar LibreChat para usar Azure Entra para la autenticación de usuarios.

  1. Ve al Azure Portal e inicia sesión con tu cuenta.
  2. En el cuadro de búsqueda, escribe "Azure Entra" y haz clic en él.
  3. En el menú de la izquierda, haz clic en App registrations y luego en New registration.
  4. Dale un nombre a tu aplicación y selecciona Web como el tipo de plataforma.
  5. En el campo Redirect URI, introduce tu URL de callback de OpenID de LibreChat y haz clic en Register. Para instalaciones locales de Docker, utiliza http://localhost:3080/oauth/openid/callback. Para instancias desplegadas, reemplaza http://localhost:3080 con el valor de tu DOMAIN_SERVER público, por ejemplo https://chat.example.com/oauth/openid/callback.

image

  1. Verás una página de Overview con algo de información sobre tu aplicación. Copia el Application (client) ID y el Directory (tenant) ID y guárdalos en algún lugar.

image

  1. En el menú de la izquierda, haz clic en Authentication y marca las casillas para Access tokens y ID tokens en Implicit grant and hybrid flows.

image

  1. En el menú de la izquierda, haz clic en Certificates & Secrets y luego en New client secret. Dale un nombre a tu secreto y una fecha de expiración, y haz clic en Add. Verás una columna Value con tu secreto. Cópialo y guárdalo en un lugar seguro. ¡No lo compartas con nadie!

image

  1. Si desea restringir el acceso por grupos, debe agregar el claim de grupos al token. Para hacer esto, vaya a Token configuration y haga clic en Add group claim. Seleccione los grupos que desea incluir en el token y haga clic en Add.

image

  1. Abra el archivo .env en la carpeta de su proyecto y añada las siguientes variables con los valores que copió:
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 

El URI de redirección registrado en Azure debe coincidir exactamente con la URL que sirve LibreChat. Si DOMAIN_SERVER=https://chat.example.com, Azure debe usar https://chat.example.com/oauth/openid/callback.

  1. Guarda el archivo .env

Nota: Si utiliza Docker, ejecute docker compose up -d para aplicar los cambios de configuración en el archivo .env

Avanzado: Reutilización de tokens

LibreChat admite la reutilización de tokens de Azure Entra ID para la gestión de sesiones, lo que puede proporcionar una mejor integración con su entorno de Azure. Esta función permite a LibreChat utilizar los tokens de actualización de Azure en lugar de gestionar sus propios tokens de sesión.

Para obtener más información sobre esta función y cómo configurarla, consulta Re-use OpenID Tokens for Login Session.

Avanzado: Integración con Microsoft Graph API

Al utilizar Azure Entra ID como su proveedor de OpenID, puede habilitar la integración con Microsoft Graph API para mejorar el sistema de permisos y uso compartido con capacidades de búsqueda de personas y grupos.

Requisitos previos

  1. Su registro de aplicación de Azure debe tener los permisos de Microsoft Graph API adecuados
  2. Es posible que se requiera el consentimiento del administrador para ciertos alcances de la Graph API (como GroupMember.Read.All)

Agregar permisos de Graph API

  1. En el registro de tu aplicación de Azure, ve a API permissions
  2. Haz clic en Add a permission > Microsoft Graph > Delegated permissions
  3. Agregue estos permisos:
    • User.Read - Iniciar sesión y leer el perfil de usuario
    • People.Read - Leer contactos del usuario
    • GroupMember.Read.All - Leer todas las membresías de grupo
    • User.ReadBasic.All - Leer todos los perfiles básicos de los usuarios
  4. Haz clic en Grant admin consent si es necesario (necesitarás privilegios de administrador)

Configuración

Requerido: Habilitar la reutilización de tokens

Importante: DEBES habilitar la reutilización de tokens OpenID para que esta función funcione:

OPENID_REUSE_TOKENS=true

Consulte la Configuración de reutilización de tokens más arriba para obtener más detalles.

Agregue las siguientes variables de entorno a su archivo .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

Cuando está habilitado, el selector de personas en los diálogos de permisos y uso compartido hará lo siguiente:

  • Buscar tanto usuarios locales de LibreChat como usuarios de Azure Entra ID
  • Muestra los perfiles de usuario con nombres y correos electrónicos de tu organización
  • Permitir la búsqueda y selección de grupos de Azure Entra ID
  • Mostrar miembros del grupo según sus permisos de Graph API

Notas

  • La reutilización de tokens (OPENID_REUSE_TOKENS=true) es obligatoria para que esta función funcione
  • Los OPENID_GRAPH_SCOPES se añaden automáticamente a tu OPENID_SCOPE existente durante la autenticación.
  • La búsqueda de grupos requiere el permiso GroupMember.Read.All, el cual normalmente necesita el consentimiento del administrador.
  • La búsqueda de usuarios funciona con los permisos básicos User.Read, People.Read y User.ReadBasic.All

Avanzado: Integración con SharePoint

LibreChat puede integrarse con SharePoint Online y OneDrive for Business, lo que permite a los usuarios explorar y adjuntar archivos directamente desde sus bibliotecas de SharePoint.

Requisitos previos

  1. Se deben cumplir todos los requisitos de Token Reuse
  2. Tu registro de aplicación de Azure necesita permisos adicionales de SharePoint
  3. Su registro de aplicación de Azure debe exponer y otorgar un scope de API de LibreChat, como api://<client-id>/access_as_user

Agregar permisos de SharePoint

  1. En el registro de tu aplicación de Azure, ve a API permissions
  2. Haz clic en Add a permission

Para acceso a SharePoint:

  1. Seleccione SharePoint (no Microsoft Graph)
  2. Elija Delegated permissions
  3. Agregar: AllSites.Read - Leer elementos en todas las colecciones de sitios

Para descargas de archivos:

  1. Haz clic en Add a permission de nuevo

  2. Seleccione Microsoft Graph

  3. Elija Delegated permissions

  4. Agregar: Files.Read.All - Leer todos los archivos a los que el usuario puede acceder

  5. Haz clic en Grant admin consent para ambos permisos

Configuración

Antes de habilitar las variables de SharePoint, asegúrese de que la configuración de reutilización de tokens OpenID solicite el ámbito de la API de la aplicación LibreChat. Esto le otorga a Azure un token de acceso con audiencia de aplicación que puede utilizarse como aserción "on-behalf-of" para el intercambio de tokens de SharePoint y 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

Uso

Cuando se configura correctamente:

  1. Los usuarios verán la opción "From SharePoint" en el menú de adjuntos de archivos
  2. Al hacer clic, se abre el selector de archivos nativo de SharePoint
  3. Los usuarios pueden explorar y seleccionar archivos desde cualquier sitio de SharePoint o OneDrive al que tengan acceso.
  4. Los archivos seleccionados se descargan y se adjuntan a la conversación

Nota de seguridad

La integración con SharePoint respeta todos los permisos existentes de SharePoint. Los usuarios solo pueden acceder a archivos que ya tienen permiso para ver en SharePoint/OneDrive.

Para obtener información detallada sobre la resolución de problemas y la configuración avanzada, consulte: SharePoint Integration Guide

¿Qué te parece esta guía?