Integracja z SharePoint
Skonfiguruj integrację SharePoint Online i OneDrive for Business z LibreChat
LibreChat zapewnia integrację klasy korporacyjnej z SharePoint Online oraz OneDrive for Business, umożliwiając użytkownikom płynne przeglądanie, wybieranie i załączanie plików ze środowiska Microsoft 365 bezpośrednio wewnątrz konwersacji.
Przegląd
Integracja z SharePoint umożliwia użytkownikom:
- Przeglądaj biblioteki dokumentów SharePoint i pliki OneDrive
- Wybierz wiele plików jednocześnie (domyślnie do 10)
- Zobacz postęp pobierania w czasie rzeczywistym
- Dołączaj pliki z SharePoint do konwersacji
- Utrzymuj bezpieczeństwo klasy korporacyjnej dzięki odpowiednim kontrolom dostępu
Funkcja Enterprise
Ta funkcja wymaga Microsoft 365/SharePoint Online i jest przeznaczona dla wdrożeń korporacyjnych korzystających z uwierzytelniania Azure Entra ID (dawniej Azure AD).
Wymagania wstępne
Przed skonfigurowaniem integracji z SharePoint upewnij się, że posiadasz:
- Azure Entra ID Authentication skonfigurowane i działające
- Token Reuse włączone (
OPENID_REUSE_TOKENS=true) - Udostępniony zakres API dla LibreChat, taki jak
api://<client-id>/access_as_user - Dostęp administratora do Twojego tenanta Azure w celu nadania uprawnień aplikacji
- HTTPS włączone (wymagane w środowiskach produkcyjnych)
Kluczowy wymóg
Integracja z SharePoint nie będzie działać bez OPENID_REUSE_TOKENS=true, ponieważ opiera się ona na przepływie tokenów on-behalf-of w celu uzyskania dostępu do interfejsów API Microsoft Graph.
Konfiguracja rejestracji aplikacji Azure
Krok 1: Skonfiguruj uprawnienia API
- Przejdź do rejestracji swojej aplikacji w Azure Portal
- Przejdź do API permissions w menu po lewej stronie
- Kliknij Add a permission
Krok 2: Uwidocznij i przyznaj zakres API LibreChat
Przepływ on-behalf-of wymaga początkowego tokenu dostępu OpenID, aby kierować zapytania do API Twojej aplikacji LibreChat, a nie do Microsoft Graph. Uwidocznij zakres (scope) API, aby Azure mógł wydać token z LibreChat jako odbiorcą (audience).
- Przejdź do Expose an API w menu po lewej stronie
- Ustaw Application ID URI na
api://<client-id>, jeśli nie jest jeszcze skonfigurowany - Kliknij Add a scope
- Nazwij zakres
access_as_user - Zapisz zakres (scope), a następnie skopiuj pełną wartość zakresu:
api://<client-id>/access_as_userNastępnie przyznaj ten zakres rejestracji aplikacji:
- Wróć do API permissions
- Kliknij Add a permission
- Wybierz APIs my organization uses
- Wyszukaj i wybierz swoją rejestrację aplikacji LibreChat
- Wybierz Delegated permissions
- Wybierz
access_as_user - Kliknij Add permissions
Użyj pełnej wartości zakresu api://<client-id>/access_as_user w OPENID_SCOPE w dalszej części tego przewodnika.
Krok 3: Dodaj uprawnienia SharePoint
Dla interfejsu wyboru plików:
- Wybierz SharePoint z listy API
- Wybierz Delegated permissions
- Wyszukaj i wybierz:
AllSites.Read- Odczyt elementów we wszystkich kolekcjach witryn
- Kliknij Add permissions
Krok 4: Dodaj uprawnienia Microsoft Graph
Dla pobierania plików:
- Kliknij ponownie Add a permission
- Wybierz Microsoft Graph
- Wybierz Delegated permissions
- Wyszukaj i wybierz:
Files.Read.All- Odczyt wszystkich plików, do których użytkownik ma dostęp
- Kliknij Add permissions
Krok 5: Udziel zgody administratora
- Po dodaniu uprawnień zobaczysz je na liście
- Kliknij Udziel zgody administratora dla [Twoja Organizacja]
- Potwierdź zgodę w wyskakującym okienku
Twoje uprawnienia powinny wyglądać następująco:
| Nazwa API / Uprawnienia | Typ | Opis | Status |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegowane | Odczyt wszystkich plików, do których użytkownik ma dostęp | ✅ Przyznano |
| SharePoint - AllSites.Read | Delegowane | Odczyt elementów we wszystkich kolekcjach witryn | ✅ Przyznano |
| LibreChat - access_as_user | Delegowane | Pozwól LibreChat na otrzymanie tokena zgodnego z OBO | ✅ Przyznano |
Konfiguracja środowiska
Dodaj następujące zmienne środowiskowe do swojego pliku .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.AllNazwa dzierżawcy
Upewnij się, że zastąpisz contoso w powyższych przykładach swoją rzeczywistą nazwą dzierżawy SharePoint. Musi ona dokładnie odpowiadać Twojemu adresowi URL SharePoint.
Odbiorca zakresu OpenID
Zastąp <client-id> identyfikatorem aplikacji (klienta) swojej rejestracji aplikacji Azure. Zakres api://<client-id>/access_as_user nadaje Azure specyficzną dla aplikacji grupę odbiorców dla asercji OBO. Jeśli OPENID_SCOPE zawiera tylko standardowe zakresy OpenID, Azure może wydać token dostępu dla grupy odbiorców Graph, którego nie można ponownie wymienić na dostęp do SharePoint lub Graph.
Wymiana tokenów Userinfo
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true pozwala LibreChat na wymianę tokena dostępu z grupą odbiorców aplikacji na token zgodny z userinfo przed wywołaniem punktu końcowego userinfo OpenID. Jest to wymagane w przypadku konfiguracji Azure Entra ID, gdzie OPENID_SCOPE zawiera powyższy zakres API LibreChat.
Jak to działa
Przepływ uwierzytelniania
- Użytkownik uwierzytelnia się za pomocą Azure Entra ID
- Podczas uzyskiwania dostępu do selektora SharePoint, LibreChat wymienia token użytkownika na dostęp do SharePoint.
- Tokeny są buforowane w celu uzyskania optymalnej wydajności (zazwyczaj przez 50 minut)
- Oddzielne zakresy zapewniają zasadę najmniejszych uprawnień
Proces wyboru plików
- Użytkownik klika „From SharePoint” w menu załączników
- Selektor plików SharePoint Online otwiera się w osadzonym elemencie iframe
- Użytkownik przegląda i wybiera pliki przy użyciu znanego interfejsu SharePoint
- Wybrane pliki zostały dodane do kolejki pobierania
Proces pobierania
- Pliki są pobierane w partiach (do 3 jednoczesnych pobrań)
- Wskaźnik postępu pokazuje bieżący plik i procent ukończenia
- Pobrane pliki są dołączone do konwersacji
- Nieudane pobieranie jest ponawiane automatycznie
Doświadczenie użytkownika
Dostęp do plików SharePoint
Po prawidłowej konfiguracji użytkownicy zobaczą nową opcję w menu załączników plików:
- Kliknij ikonę załącznika w polu wprowadzania wiadomości
- Wybierz "From SharePoint" z menu
- Otworzy się selektor plików SharePoint
- Przeglądaj i wybieraj pliki w razie potrzeby
- Kliknij "Select", aby rozpocząć pobieranie
Dostępne funkcje
- Wybór wielu plików: Wybierz do 10 plików jednocześnie
- Znajomy interfejs: Wykorzystuje natywny selektor plików SharePoint
- Śledzenie postępu: Zobacz postęp pobierania w czasie rzeczywistym
- Obsługa błędów: Jasne komunikaty dotyczące wszelkich problemów
- Localization: Obsługuje wiele języków
Kwestie bezpieczeństwa
Kontrola dostępu
- Dostępne są tylko pliki, do których użytkownik ma uprawnienia w SharePoint
- Respektuje wszystkie uprawnienia i zasady SharePoint
- Brak podwyższonego dostępu lub omijania zabezpieczeń
Bezpieczeństwo tokenów
- Wykorzystuje bezpieczny przepływ on-behalf-of do wymiany tokenów
- Tokeny są krótkotrwałe i automatycznie odświeżane
- Brak długoterminowego przechowywania poświadczeń SharePoint
Izolacja zakresu
- Zakres SharePoint ograniczony wyłącznie do operacji odczytu
- Zakres Graph API ograniczony do dostępu do odczytu plików
- Nie można modyfikować ani usuwać plików za pośrednictwem LibreChat
Rozwiązywanie problemów
Typowe problemy
Opcja "From SharePoint" nie pojawia się
Przyczyna: Funkcja nie została poprawnie włączona lub wystąpiły problemy z uwierzytelnianiem
Rozwiązania:
- Zweryfikuj
ENABLE_SHAREPOINT_FILEPICKER=truew pliku.env - Upewnij się, że ustawiono
OPENID_REUSE_TOKENS=true - Sprawdź, czy użytkownik jest uwierzytelniony przez Azure Entra ID
- Zrestartuj LibreChat po wprowadzeniu zmian w konfiguracji
Wybór plików nie działa
Przyczyna: Brakujące lub nieprawidłowe uprawnienia
Rozwiązania:
- Zweryfikuj, czy uprawnienia SharePoint zostały przyznane w Azure
- Upewnij się, że uzyskano zgodę administratora
- Sprawdź, czy
SHAREPOINT_BASE_URLdokładnie odpowiada Twojemu tenantowi - Upewnij się, że
SHAREPOINT_PICKER_SHAREPOINT_SCOPEużywa pełnego adresu URL dzierżawy, na przykładhttps://contoso.sharepoint.com/AllSites.Read - Potwierdź, że HTTPS jest włączone w środowisku produkcyjnym
Selektor plików otwiera się na pustej białej stronie
Przyczyna: Azure może odrzucać wymianę on-behalf-of, ponieważ token dostępu OpenID ma nieprawidłową grupę odbiorców (audience) lub ponieważ wymiana tokena userinfo nie jest włączona.
Rozwiązania:
- Upewnij się, że Twoja rejestracja aplikacji Azure posiada udostępniony zakres API, taki jak
api://<client-id>/access_as_user - Dodaj ten pełny zakres do
OPENID_SCOPE - Ustaw
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true - Zrestartuj LibreChat i zaloguj się ponownie, aby Azure wygenerował nowe tokeny OpenID
Pobieranie kończy się niepowodzeniem lub przekracza limit czasu
Przyczyna: Uprawnienia Graph API lub problemy z siecią
Rozwiązania:
- Zweryfikuj, czy przyznano uprawnienie
Files.Read.All - Sprawdź łączność sieciową z SharePoint
- Upewnij się, że tokeny nie wygasły (w razie potrzeby przeprowadź ponowną autoryzację)
- Sprawdź konsolę przeglądarki pod kątem konkretnych komunikatów o błędach
Tryb debugowania
W celu rozwiązywania problemów włącz logowanie debugowania:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueTo zapewni szczegółowe logi dotyczące:
- Procesy wymiany tokenów
- Wywołania API do SharePoint i Graph
- Postęp pobierania i błędy
- Przepływy uwierzytelniania
Optymalizacja wydajności
Buforowanie tokenów
- Tokeny są buforowane w celu zmniejszenia narzutu uwierzytelniania
- Czas trwania pamięci podręcznej odpowiada okresowi ważności tokena (zazwyczaj 50 minut)
- Automatyczne odświeżanie przed wygaśnięciem
Równoległe pobieranie
- Do 3 plików pobieranych jednocześnie
- Zapobiega przeciążeniu przeglądarki lub serwera
- Optymalizuje zarówno pod kątem szybkości, jak i stabilności
Uwagi dotyczące rozmiaru plików
- Pobieranie dużych plików może chwilę potrwać
- Wskaźnik postępu pomaga zarządzać oczekiwaniami użytkownika
- Rozważ limity przesyłania plików w konfiguracji LibreChat
Najlepsze praktyki
Dla administratorów
- Regularne audyty uprawnień: Okresowo sprawdzaj uprawnienia aplikacji
- Monitorowanie użycia: Śledź użycie integracji z SharePoint w logach
- Aktualizacja dokumentacji: Utrzymuj wewnętrzną dokumentację w stanie aktualnym, uwzględniając specyfikę Twojego tenanta
- Test Thoroughly: Zweryfikuj funkcjonalność po każdej zmianie w Azure AD
Dla użytkowników końcowych
- Organizacja plików: Dobrze zorganizowane biblioteki SharePoint poprawiają komfort użytkowania
- Rozmiary plików: Pamiętaj, że duże pliki mogą spowalniać konwersacje
- Uprawnienia: Upewnij się, że masz dostęp do plików przed ich udostępnieniem
- Pobieranie przez pacjenta: Zapewnij czas na pobranie wielu lub dużych plików
Zaawansowana konfiguracja
Niestandardowe zakresy (Custom Scopes)
W przypadku organizacji o określonych wymaganiach, możesz dostosować zakresy (scopes):
# 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.ReadIntegracja z Information Barriers
Jeśli Twoja organizacja korzysta z Information Barriers:
- Integracja z SharePoint respektuje wszystkie zasady barier (barrier policies)
- Użytkownicy widzą tylko te treści, do których mają uprawnienia dostępu
- Nie jest wymagana żadna dodatkowa konfiguracja
Powiązana dokumentacja
Jaka jest ta instrukcja?