SharePoint-integratie
Configureer SharePoint Online en OneDrive for Business integratie met LibreChat
LibreChat biedt integratie van enterprise-niveau met SharePoint Online en OneDrive for Business, waardoor gebruikers naadloos bestanden uit hun Microsoft 365-omgeving kunnen bladeren, selecteren en bijvoegen, direct binnen gesprekken.
Overzicht
De SharePoint-integratie stelt gebruikers in staat om:
- Blader door SharePoint-documentbibliotheken en OneDrive-bestanden
- Selecteer meerdere bestanden tegelijk (standaard maximaal 10)
- Bekijk de voortgang van de download in realtime
- Bestanden van SharePoint toevoegen aan gesprekken
- Behoud bedrijfsbeveiliging met de juiste toegangscontroles
Enterprise-functie
Deze functie vereist Microsoft 365/SharePoint Online en is ontworpen voor enterprise-implementaties die gebruikmaken van Azure Entra ID (voorheen Azure AD) authenticatie.
Vereisten
Voordat je de SharePoint-integratie configureert, moet je ervoor zorgen dat je beschikt over:
- Azure Entra ID Authentication geconfigureerd en werkend
- Token Reuse ingeschakeld (
OPENID_REUSE_TOKENS=true) - Een blootgestelde API-scope voor LibreChat, zoals
api://<client-id>/access_as_user - Beheerdersrechten (Admin access) tot uw Azure-tenant voor app-machtigingen
- HTTPS ingeschakeld (vereist voor productieomgevingen)
Kritieke vereiste
SharePoint-integratie zal niet werken zonder OPENID_REUSE_TOKENS=true, aangezien deze afhankelijk is van de on-behalf-of token flow om toegang te krijgen tot Microsoft Graph API's.
Azure App Registration Setup
Stap 1: API-rechten configureren
- Navigeer naar je app-registratie in de Azure Portal
- Ga naar API permissions in het linkermenu
- Klik op Add a permission
Stap 2: Stel een LibreChat API-scope bloot en verleen toegang
De on-behalf-of flow vereist het initiële OpenID-toegangstoken om je LibreChat app API te targeten, niet Microsoft Graph. Stel een API-scope bloot zodat Azure een token kan uitgeven met LibreChat als de audience.
- Ga naar Expose an API in het linkermenu
- Stel de Application ID URI in op
api://<client-id>als deze nog niet is geconfigureerd - Klik op Add a scope
- Noem het scope
access_as_user - Sla het bereik op en kopieer vervolgens de volledige waarde van het bereik:
api://<client-id>/access_as_userVerleen vervolgens dat scope aan de app-registratie:
- Ga terug naar API permissions
- Klik op Add a permission
- Selecteer APIs my organization uses
- Zoek naar en selecteer je LibreChat app-registratie
- Kies Delegated permissions
- Selecteer
access_as_user - Klik op Add permissions
Gebruik de volledige api://<client-id>/access_as_user scope-waarde in OPENID_SCOPE verderop in deze handleiding.
Stap 3: SharePoint-machtigingen toevoegen
Voor de interface van de bestandskiezer:
- Selecteer SharePoint uit de API-lijst
- Kies Delegated permissions
- Zoek en selecteer:
AllSites.Read- Items in alle siteverzamelingen lezen
- Klik op Add permissions
Stap 4: Microsoft Graph-machtigingen toevoegen
Voor bestandsdownloads:
- Klik nogmaals op Add a permission
- Selecteer Microsoft Graph
- Kies Delegated permissions
- Zoek en selecteer:
Files.Read.All- Lees alle bestanden waartoe de gebruiker toegang heeft
- Klik op Add permissions
Stap 5: Admin-toestemming verlenen
- Nadat je de rechten hebt toegevoegd, zie je ze in de lijst staan
- Klik op Grant admin consent for [Your Organization]
- Bevestig de toestemming in de pop-up
Je rechten zouden er als volgt uit moeten zien:
| API / Rechtennaam | Type | Beschrijving | Status |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Gedelegeerd | Lees alle bestanden waar de gebruiker toegang toe heeft | ✅ Verleend |
| SharePoint - AllSites.Read | Gedelegeerd | Lees items in alle siteverzamelingen | ✅ Verleend |
| LibreChat - access_as_user | Gedelegeerd | Sta LibreChat toe om een OBO-compatibel token te ontvangen | ✅ Verleend |
Omgevingsconfiguratie
Voeg de volgende omgevingsvariabelen toe aan je .env bestand:
# 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.AllTenant-naam
Zorg ervoor dat je contoso in de bovenstaande voorbeelden vervangt door je werkelijke SharePoint-tenantnaam. Dit moet exact overeenkomen met je SharePoint-URL.
OpenID Scope Audience
Vervang <client-id> door de Application (client) ID van je Azure-appregistratie. De api://<client-id>/access_as_user scope geeft Azure een app-specifieke audience voor de OBO-assertie. Als OPENID_SCOPE alleen standaard OpenID-scopes bevat, kan Azure een Graph-audience toegangstoken uitgeven dat niet opnieuw kan worden uitgewisseld voor SharePoint- of Graph-toegang.
Userinfo Token Exchange
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true laat LibreChat het app-audience access token uitwisselen voor een userinfo-compatibel token voordat het OpenID userinfo-endpoint wordt aangeroepen. Dit is vereist voor Azure Entra ID-configuraties waarbij de OPENID_SCOPE het bovenstaande LibreChat API-scope bevat.
Hoe het werkt
Authenticatiestroom
- Gebruiker authenticeert via Azure Entra ID
- Bij toegang tot de SharePoint-kiezer wisselt LibreChat het token van de gebruiker in voor SharePoint-toegang
- Tokens worden gecachet voor optimale prestaties (doorgaans 50 minuten)
- Gescheiden scopes waarborgen het principe van de minste privileges
Bestandselectieproces
- Gebruiker klikt op "From SharePoint" in het bijlagenmenu
- SharePoint Online-bestandsverkenner opent in een ingesloten iframe
- Gebruiker bladert door bestanden en selecteert deze met behulp van de vertrouwde SharePoint-interface
- Geselecteerde bestanden staan in de wachtrij om te worden gedownload
Downloadproces
- Bestanden worden in batches gedownload (tot 3 gelijktijdige downloads)
- Voortgangsindicator toont het huidige bestand en het voltooiingspercentage
- Gedownloade bestanden zijn bijgevoegd aan het gesprek
- Mislukte downloads worden automatisch opnieuw geprobeerd
Gebruikerservaring
Toegang krijgen tot SharePoint-bestanden
Wanneer correct geconfigureerd, zullen gebruikers een nieuwe optie zien in het menu voor bestandbijlagen:
- Klik op het bijlage-icoon in het berichtinvoerveld
- Selecteer "From SharePoint" in het menu
- De SharePoint-bestandenkiezer wordt geopend
- Blader door en selecteer bestanden naar behoefte
- Klik op "Select" om het downloaden te starten
Beschikbare functies
- Meervoudige bestandsselectie: Selecteer tot 10 bestanden tegelijk
- Vertrouwde interface: Gebruikt de native SharePoint-bestandsselectie
- Voortgang bijhouden: Bekijk de downloadvoortgang in realtime
- Foutafhandeling: Duidelijke berichten voor eventuele problemen
- Lokalisatie: Ondersteunt meerdere talen
Beveiligingsoverwegingen
Toegangscontrole
- Alleen bestanden waartoe de gebruiker toegang heeft in SharePoint zijn beschikbaar
- Respecteert alle SharePoint-machtigingen en -beleidsregels
- Geen verhoogde toegang of omzeiling van beveiligingscontroles
Tokenbeveiliging
- Gebruikt een veilige on-behalf-of flow voor token-uitwisseling
- Tokens zijn kortstondig en worden automatisch vernieuwd
- Geen langetermijnopslag van SharePoint-inloggegevens
Scope Isolation
- SharePoint-scope beperkt tot alleen leesbewerkingen
- Graph API scope beperkt tot bestandstoegang voor lezen
- Kan bestanden niet wijzigen of verwijderen via LibreChat
Probleemoplossing
Veelvoorkomende problemen
De optie "From SharePoint" verschijnt niet
Oorzaak: Functie niet correct ingeschakeld of authenticatieproblemen
Oplossingen:
- Controleer
ENABLE_SHAREPOINT_FILEPICKER=truein.env - Bevestig dat
OPENID_REUSE_TOKENS=trueis ingesteld - Controleer of de gebruiker is geauthenticeerd via Azure Entra ID
- Start LibreChat opnieuw op na configuratiewijzigingen
Bestandskiezer opent niet
Oorzaak: Ontbrekende of onjuiste rechten
Oplossingen:
- Controleer of SharePoint-machtigingen zijn verleend in Azure
- Zorg ervoor dat er toestemming van de beheerder is verleend
- Controleer of
SHAREPOINT_BASE_URLexact overeenkomt met uw tenant - Bevestig dat
SHAREPOINT_PICKER_SHAREPOINT_SCOPEde volledige tenant-URL gebruikt, zoalshttps://contoso.sharepoint.com/AllSites.Read - Bevestig dat HTTPS is ingeschakeld in productie
Bestandsselectie opent naar een lege witte pagina
Oorzaak: Azure wijst de on-behalf-of uitwisseling mogelijk af omdat het OpenID-toegangstoken de verkeerde audience heeft, of omdat de userinfo-tokenuitwisseling niet is ingeschakeld.
Oplossingen:
- Bevestig dat uw Azure app-registratie een exposed API scope heeft, zoals
api://<client-id>/access_as_user - Voeg dat volledige bereik toe aan
OPENID_SCOPE - Stel
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=truein - Herstart LibreChat en meld je opnieuw aan zodat Azure nieuwe OpenID-tokens uitgeeft
Downloads mislukken of time-out
Oorzaak: Graph API-machtigingen of netwerkproblemen
Oplossingen:
- Controleer of de
Files.Read.Allmachtiging is verleend - Controleer de netwerkverbinding met SharePoint
- Zorg ervoor dat tokens niet zijn verlopen (authenticeer opnieuw indien nodig)
- Controleer de browserconsole voor specifieke foutmeldingen
Debug-modus
Schakel voor probleemoplossing debug-logging in:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueDit zal gedetailleerde logs verstrekken over:
- Token exchange-processen
- API-aanroepen naar SharePoint en Graph
- Downloadvoortgang en fouten
- Authenticatiestromen
Prestatieoptimalisatie
Token Caching
- Tokens worden gecachet om de authenticatie-overhead te verminderen.
- Cache-duur komt overeen met de token-levensduur (doorgaans 50 minuten)
- Automatische verversing vóór verloop
Gelijktijdige downloads
- Tot 3 bestanden tegelijk downloaden
- Voorkomt overbelasting van de browser of server
- Optimaliseert voor zowel snelheid als stabiliteit
Overwegingen met betrekking tot bestandsgrootte
- Het downloaden van grote bestanden kan enige tijd in beslag nemen
- De voortgangsindicator helpt bij het beheren van de verwachtingen van de gebruiker
- Overweeg je limieten voor het uploaden van bestanden in de LibreChat configuratie
Best Practices
Voor beheerders
- Regelmatige rechtenaudits: Controleer periodiek de app-rechten
- Gebruik monitoren: Houd het gebruik van de SharePoint-integratie bij in de logs
- Documentatie bijwerken: Houd interne documentatie bijgewerkt met je specifieke tenant-gegevens
- Test Thoroughly: Controleer de functionaliteit na eventuele wijzigingen in Azure AD
Voor eindgebruikers
- Bestandsorganisatie: Goed georganiseerde SharePoint-bibliotheken verbeteren de gebruikerservaring
- Bestandsgroottes: Wees je bewust van grote bestanden die gesprekken kunnen vertragen
- Permissions: Zorg ervoor dat je toegang hebt tot bestanden voordat je ze deelt
- Patient Downloads: Geef tijd voor meerdere of grote bestanden
Geavanceerde configuratie
Aangepaste Scopes
Voor organisaties met specifieke vereisten kun je scopes aanpassen:
# 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.ReadIntegratie met Information Barriers
Als uw organisatie Information Barriers gebruikt:
- SharePoint-integratie respecteert alle barrièrebeleidsregels
- Gebruikers zien alleen inhoud waartoe ze toegang hebben
- Geen aanvullende configuratie vereist
Gerelateerde documentatie
Hoe is deze gids?