SharePoint-Integration
Konfiguration der SharePoint Online- und OneDrive for Business-Integration mit LibreChat
LibreChat bietet eine Integration auf Unternehmensniveau mit SharePoint Online und OneDrive for Business, die es Benutzern ermöglicht, Dateien aus ihrer Microsoft 365-Umgebung nahtlos zu durchsuchen, auszuwählen und direkt innerhalb von Unterhaltungen anzuhängen.
Übersicht
Die SharePoint-Integration ermöglicht es Benutzern:
- Durchsuchen von SharePoint-Dokumentbibliotheken und OneDrive-Dateien
- Wählen Sie mehrere Dateien gleichzeitig aus (standardmäßig bis zu 10)
- Echtzeit-Download-Fortschritt anzeigen
- Dateien aus SharePoint an Unterhaltungen anhängen
- Wahren Sie die Unternehmenssicherheit mit angemessenen Zugriffskontrollen
Enterprise-Funktion
Diese Funktion erfordert Microsoft 365/SharePoint Online und ist für Unternehmensbereitstellungen konzipiert, die Azure Entra ID (ehemals Azure AD) Authentifizierung verwenden.
Voraussetzungen
Bevor Sie die SharePoint-Integration konfigurieren, stellen Sie sicher, dass Sie über Folgendes verfügen:
- Azure Entra ID Authentication konfiguriert und funktionsfähig
- Token-Wiederverwendung aktiviert (
OPENID_REUSE_TOKENS=true) - Ein exponierter API-Scope für LibreChat, wie zum Beispiel
api://<client-id>/access_as_user - Administratorzugriff auf Ihren Azure-Mandanten für App-Berechtigungen
- HTTPS aktiviert (erforderlich für Produktionsumgebungen)
Kritische Anforderung
Die SharePoint-Integration funktioniert nicht ohne OPENID_REUSE_TOKENS=true, da sie auf den On-Behalf-Of-Token-Flow angewiesen ist, um auf Microsoft Graph APIs zuzugreifen.
Azure App Registration Einrichtung
Schritt 1: API-Berechtigungen konfigurieren
- Navigieren Sie zu Ihrer App-Registrierung im Azure Portal
- Gehe im linken Menü zu API permissions
- Klicken Sie auf Add a permission
Schritt 2: Einen LibreChat API-Scope freigeben und gewähren
Der „On-Behalf-Of“-Flow benötigt das ursprüngliche OpenID-Zugriffstoken, um auf Ihre LibreChat-App-API zuzugreifen, nicht auf Microsoft Graph. Stellen Sie einen API-Scope bereit, damit Azure ein Token mit LibreChat als Zielgruppe (Audience) ausstellen kann.
- Gehen Sie im linken Menü auf Expose an API
- Setzen Sie den Application ID URI auf
api://<client-id>, falls dieser noch nicht konfiguriert ist. - Klicken Sie auf Add a scope
- Nennen Sie den Scope
access_as_user - Speichern Sie den Scope und kopieren Sie anschließend den vollständigen Scope-Wert:
api://<client-id>/access_as_userGewähren Sie dann diesen Scope der App-Registrierung:
- Gehe zurück zu API permissions
- Klicken Sie auf Add a permission
- Wählen Sie APIs, die meine Organisation verwendet
- Suchen Sie nach Ihrer LibreChat App-Registrierung und wählen Sie diese aus
- Wählen Sie Delegated permissions
- Wählen Sie
access_as_user - Klicken Sie auf Add permissions
Verwenden Sie den vollständigen api://<client-id>/access_as_user Scope-Wert in OPENID_SCOPE später in diesem Leitfaden.
Schritt 3: SharePoint-Berechtigungen hinzufügen
Für die Dateiauswahl-Schnittstelle:
- Wählen Sie SharePoint aus der API-Liste aus
- Wählen Sie Delegated permissions
- Suchen und auswählen:
AllSites.Read- Elemente in allen Websitesammlungen lesen
- Klicken Sie auf Add permissions
Schritt 4: Microsoft Graph-Berechtigungen hinzufügen
Für Dateidownloads:
- Klicken Sie erneut auf Add a permission
- Wählen Sie Microsoft Graph
- Wählen Sie Delegated permissions
- Suchen und auswählen:
Files.Read.All- Alle Dateien lesen, auf die der Benutzer zugreifen kann
- Klicken Sie auf Add permissions
Schritt 5: Admin-Zustimmung erteilen
- Nachdem Sie die Berechtigungen hinzugefügt haben, werden diese in der Liste angezeigt.
- Klicken Sie auf Administratoreinwilligung für [Ihre Organisation] erteilen
- Bestätigen Sie die Zustimmung im Popup
Deine Berechtigungen sollten wie folgt aussehen:
| API / Berechtigungsname | Typ | Beschreibung | Status |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegated | Alle Dateien lesen, auf die der Benutzer zugreifen kann | ✅ Erteilt |
| SharePoint - AllSites.Read | Delegated | Elemente in allen Websitesammlungen lesen | ✅ Erteilt |
| LibreChat - access_as_user | Delegated | LibreChat erlauben, ein OBO-kompatibles Token zu empfangen | ✅ Erteilt |
Umgebungskonfiguration
Fügen Sie die folgenden Umgebungsvariablen zu Ihrer .env Datei hinzu:
# 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.AllMandantenname
Stellen Sie sicher, dass Sie contoso in den obigen Beispielen durch Ihren tatsächlichen SharePoint-Mandantennamen ersetzen. Dieser muss exakt mit Ihrer SharePoint-URL übereinstimmen.
OpenID-Scope-Zielgruppe
Ersetzen Sie <client-id> durch die Anwendungs-ID (Client-ID) Ihrer Azure-App-Registrierung. Der Scope api://<client-id>/access_as_user gibt Azure eine app-spezifische Zielgruppe für die OBO-Assertion. Wenn OPENID_SCOPE nur Standard-OpenID-Scopes enthält, stellt Azure möglicherweise ein Zugriffstoken mit Graph-Zielgruppe aus, das nicht erneut gegen SharePoint- oder Graph-Zugriff ausgetauscht werden kann.
Userinfo-Token-Austausch
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true ermöglicht es LibreChat, das App-Audience-Zugriffstoken gegen ein Userinfo-kompatibles Token auszutauschen, bevor der OpenID-Userinfo-Endpunkt aufgerufen wird. Dies ist für Azure Entra ID-Setups erforderlich, bei denen der OPENID_SCOPE den oben genannten LibreChat API-Scope enthält.
Funktionsweise
Authentifizierungsablauf
- Der Benutzer authentifiziert sich über Azure Entra ID
- Beim Zugriff auf den SharePoint-Picker tauscht LibreChat das Token des Benutzers gegen einen SharePoint-Zugriff aus.
- Tokens werden für eine optimale Leistung zwischengespeichert (typischerweise 50 Minuten)
- Getrennte Scopes gewährleisten das Prinzip der geringsten Rechte (Principle of Least Privilege)
Dateiauswahlprozess
- Der Benutzer klickt im Anhang-Menü auf "From SharePoint"
- Der SharePoint Online-Dateiauswähler wird in einem eingebetteten iframe geöffnet
- Der Benutzer durchsucht und wählt Dateien über die vertraute SharePoint-Oberfläche aus
- Ausgewählte Dateien sind für den Download in der Warteschlange
Download-Prozess
- Dateien werden in Batches heruntergeladen (bis zu 3 gleichzeitige Downloads)
- Die Fortschrittsanzeige zeigt die aktuelle Datei und den prozentualen Fortschritt an
- Heruntergeladene Dateien werden an die Konversation angehängt
- Fehlgeschlagene Downloads werden automatisch erneut versucht.
Benutzererfahrung
Zugriff auf SharePoint-Dateien
Bei korrekter Konfiguration sehen Benutzer eine neue Option im Dateianhang-Menü:
- Klicken Sie auf das Anhang-Symbol in der Nachrichteneingabe
- Wählen Sie „From SharePoint“ aus dem Menü
- Der SharePoint-Dateiauswähler wird geöffnet
- Dateien nach Bedarf durchsuchen und auswählen
- Klicken Sie auf „Select“, um den Download zu starten
Verfügbare Funktionen
- Mehrfachauswahl von Dateien: Wählen Sie bis zu 10 Dateien gleichzeitig aus
- Vertraute Benutzeroberfläche: Verwendet die native SharePoint-Dateiauswahl
- Fortschrittsverfolgung: Echtzeit-Download-Fortschritt anzeigen
- Fehlerbehandlung: Klare Meldungen bei auftretenden Problemen
- Lokalisierung: Unterstützt mehrere Sprachen
Sicherheitsaspekte
Zugriffskontrolle
- Nur Dateien, auf die der Benutzer in SharePoint Zugriffsberechtigungen hat, sind verfügbar.
- Respektiert alle SharePoint-Berechtigungen und -Richtlinien
- Kein erweiterter Zugriff oder Umgehung von Sicherheitskontrollen
Token-Sicherheit
- Verwendet den sicheren On-Behalf-Of-Flow für den Token-Austausch
- Tokens sind kurzlebig und werden automatisch aktualisiert
- Keine langfristige Speicherung von SharePoint-Anmeldedaten
Bereichsisolierung
- SharePoint-Bereich auf reine Lesezugriffe beschränkt
- Graph API-Bereich auf Dateilesezugriff beschränkt
- Dateien können nicht über LibreChat geändert oder gelöscht werden
Fehlerbehebung
Häufige Probleme
Die Option "From SharePoint" wird nicht angezeigt
Ursache: Funktion nicht ordnungsgemäß aktiviert oder Authentifizierungsprobleme
Lösungen:
- Überprüfe
ENABLE_SHAREPOINT_FILEPICKER=truein der.env - Stellen Sie sicher, dass
OPENID_REUSE_TOKENS=truegesetzt ist - Überprüfen, ob der Benutzer über Azure Entra ID authentifiziert ist
- Starten Sie LibreChat nach Konfigurationsänderungen neu
Dateiauswahl lässt sich nicht öffnen
Ursache: Fehlende oder falsche Berechtigungen
Lösungen:
- Stellen Sie sicher, dass die SharePoint-Berechtigungen in Azure erteilt wurden
- Stellen Sie sicher, dass die Administratorzustimmung erteilt wurde
- Überprüfen Sie, dass
SHAREPOINT_BASE_URLexakt mit Ihrem Tenant übereinstimmt - Stellen Sie sicher, dass
SHAREPOINT_PICKER_SHAREPOINT_SCOPEdie vollständige Tenant-URL verwendet, wie zum Beispielhttps://contoso.sharepoint.com/AllSites.Read - Stellen Sie sicher, dass HTTPS in der Produktion aktiviert ist
Dateiauswahl öffnet eine leere weiße Seite
Ursache: Azure lehnt den On-Behalf-Of-Austausch möglicherweise ab, weil das OpenID-Zugriffstoken die falsche Zielgruppe (Audience) hat oder weil der Userinfo-Token-Austausch nicht aktiviert ist.
Lösungen:
- Stellen Sie sicher, dass Ihre Azure-App-Registrierung einen freigegebenen API-Scope hat, wie zum Beispiel
api://<client-id>/access_as_user - Fügen Sie diesen vollständigen Bereich zu
OPENID_SCOPEhinzu - Setze
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true - Starten Sie LibreChat neu und melden Sie sich erneut an, damit Azure neue OpenID-Token ausstellt.
Downloads schlagen fehl oder verursachen ein Timeout
Ursache: Graph API-Berechtigungen oder Netzwerkprobleme
Lösungen:
- Stellen Sie sicher, dass die Berechtigung
Files.Read.Allerteilt wurde - Überprüfen Sie die Netzwerkverbindung zu SharePoint
- Stellen Sie sicher, dass die Tokens nicht abgelaufen sind (bei Bedarf erneut authentifizieren)
- Überprüfen Sie die Browser-Konsole auf spezifische Fehlermeldungen
Debug-Modus
Zur Fehlerbehebung aktivieren Sie das Debug-Logging:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueDies liefert detaillierte Protokolle über:
- Token-Austauschprozesse
- API-Aufrufe an SharePoint und Graph
- Download-Fortschritt und Fehler
- Authentifizierungsabläufe
Leistungsoptimierung
Token Caching
- Tokens werden zwischengespeichert, um den Authentifizierungsaufwand zu reduzieren.
- Die Cache-Dauer entspricht der Token-Lebensdauer (typischerweise 50 Minuten)
- Automatische Aktualisierung vor Ablauf
Gleichzeitige Downloads
- Bis zu 3 Dateien gleichzeitig herunterladen
- Verhindert eine Überlastung des Browsers oder Servers
- Optimiert sowohl für Geschwindigkeit als auch für Stabilität
Überlegungen zur Dateigröße
- Das Herunterladen großer Dateien kann einige Zeit in Anspruch nehmen
- Die Fortschrittsanzeige hilft dabei, die Erwartungen der Benutzer zu steuern.
- Berücksichtigen Sie Ihre Dateiupload-Limits in der LibreChat-Konfiguration
Best Practices
Für Administratoren
- Regelmäßige Berechtigungsprüfungen: Überprüfen Sie die App-Berechtigungen regelmäßig
- Nutzung überwachen: Verfolgen Sie die Nutzung der SharePoint-Integration in den Protokollen
- Dokumentation aktualisieren: Halten Sie die internen Dokumente mit Ihren Mandantenspezifikationen auf dem neuesten Stand
- Gründlich testen: Überprüfen Sie die Funktionalität nach jeglichen Änderungen an Azure AD
Für Endbenutzer
- Dateiorganisation: Gut organisierte SharePoint-Bibliotheken verbessern die Benutzererfahrung
- Dateigrößen: Achten Sie auf große Dateien, die Konversationen verlangsamen könnten
- Berechtigungen: Stellen Sie sicher, dass Sie Zugriff auf Dateien haben, bevor Sie diese teilen
- Patienten-Downloads: Planen Sie Zeit für mehrere oder große Dateien ein
Erweiterte Konfiguration
Benutzerdefinierte Scopes
Für Organisationen mit spezifischen Anforderungen können Sie die Scopes anpassen:
# 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.ReadIntegration mit Information Barriers
Wenn Ihre Organisation Information Barriers verwendet:
- Die SharePoint-Integration respektiert alle Barriererichtlinien
- Benutzer sehen nur Inhalte, auf die sie zugreifen dürfen
- Keine zusätzliche Konfiguration erforderlich
Zugehörige Dokumentation
Wie finden Sie diese Anleitung?