Integrazione SharePoint
Configura l'integrazione di SharePoint Online e OneDrive for Business con LibreChat
LibreChat fornisce un'integrazione di livello enterprise con SharePoint Online e OneDrive for Business, consentendo agli utenti di sfogliare, selezionare e allegare file dal proprio ambiente Microsoft 365 direttamente all'interno delle conversazioni in modo fluido.
Panoramica
L'integrazione SharePoint consente agli utenti di:
- Sfoglia le raccolte documenti di SharePoint e i file di OneDrive
- Seleziona più file contemporaneamente (fino a 10 per impostazione predefinita)
- Visualizza l'avanzamento del download in tempo reale
- Allega file da SharePoint alle conversazioni
- Mantieni la sicurezza aziendale con controlli di accesso adeguati
Funzionalità Enterprise
Questa funzionalità richiede Microsoft 365/SharePoint Online ed è progettata per implementazioni aziendali che utilizzano l'autenticazione Azure Entra ID (precedentemente Azure AD).
Prerequisiti
Prima di configurare l'integrazione con SharePoint, assicurati di avere:
- Azure Entra ID Authentication configurata e funzionante
- Token Reuse abilitato (
OPENID_REUSE_TOKENS=true) - Un ambito API esposto per LibreChat, come
api://<client-id>/access_as_user - Accesso amministratore al tuo tenant Azure per le autorizzazioni dell'app
- HTTPS abilitato (richiesto per ambienti di produzione)
Requisito critico
L'integrazione con SharePoint non funzionerà senza OPENID_REUSE_TOKENS=true poiché si basa sul flusso di token on-behalf-of per accedere alle API di Microsoft Graph.
Configurazione della registrazione dell'app Azure
Passaggio 1: Configurare le autorizzazioni API
- Vai alla registrazione della tua app nel Azure Portal
- Vai su API permissions nel menu a sinistra
- Fai clic su Add a permission
Passaggio 2: Esporre e concedere uno scope dell'API di LibreChat
Il flusso on-behalf-of richiede il token di accesso OpenID iniziale per puntare alla API della tua app LibreChat, non a Microsoft Graph. Esponi uno scope API in modo che Azure possa emettere un token con LibreChat come audience.
- Vai su Expose an API nel menu a sinistra
- Imposta l'Application ID URI su
api://<client-id>se non è già configurato - Fai clic su Add a scope
- Assegna al nome dell'ambito
access_as_user - Salva l'ambito (scope), quindi copia il valore completo dell'ambito:
api://<client-id>/access_as_userQuindi concedi tale ambito alla registrazione dell'app:
- Torna a API permissions
- Fai clic su Add a permission
- Seleziona APIs my organization uses
- Cerca e seleziona la tua registrazione dell'app LibreChat
- Scegli Delegated permissions
- Seleziona
access_as_user - Fai clic su Add permissions
Utilizza il valore completo dello scope api://<client-id>/access_as_user in OPENID_SCOPE più avanti in questa guida.
Passaggio 3: Aggiungere le autorizzazioni SharePoint
Per l'interfaccia di selezione file:
- Seleziona SharePoint dall'elenco API
- Scegli Delegated permissions
- Cerca e seleziona:
AllSites.Read- Leggi elementi in tutte le raccolte siti
- Fai clic su Add permissions
Passaggio 4: Aggiungere le autorizzazioni di Microsoft Graph
Per i download di file:
- Fai di nuovo clic su Add a permission
- Seleziona Microsoft Graph
- Scegli Delegated permissions
- Cerca e seleziona:
Files.Read.All- Leggi tutti i file a cui l'utente può accedere
- Fai clic su Add permissions
Passaggio 5: Concedere il consenso dell'amministratore
- Dopo aver aggiunto le autorizzazioni, le vedrai elencate
- Fai clic su Grant admin consent for [Your Organization]
- Conferma il consenso nel popup
Le tue autorizzazioni dovrebbero apparire così:
| Nome API / Autorizzazioni | Tipo | Descrizione | Stato |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegated | Legge tutti i file a cui l'utente può accedere | ✅ Concesso |
| SharePoint - AllSites.Read | Delegated | Legge gli elementi in tutte le raccolte siti | ✅ Concesso |
| LibreChat - access_as_user | Delegated | Consente a LibreChat di ricevere un token compatibile con OBO | ✅ Concesso |
Configurazione dell'ambiente
Aggiungi le seguenti variabili d'ambiente al tuo file .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 tenant
Assicurati di sostituire contoso negli esempi sopra con il nome effettivo del tuo tenant SharePoint. Questo deve corrispondere esattamente al tuo URL SharePoint.
Destinatario dell'ambito OpenID
Sostituisci <client-id> con l'ID applicazione (client) della tua registrazione dell'app Azure. Lo scope api://<client-id>/access_as_user fornisce ad Azure un'audience specifica per l'app per l'asserzione OBO. Se OPENID_SCOPE include solo scope OpenID standard, Azure potrebbe emettere un token di accesso con audience Graph che non può essere scambiato nuovamente per l'accesso a SharePoint o Graph.
Scambio di token Userinfo
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true permette a LibreChat di scambiare il token di accesso dell'app-audience con un token compatibile con le userinfo prima di chiamare l'endpoint userinfo di OpenID. Questo è necessario per le configurazioni di Azure Entra ID in cui OPENID_SCOPE include lo scope dell'API di LibreChat indicato sopra.
Come funziona
Flusso di autenticazione
- L'utente si autentica tramite Azure Entra ID
- Quando si accede al selettore SharePoint, LibreChat scambia il token dell'utente per l'accesso a SharePoint
- I token vengono memorizzati nella cache per prestazioni ottimali (solitamente 50 minuti)
- Ambiti separati garantiscono il principio del privilegio minimo
Processo di selezione dei file
- L'utente clicca su "From SharePoint" nel menu degli allegati
- Il file picker di SharePoint Online si apre in un iframe incorporato
- L'utente naviga e seleziona i file utilizzando la familiare interfaccia di SharePoint
- I file selezionati sono in coda per il download
Processo di download
- I file vengono scaricati in batch (fino a 3 download simultanei)
- L'indicatore di avanzamento mostra il file corrente e la percentuale di completamento
- I file scaricati sono allegati alla conversazione
- I download falliti vengono riprovati automaticamente
Esperienza utente
Accesso ai file SharePoint
Se configurato correttamente, gli utenti vedranno una nuova opzione nel menu degli allegati:
- Fai clic sull'icona dell'allegato nell'input del messaggio
- Seleziona "From SharePoint" dal menu
- Si aprirà il selettore di file di SharePoint
- Sfoglia e seleziona i file come necessario
- Fai clic su "Select" per avviare il download
Funzionalità Disponibili
- Selezione multipla di file: Seleziona fino a 10 file contemporaneamente
- Interfaccia familiare: utilizza il selettore di file nativo di SharePoint
- Monitoraggio del progresso: Visualizza il progresso del download in tempo reale
- Gestione degli errori: Messaggi chiari per qualsiasi problema
- Localizzazione: Supporta diverse lingue
Considerazioni sulla sicurezza
Controllo Accessi
- Sono disponibili solo i file a cui l'utente ha il permesso di accedere in SharePoint
- Rispetta tutte le autorizzazioni e le policy di SharePoint
- Nessun accesso privilegiato o elusione dei controlli di sicurezza
Sicurezza dei Token
- Utilizza il flusso sicuro on-behalf-of per lo scambio di token
- I token sono a breve termine e vengono aggiornati automaticamente
- Nessuna memorizzazione a lungo termine delle credenziali SharePoint
Isolamento dello Scope
- Ambito di SharePoint limitato alle sole operazioni di lettura
- Ambito della Graph API limitato all'accesso in lettura dei file
- Impossibile modificare o eliminare file tramite LibreChat
Risoluzione dei problemi
Problemi comuni
L'opzione "From SharePoint" non viene visualizzata
Causa: Funzionalità non abilitata correttamente o problemi di autenticazione
Soluzioni:
- Verifica
ENABLE_SHAREPOINT_FILEPICKER=truein.env - Conferma che
OPENID_REUSE_TOKENS=truesia impostato - Verifica che l'utente sia autenticato tramite Azure Entra ID
- Riavvia LibreChat dopo le modifiche alla configurazione
Il selettore di file non si apre
Causa: Permessi mancanti o errati
Soluzioni:
- Verifica che le autorizzazioni di SharePoint siano concesse in Azure
- Assicurati che sia stato fornito il consenso dell'amministratore
- Verifica che
SHAREPOINT_BASE_URLcorrisponda esattamente al tuo tenant - Conferma che
SHAREPOINT_PICKER_SHAREPOINT_SCOPEutilizzi l'URL completo del tenant, comehttps://contoso.sharepoint.com/AllSites.Read - Conferma che HTTPS sia abilitato in produzione
Il selettore di file si apre su una pagina bianca vuota
Causa: Azure potrebbe rifiutare lo scambio on-behalf-of perché il token di accesso OpenID ha l'audience errata, o perché lo scambio del token userinfo non è abilitato.
Soluzioni:
- Conferma che la registrazione della tua app Azure abbia un ambito API esposto, come
api://<client-id>/access_as_user - Aggiungi quell'intero ambito a
OPENID_SCOPE - Imposta
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true - Riavvia LibreChat ed effettua nuovamente l'accesso affinché Azure rilasci nuovi token OpenID
I download falliscono o vanno in timeout
Causa: Autorizzazioni Graph API o problemi di rete
Soluzioni:
- Verifica che l'autorizzazione
Files.Read.Allsia concessa - Controlla la connettività di rete a SharePoint
- Assicurati che i token non siano scaduti (riautenticati se necessario)
- Controlla la console del browser per messaggi di errore specifici
Modalità di debug
Per la risoluzione dei problemi, abilita la registrazione di debug:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueQuesto fornirà log dettagliati su:
- Processi di scambio di token
- Chiamate API a SharePoint e Graph
- Avanzamento del download ed errori
- Flussi di autenticazione
Ottimizzazione delle prestazioni
Token Caching
- I token vengono memorizzati nella cache per ridurre il sovraccarico di autenticazione
- La durata della cache corrisponde alla durata del token (solitamente 50 minuti)
- Aggiornamento automatico prima della scadenza
Download simultanei
- Fino a 3 file scaricati simultaneamente
- Impedisce di sovraccaricare il browser o il server
- Ottimizzato sia per la velocità che per la stabilitÃ
Considerazioni sulle dimensioni dei file
- I file di grandi dimensioni potrebbero richiedere del tempo per essere scaricati
- L'indicatore di progresso aiuta a gestire le aspettative dell'utente
- Considera i tuoi limiti di caricamento file nella configurazione di LibreChat
Best Practices
Per gli amministratori
- Audit periodici delle autorizzazioni: Rivedi periodicamente le autorizzazioni dell'app
- Monitoraggio dell'utilizzo: Traccia l'utilizzo dell'integrazione SharePoint nei log
- Aggiornamento della documentazione: Mantieni aggiornata la documentazione interna con le specifiche del tuo tenant
- Test Thoroughly: Verifica la funzionalità dopo qualsiasi modifica ad Azure AD
Per gli utenti finali
- Organizzazione dei file: Le librerie SharePoint ben organizzate migliorano l'esperienza utente
- Dimensioni dei file: Fai attenzione ai file di grandi dimensioni che potrebbero rallentare le conversazioni
- Autorizzazioni: Assicurati di avere accesso ai file prima di condividerli
- Download paziente: Consenti tempo per file multipli o di grandi dimensioni
Configurazione avanzata
Ambiti personalizzati
Per le organizzazioni con requisiti specifici, è possibile personalizzare gli scope:
# 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.ReadIntegrazione con Information Barriers
Se la tua organizzazione utilizza Information Barriers:
- L'integrazione con SharePoint rispetta tutte le policy di barriera
- Gli utenti vedono solo i contenuti a cui sono autorizzati ad accedere
- Nessuna configurazione aggiuntiva richiesta
Documentazione correlata
Com’è questa guida?