Azure Entra
Aprenda a configurar LibreChat para utilizar Azure Entra para la autenticación de usuarios.
- Ve al Azure Portal e inicia sesión con tu cuenta.
- En el cuadro de búsqueda, escribe "Azure Entra" y haz clic en él.
- En el menú de la izquierda, haz clic en App registrations y luego en New registration.
- Dale un nombre a tu aplicación y selecciona Web como el tipo de plataforma.
- 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, reemplazahttp://localhost:3080con el valor de tuDOMAIN_SERVERpúblico, por ejemplohttps://chat.example.com/oauth/openid/callback.
- 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.
- 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.
- 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!
- 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.
- 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
# Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000)
# OPENID_MAX_LOGOUT_URL_LENGTH=2000El 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.
- Guarda el archivo .env
Nota: Si utiliza Docker, ejecute
docker compose up -dpara 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, consulte 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
- Su registro de aplicación de Azure debe tener los permisos de Microsoft Graph API adecuados
- Es posible que se requiera el consentimiento del administrador para ciertos alcances de Graph API (como
GroupMember.Read.All)
Agregar permisos de Graph API
- En el registro de tu aplicación de Azure, ve a API permissions
- Haz clic en Add a permission > Microsoft Graph > Delegated permissions
- Agregue estos permisos:
User.Read- Iniciar sesión y leer el perfil de usuarioPeople.Read- Leer contactos del usuarioGroupMember.Read.All- Leer todas las membresías de grupoUser.ReadBasic.All- Leer todos los perfiles básicos de los usuarios
- 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=trueConsulte 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.AllCuando 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 los 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_SCOPESse añaden automáticamente a tuOPENID_SCOPEexistente 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.ReadyUser.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
- Se deben cumplir todos los requisitos de Token Reuse
- Tu registro de aplicación de Azure necesita permisos adicionales de SharePoint
- 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
- En el registro de tu aplicación de Azure, ve a API permissions
- Haz clic en Add a permission
Para acceso a SharePoint:
- Seleccione SharePoint (no Microsoft Graph)
- Elija Delegated permissions
- Agregar:
AllSites.Read- Leer elementos en todas las colecciones de sitios
Para descargas de archivos:
-
Haz clic en Add a permission de nuevo
-
Seleccione Microsoft Graph
-
Elija Delegated permissions
-
Agregar:
Files.Read.All- Leer todos los archivos a los que el usuario puede acceder -
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.AllUso
Cuando se configura correctamente:
- Los usuarios verán la opción "From SharePoint" en el menú de adjuntos de archivos
- Al hacer clic, se abre el selector de archivos nativo de SharePoint
- Los usuarios pueden explorar y seleccionar archivos de cualquier sitio de SharePoint o OneDrive al que tengan acceso.
- 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 una resolución de problemas detallada y una configuración avanzada, consulte: SharePoint Integration Guide
¿Qué te parece esta guía?