Azure Entra
Dowiedz się, jak skonfigurować LibreChat do korzystania z Azure Entra w celu uwierzytelniania użytkowników.
- Przejdź do Azure Portal i zaloguj się na swoje konto.
- W polu wyszukiwania wpisz "Azure Entra" i kliknij w nie.
- W menu po lewej stronie kliknij App registrations, a następnie New registration.
- Nadaj swojej aplikacji nazwę i wybierz Web jako typ platformy.
- W polu Redirect URI wprowadź adres URL wywołania zwrotnego (callback) OpenID swojego LibreChat i kliknij Register. W przypadku lokalnych instalacji Docker użyj
http://localhost:3080/oauth/openid/callback. W przypadku wdrożonych instancji zastąphttp://localhost:3080wartością swojego publicznegoDOMAIN_SERVER, na przykładhttps://chat.example.com/oauth/openid/callback.
- Zobaczysz stronę przeglądu (Overview) z pewnymi informacjami o swojej aplikacji. Skopiuj identyfikator aplikacji (Application (client) ID) oraz identyfikator katalogu (Directory (tenant) ID) i zapisz je w bezpiecznym miejscu.
- W menu po lewej stronie kliknij Authentication i zaznacz pola Access tokens oraz ID tokens w sekcji Implicit grant and hybrid flows.
- W menu po lewej stronie kliknij Certificates & Secrets, a następnie New client secret. Nadaj swojemu kluczowi nazwę oraz datę wygaśnięcia i kliknij Add. Zobaczysz kolumnę Value z Twoim kluczem. Skopiuj go i zapisz w bezpiecznym miejscu. Nie udostępniaj go nikomu!
- Jeśli chcesz ograniczyć dostęp według grup, powinieneś dodać oświadczenie (claim) groups do tokena. Aby to zrobić, przejdź do Token configuration i kliknij Add group claim. Wybierz grupy, które chcesz uwzględnić w tokenie i kliknij Add.
- Otwórz plik .env w folderze swojego projektu i dodaj poniższe zmienne z wartościami, które zostały skopiowane:
DOMAIN_CLIENT=https://your-domain.com # use http://localhost:3080 if not using a custom domain
DOMAIN_SERVER=https://your-domain.com # use http://localhost:3080 if not using a custom domain
# enable social login or else OpenID button will not appear on login page
ALLOW_SOCIAL_LOGIN=true
OPENID_CLIENT_ID=Your Application (client) ID
OPENID_CLIENT_SECRET=Your client secret
OPENID_ISSUER=https://login.microsoftonline.com/Your Directory (tenant ID)/v2.0/
OPENID_SESSION_SECRET=Any random string
OPENID_SCOPE=openid profile email #DO NOT CHANGE THIS
OPENID_CALLBACK_URL=/oauth/openid/callback # this should be the same for everyone
OPENID_REQUIRED_ROLE_TOKEN_KIND=id
# If you want to restrict access by groups
OPENID_REQUIRED_ROLE_PARAMETER_PATH="roles"
OPENID_REQUIRED_ROLE="Your Group Name" # Single role or comma-separated roles (e.g., Group1,Group2,Admin)
# Optional: redirects the user to the end session endpoint after logging out
OPENID_USE_END_SESSION_ENDPOINT=true
# Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000)
# OPENID_MAX_LOGOUT_URL_LENGTH=2000Identyfikator URI przekierowania zarejestrowany w Azure musi dokładnie odpowiadać adresowi URL, pod którym działa LibreChat. Jeśli DOMAIN_SERVER=https://chat.example.com, w Azure należy użyć https://chat.example.com/oauth/openid/callback.
- Zapisz plik .env
Uwaga: Jeśli używasz Docker, uruchom
docker compose up -d, aby zastosować zmiany w konfiguracji .env
Zaawansowane: Ponowne wykorzystanie tokenów
LibreChat obsługuje ponowne wykorzystanie tokenów Azure Entra ID do zarządzania sesjami, co może zapewnić lepszą integrację z Twoim środowiskiem Azure. Ta funkcja pozwala LibreChat na korzystanie z tokenów odświeżania Azure zamiast zarządzania własnymi tokenami sesji.
Aby dowiedzieć się więcej o tej funkcji i sposobie jej konfiguracji, zobacz Re-use OpenID Tokens for Login Session.
Zaawansowane: Integracja z Microsoft Graph API
Podczas korzystania z Azure Entra ID jako dostawcy OpenID, możesz włączyć integrację z Microsoft Graph API, aby rozszerzyć system uprawnień i udostępniania o funkcje wyszukiwania osób oraz grup.
Wymagania wstępne
- Twoja rejestracja aplikacji Azure musi posiadać odpowiednie uprawnienia Microsoft Graph API
- Zgoda administratora może być wymagana dla niektórych zakresów Graph API (takich jak
GroupMember.Read.All)
Dodawanie uprawnień Graph API
- W swojej rejestracji aplikacji Azure przejdź do API permissions
- Kliknij Add a permission > Microsoft Graph > Delegated permissions
- Dodaj te uprawnienia:
User.Read- Zaloguj się i odczytaj profil użytkownikaPeople.Read- Odczyt kontaktów użytkownikaGroupMember.Read.All- Odczyt wszystkich członkostw w grupachUser.ReadBasic.All- Odczyt podstawowych profili wszystkich użytkowników
- Kliknij Grant admin consent, jeśli jest to wymagane (będziesz potrzebować uprawnień administratora)
Konfiguracja
Wymagane: Włącz ponowne użycie tokenów
Ważne: Musisz włączyć ponowne użycie tokena OpenID, aby ta funkcja działała:
OPENID_REUSE_TOKENS=trueZobacz Konfiguracja ponownego użycia tokenów powyżej, aby uzyskać szczegółowe informacje.
Dodaj następujące zmienne środowiskowe do swojego pliku .env:
# Enable Entra ID people search in permissions/sharing
USE_ENTRA_ID_FOR_PEOPLE_SEARCH=true
# Include group owners as members when searching groups
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=true
# Microsoft Graph API scopes (these are automatically included with the OpenID scopes)
OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.AllPo włączeniu, wybieranie osób w oknach dialogowych uprawnień i udostępniania będzie:
- Przeszukuj zarówno lokalnych użytkowników LibreChat, jak i użytkowników Azure Entra ID
- Wyświetlaj profile użytkowników z imionami i adresami e-mail z Twojej organizacji
- Zezwalaj na wyszukiwanie i wybieranie grup Azure Entra ID
- Pokaż członków grupy w oparciu o Twoje uprawnienia Graph API
Uwagi
- Token reuse (
OPENID_REUSE_TOKENS=true) jest wymagane, aby ta funkcja działała OPENID_GRAPH_SCOPESsą automatycznie dołączane do istniejącegoOPENID_SCOPEpodczas uwierzytelniania- Wyszukiwanie grup wymaga uprawnienia
GroupMember.Read.All, które zazwyczaj wymaga zgody administratora - Wyszukiwanie użytkowników działa z podstawowymi uprawnieniami
User.Read,People.ReadorazUser.ReadBasic.All
Zaawansowane: Integracja z SharePoint
LibreChat może integrować się z SharePoint Online oraz OneDrive for Business, umożliwiając użytkownikom przeglądanie i załączanie plików bezpośrednio z ich bibliotek SharePoint.
Wymagania wstępne
- Wszystkie wymagania z Token Reuse muszą zostać spełnione
- Twoja rejestracja aplikacji Azure wymaga dodatkowych uprawnień SharePoint
- Twoja rejestracja aplikacji Azure musi udostępniać i przyznawać zakres API LibreChat, taki jak
api://<client-id>/access_as_user
Dodawanie uprawnień SharePoint
- W swojej rejestracji aplikacji Azure przejdź do API permissions
- Kliknij Add a permission
W celu uzyskania dostępu do SharePoint:
- Wybierz SharePoint (nie Microsoft Graph)
- Wybierz Delegated permissions
- Dodaj:
AllSites.Read- Odczytuj elementy we wszystkich kolekcjach witryn
Dla pobierania plików:
-
Kliknij ponownie Add a permission
-
Wybierz Microsoft Graph
-
Wybierz Delegated permissions
-
Dodaj:
Files.Read.All- Odczyt wszystkich plików, do których użytkownik ma dostęp -
Kliknij Grant admin consent dla obu uprawnień
Konfiguracja
Przed włączeniem zmiennych SharePoint upewnij się, że konfiguracja ponownego użycia tokena OpenID żąda zakresu API aplikacji LibreChat. Daje to Azure token dostępu dla odbiorców aplikacji, który może być użyty jako asercja on-behalf-of do wymiany tokenów SharePoint i Graph.
# 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 URL
SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
# SharePoint scope for file picker (replace 'yourtenant' with your actual tenant)
SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
# Graph API scope for downloading files
SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.AllUżycie
Po poprawnej konfiguracji:
- Użytkownicy zobaczą opcję „From SharePoint” w menu załączników plików
- Kliknięcie go otwiera natywny selektor plików SharePoint
- Użytkownicy mogą przeglądać i wybierać pliki z dowolnej witryny SharePoint lub usługi OneDrive, do których mają dostęp
- Wybrane pliki są pobierane i dołączane do konwersacji
Uwaga dotycząca bezpieczeństwa
Integracja z SharePoint respektuje wszystkie istniejące uprawnienia SharePoint. Użytkownicy mogą uzyskiwać dostęp tylko do plików, do których mają już uprawnienia w SharePoint/OneDrive.
Aby uzyskać szczegółowe informacje na temat rozwiązywania problemów i zaawansowanej konfiguracji, zobacz: SharePoint Integration Guide
Jaka jest ta instrukcja?