Integração com SharePoint
Configure a integração do SharePoint Online e OneDrive for Business com o LibreChat
O LibreChat oferece integração de nível empresarial com o SharePoint Online e o OneDrive for Business, permitindo que os usuários naveguem, selecionem e anexem arquivos de seu ambiente Microsoft 365 diretamente nas conversas de forma integrada.
Visão geral
A integração com o SharePoint permite que os usuários:
- Navegue por bibliotecas de documentos do SharePoint e arquivos do OneDrive
- Selecione vários arquivos de uma vez (até 10 por padrão)
- Ver o progresso de download em tempo real
- Anexar arquivos do SharePoint a conversas
- Mantenha a segurança corporativa com controles de acesso adequados
Recurso Corporativo
Este recurso requer Microsoft 365/SharePoint Online e foi projetado para implantações corporativas que utilizam autenticação Azure Entra ID (anteriormente Azure AD).
Pré-requisitos
Antes de configurar a integração com o SharePoint, certifique-se de que você possui:
- Azure Entra ID Authentication configurada e funcionando
- Token Reuse habilitado (
OPENID_REUSE_TOKENS=true) - Um escopo de API exposto para o LibreChat, como
api://<client-id>/access_as_user - Acesso de administrador ao seu tenant do Azure para permissões de aplicativo
- HTTPS habilitado (obrigatório para ambientes de produção)
Requisito Crítico
A integração com o SharePoint não funcionará sem OPENID_REUSE_TOKENS=true, pois ela depende do fluxo de token on-behalf-of para acessar as APIs do Microsoft Graph.
Configuração de Registro de Aplicativo no Azure
Passo 1: Configurar Permissões de API
- Navegue até o registro do seu aplicativo no Azure Portal
- Vá para API permissions no menu à esquerda
- Clique em Add a permission
Passo 2: Expor e conceder um escopo de API do LibreChat
O fluxo on-behalf-of precisa do token de acesso OpenID inicial para direcionar a API do seu aplicativo LibreChat, não o Microsoft Graph. Exponha um escopo de API para que o Azure possa emitir um token com o LibreChat como o público-alvo (audience).
- Vá para Expose an API no menu à esquerda
- Defina o Application ID URI como
api://<client-id>se ele ainda não estiver configurado - Clique em Add a scope
- Nomeie o escopo como
access_as_user - Salve o escopo e, em seguida, copie o valor completo do escopo:
api://<client-id>/access_as_userEm seguida, conceda esse escopo ao registro do aplicativo:
- Volte para API permissions
- Clique em Add a permission
- Selecione APIs my organization uses
- Pesquise e selecione o seu registro de aplicativo do LibreChat
- Escolha Delegated permissions
- Selecione
access_as_user - Clique em Add permissions
Use o valor de escopo completo api://<client-id>/access_as_user em OPENID_SCOPE mais adiante neste guia.
Passo 3: Adicionar Permissões do SharePoint
Para a interface do seletor de arquivos:
- Selecione SharePoint na lista de API
- Escolha Delegated permissions
- Pesquise e selecione:
AllSites.Read- Ler itens em todas as coleções de sites
- Clique em Add permissions
Passo 4: Adicionar Permissões do Microsoft Graph
Para downloads de arquivos:
- Clique em Add a permission novamente
- Selecione Microsoft Graph
- Escolha Delegated permissions
- Pesquise e selecione:
Files.Read.All- Ler todos os arquivos que o usuário pode acessar
- Clique em Add permissions
Passo 5: Conceder Consentimento de Administrador
- Após adicionar as permissões, você as verá listadas
- Clique em Grant admin consent for [Your Organization]
- Confirme o consentimento no popup
Suas permissões devem ser assim:
| Nome da API / Permissões | Tipo | Descrição | Status |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegated | Ler todos os arquivos que o usuário pode acessar | ✅ Granted |
| SharePoint - AllSites.Read | Delegated | Ler itens em todas as coleções de sites | ✅ Granted |
| LibreChat - access_as_user | Delegated | Permitir que o LibreChat receba um token compatível com OBO | ✅ Granted |
Configuração de Ambiente
Adicione as seguintes variáveis de ambiente ao seu arquivo .env:
# 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 base URL
# Format: https://[your-tenant-name].sharepoint.com
SHAREPOINT_BASE_URL=https://contoso.sharepoint.com
# SharePoint scope for the file picker
# Replace 'contoso' with your actual tenant name
SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://contoso.sharepoint.com/AllSites.Read
# Microsoft Graph scope for file downloads
SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.AllNome do Tenant
Certifique-se de substituir contoso nos exemplos acima pelo nome real do seu tenant do SharePoint. Isso deve corresponder exatamente à sua URL do SharePoint.
Público-alvo do Escopo OpenID
Substitua <client-id> pelo Application (client) ID do seu registro de aplicativo no Azure. O escopo api://<client-id>/access_as_user fornece ao Azure um público específico do aplicativo para a asserção OBO. Se OPENID_SCOPE incluir apenas escopos OpenID padrão, o Azure poderá emitir um token de acesso com público Graph que não pode ser trocado novamente por acesso ao SharePoint ou Graph.
Troca de Token Userinfo
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true permite que o LibreChat troque o token de acesso de público-alvo do aplicativo por um token compatível com userinfo antes de chamar o endpoint de userinfo do OpenID. Isso é necessário para configurações do Azure Entra ID onde o OPENID_SCOPE inclui o escopo da API do LibreChat mencionado acima.
Como funciona
Fluxo de Autenticação
- O usuário se autentica via Azure Entra ID
- Ao acessar o seletor do SharePoint, o LibreChat troca o token do usuário pelo acesso ao SharePoint
- Tokens são armazenados em cache para desempenho ideal (normalmente 50 minutos)
- Escopos separados garantem o princípio do privilégio mínimo
Processo de Seleção de Arquivos
- O usuário clica em "From SharePoint" no menu de anexos
- O seletor de arquivos do SharePoint Online abre em um iframe incorporado
- O usuário navega e seleciona arquivos usando a interface familiar do SharePoint
- Os arquivos selecionados estão na fila para download
Processo de Download
- Os arquivos são baixados em lotes (até 3 downloads simultâneos)
- O indicador de progresso mostra o arquivo atual e a porcentagem concluída
- Os arquivos baixados são anexados à conversa
- Downloads com falha são tentados novamente automaticamente
Experiência do Usuário
Acessando Arquivos do SharePoint
Quando configurado corretamente, os usuários verão uma nova opção no menu de anexos de arquivo:
- Clique no ícone de anexo na entrada de mensagem
- Selecione "From SharePoint" no menu
- O seletor de arquivos do SharePoint será aberto
- Navegue e selecione arquivos conforme necessário
- Clique em "Select" para iniciar o download
Recursos Disponíveis
- Seleção múltipla de arquivos: Selecione até 10 arquivos de uma vez
- Interface familiar: Usa o seletor de arquivos nativo do SharePoint
- Acompanhamento de progresso: Veja o progresso do download em tempo real
- Tratamento de erros: Mensagens claras para quaisquer problemas
- Localização: Suporta múltiplos idiomas
Considerações de Segurança
Controle de Acesso
- Apenas arquivos aos quais o usuário tem permissão de acesso no SharePoint estão disponíveis
- Respeita todas as permissões e políticas do SharePoint
- Sem acesso elevado ou contorno de controles de segurança
Segurança de Tokens
- Usa o fluxo seguro on-behalf-of para troca de tokens
- Tokens são de curta duração e atualizados automaticamente
- Sem armazenamento de longo prazo de credenciais do SharePoint
Isolamento de Escopo
- Escopo do SharePoint limitado apenas a operações de leitura
- Escopo da Graph API restrito ao acesso de leitura de arquivos
- Não é possível modificar ou excluir arquivos através do LibreChat
Solução de problemas
Problemas Comuns
A opção "From SharePoint" não está aparecendo
Causa: Recurso não habilitado corretamente ou problemas de autenticação
Soluções:
- Verifique
ENABLE_SHAREPOINT_FILEPICKER=trueno.env - Confirme se
OPENID_REUSE_TOKENS=trueestá definido - Verifique se o usuário está autenticado via Azure Entra ID
- Reinicie o LibreChat após alterações de configuração
O seletor de arquivos falha ao abrir
Causa: Permissões ausentes ou incorretas
Soluções:
- Verifique se as permissões do SharePoint foram concedidas no Azure
- Certifique-se de que o consentimento do administrador foi fornecido
- Verifique se
SHAREPOINT_BASE_URLcorresponde exatamente ao seu tenant - Confirme se
SHAREPOINT_PICKER_SHAREPOINT_SCOPEusa a URL completa do tenant, comohttps://contoso.sharepoint.com/AllSites.Read - Confirme se o HTTPS está habilitado em produção
O seletor de arquivos abre em uma página branca em branco
Causa: O Azure pode estar rejeitando a troca on-behalf-of porque o token de acesso OpenID possui o audience incorreto, ou porque a troca de token userinfo não está habilitada.
Soluções:
- Confirme se o seu registro de aplicativo Azure possui um escopo de API exposto, como
api://<client-id>/access_as_user - Adicione esse escopo completo a
OPENID_SCOPE - Defina
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true - Reinicie o LibreChat e faça login novamente para que o Azure emita novos tokens OpenID
Downloads falham ou atingem o tempo limite
Causa: Permissões da Graph API ou problemas de rede
Soluções:
- Verifique se a permissão
Files.Read.Allfoi concedida - Verificar a conectividade de rede com o SharePoint
- Certifique-se de que os tokens não expiraram (reautentique se necessário)
- Verifique o console do navegador para mensagens de erro específicas
Modo de Depuração
Para solução de problemas, habilite o log de depuração:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueIsso fornecerá logs detalhados sobre:
- Processos de troca de token
- Chamadas de API para SharePoint e Graph
- Progresso de download e erros
- Fluxos de autenticação
Otimização de Desempenho
Token Caching
- Tokens são armazenados em cache para reduzir a sobrecarga de autenticação
- A duração do cache corresponde ao tempo de vida do token (normalmente 50 minutos)
- Atualização automática antes da expiração
Downloads Simultâneos
- Até 3 arquivos baixados simultaneamente
- Evita sobrecarregar o navegador ou o servidor
- Otimiza tanto para velocidade quanto para estabilidade
Considerações sobre o tamanho do arquivo
- Arquivos grandes podem levar algum tempo para serem baixados
- O indicador de progresso ajuda a gerenciar as expectativas do usuário
- Considere seus limites de upload de arquivos na configuração do LibreChat
Melhores Práticas
Para Administradores
- Auditorias Regulares de Permissões: Revise as permissões do aplicativo periodicamente
- Monitorar uso: Rastreie o uso da integração com o SharePoint nos logs
- Atualizar Documentação: Mantenha a documentação interna atualizada com as especificidades do seu tenant
- Testar exaustivamente: Verifique a funcionalidade após quaisquer alterações no Azure AD
Para Usuários Finais
- Organização de Arquivos: Bibliotecas do SharePoint bem organizadas melhoram a experiência do usuário
- Tamanhos de arquivo: Esteja atento a arquivos grandes que podem tornar as conversas lentas
- Permissões: Certifique-se de ter acesso aos arquivos antes de compartilhar
- Downloads do paciente: Permita tempo para arquivos múltiplos ou grandes
Configuração Avançada
Escopos Personalizados
Para organizações com requisitos específicos, você pode personalizar os escopos:
# Example: Limiting to specific site collections
SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://contoso.sharepoint.com/sites/Engineering/AllSites.Read
# Example: Using more restrictive Graph permissions
SHAREPOINT_PICKER_GRAPH_SCOPE=Files.ReadIntegração com Information Barriers
Se a sua organização utiliza Information Barriers:
- A integração com o SharePoint respeita todas as políticas de barreira
- Os usuários veem apenas o conteúdo que têm permissão para acessar
- Nenhuma configuração adicional necessária
Documentação Relacionada
Como está este guia?