Azure Entra
Pelajari cara mengonfigurasi LibreChat untuk menggunakan Azure Entra untuk autentikasi pengguna.
- Buka Azure Portal dan masuk dengan akun Anda.
- Di kotak pencarian, ketik "Azure Entra" dan klik di atasnya.
- Pada menu sebelah kiri, klik App registrations lalu klik New registration.
- Berikan nama pada aplikasi Anda dan pilih Web sebagai tipe platform.
- Di kolom Redirect URI, masukkan URL callback OpenID LibreChat Anda dan klik Register. Untuk instalasi Docker lokal, gunakan
http://localhost:3080/oauth/openid/callback. Untuk instans yang telah di-deploy, gantihttp://localhost:3080dengan nilaiDOMAIN_SERVERpublik Anda, contohnyahttps://chat.example.com/oauth/openid/callback.
- Anda akan melihat halaman Overview yang berisi beberapa informasi tentang aplikasi Anda. Salin Application (client) ID dan Directory (tenant) ID tersebut, lalu simpan di suatu tempat.
- Pada menu sebelah kiri, klik Authentication dan centang kotak untuk Access tokens dan ID tokens di bawah Implicit grant and hybrid flows.
- Pada menu sebelah kiri, klik Certificates & Secrets lalu klik New client secret. Berikan nama dan tanggal kedaluwarsa untuk secret Anda, kemudian klik Add. Anda akan melihat kolom Value yang berisi secret Anda. Salin dan simpan di tempat yang aman. Jangan bagikan kepada siapa pun!
- Jika Anda ingin membatasi akses berdasarkan grup, Anda harus menambahkan klaim grup (groups claim) ke token. Untuk melakukan ini, buka Token configuration dan klik Add group claim. Pilih grup yang ingin Anda sertakan dalam token dan klik Add.
- Buka file .env di folder proyek Anda dan tambahkan variabel berikut dengan nilai yang telah Anda salin:
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=2000URI pengalihan yang didaftarkan di Azure harus sama persis dengan URL yang digunakan oleh LibreChat. Jika DOMAIN_SERVER=https://chat.example.com, Azure harus menggunakan https://chat.example.com/oauth/openid/callback.
- Simpan file .env
Catatan: Jika menggunakan Docker, jalankan
docker compose up -duntuk menerapkan perubahan konfigurasi .env
Lanjutan: Penggunaan Kembali Token
LibreChat mendukung penggunaan kembali token Azure Entra ID untuk manajemen sesi, yang dapat memberikan integrasi yang lebih baik dengan lingkungan Azure Anda. Fitur ini memungkinkan LibreChat untuk menggunakan token refresh Azure alih-alih mengelola token sesinya sendiri.
Untuk mempelajari lebih lanjut tentang fitur ini dan cara mengonfigurasinya, lihat Re-use OpenID Tokens for Login Session.
Lanjutan: Integrasi Microsoft Graph API
Saat menggunakan Azure Entra ID sebagai penyedia OpenID Anda, Anda dapat mengaktifkan integrasi Microsoft Graph API untuk meningkatkan sistem izin dan berbagi dengan kemampuan pencarian orang dan grup.
Prasyarat
- Pendaftaran aplikasi Azure Anda harus memiliki izin Microsoft Graph API yang sesuai
- Persetujuan admin mungkin diperlukan untuk cakupan Graph API tertentu (seperti
GroupMember.Read.All)
Menambahkan Izin Graph API
- Di pendaftaran aplikasi Azure Anda, buka API permissions
- Klik Add a permission > Microsoft Graph > Delegated permissions
- Tambahkan izin berikut:
User.Read- Masuk dan baca profil penggunaPeople.Read- Membaca kontak penggunaGroupMember.Read.All- Membaca semua keanggotaan grupUser.ReadBasic.All- Membaca profil dasar semua pengguna
- Klik Grant admin consent jika diperlukan (Anda memerlukan hak akses admin)
Konfigurasi
Wajib: Aktifkan Penggunaan Ulang Token
Penting: Anda HARUS mengaktifkan penggunaan kembali token OpenID agar fitur ini berfungsi:
OPENID_REUSE_TOKENS=trueLihat Token Reuse Configuration di atas untuk detailnya.
Tambahkan variabel lingkungan berikut ke file .env Anda:
# 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.AllSaat diaktifkan, pemilih orang (people picker) dalam dialog izin dan berbagi akan:
- Cari pengguna LibreChat lokal maupun pengguna Azure Entra ID
- Tampilkan profil pengguna dengan nama dan email dari organisasi Anda
- Izinkan pencarian dan pemilihan grup Azure Entra ID
- Tampilkan anggota grup berdasarkan izin Graph API Anda
Catatan
- Token reuse (
OPENID_REUSE_TOKENS=true) wajib diaktifkan agar fitur ini dapat berfungsi OPENID_GRAPH_SCOPESsecara otomatis ditambahkan keOPENID_SCOPEAnda yang sudah ada selama autentikasi.- Pencarian grup memerlukan izin
GroupMember.Read.All, yang biasanya memerlukan persetujuan admin - Pencarian pengguna berfungsi dengan izin dasar
User.Read,People.Read, danUser.ReadBasic.All
Lanjutan: Integrasi SharePoint
LibreChat dapat berintegrasi dengan SharePoint Online dan OneDrive for Business, memungkinkan pengguna untuk menelusuri dan melampirkan file secara langsung dari pustaka SharePoint mereka.
Prasyarat
- Semua persyaratan dari Token Reuse harus dipenuhi
- Pendaftaran aplikasi Azure Anda memerlukan izin SharePoint tambahan
- Pendaftaran aplikasi Azure Anda harus mengekspos dan memberikan scope API LibreChat, seperti
api://<client-id>/access_as_user
Menambahkan Izin SharePoint
- Di pendaftaran aplikasi Azure Anda, buka API permissions
- Klik Add a permission
Untuk Akses SharePoint:
- Pilih SharePoint (bukan Microsoft Graph)
- Pilih Delegated permissions
- Tambahkan:
AllSites.Read- Baca item di semua koleksi situs
Untuk Unduhan Berkas:
-
Klik Add a permission lagi
-
Pilih Microsoft Graph
-
Pilih Delegated permissions
-
Tambahkan:
Files.Read.All- Membaca semua file yang dapat diakses oleh pengguna -
Klik Grant admin consent untuk kedua izin tersebut
Konfigurasi
Sebelum mengaktifkan variabel SharePoint, pastikan konfigurasi penggunaan kembali token OpenID meminta cakupan API aplikasi LibreChat. Hal ini memberikan Azure token akses audiens aplikasi yang dapat digunakan sebagai pernyataan on-behalf-of untuk pertukaran token SharePoint dan 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.AllPenggunaan
Jika dikonfigurasi dengan benar:
- Pengguna akan melihat opsi "From SharePoint" di menu lampiran file
- Mengkliknya akan membuka pemilih file SharePoint bawaan
- Pengguna dapat menelusuri dan memilih file dari situs SharePoint atau OneDrive mana pun yang dapat mereka akses
- File yang dipilih diunduh dan dilampirkan ke percakapan
Catatan Keamanan
Integrasi SharePoint menghormati semua izin SharePoint yang sudah ada. Pengguna hanya dapat mengakses file yang memang sudah memiliki izin untuk mereka lihat di SharePoint/OneDrive.
Untuk pemecahan masalah terperinci dan konfigurasi tingkat lanjut, lihat: SharePoint Integration Guide
Bagaimana panduan ini?