Integrasi SharePoint
Konfigurasikan integrasi SharePoint Online dan OneDrive for Business dengan LibreChat
LibreChat menyediakan integrasi tingkat perusahaan dengan SharePoint Online dan OneDrive for Business, yang memungkinkan pengguna untuk menelusuri, memilih, dan melampirkan file dari lingkungan Microsoft 365 mereka secara langsung di dalam percakapan dengan lancar.
Ikhtisar
Integrasi SharePoint memungkinkan pengguna untuk:
- Telusuri pustaka dokumen SharePoint dan file OneDrive
- Pilih beberapa file sekaligus (hingga 10 file secara default)
- Lihat progres unduhan secara real-time
- Lampirkan file dari SharePoint ke percakapan
- Jaga keamanan perusahaan dengan kontrol akses yang tepat
Fitur Enterprise
Fitur ini memerlukan Microsoft 365/SharePoint Online dan dirancang untuk penyebaran perusahaan yang menggunakan autentikasi Azure Entra ID (sebelumnya Azure AD).
Prasyarat
Sebelum mengonfigurasi integrasi SharePoint, pastikan Anda telah memiliki:
- Azure Entra ID Authentication dikonfigurasi dan berfungsi
- Token Reuse diaktifkan (
OPENID_REUSE_TOKENS=true) - Cakupan API yang terekspos untuk LibreChat, seperti
api://<client-id>/access_as_user - Akses admin ke tenant Azure Anda untuk izin aplikasi
- HTTPS diaktifkan (diperlukan untuk lingkungan produksi)
Persyaratan Kritis
Integrasi SharePoint tidak akan berfungsi tanpa OPENID_REUSE_TOKENS=true karena integrasi ini bergantung pada alur token on-behalf-of untuk mengakses API Microsoft Graph.
Penyiapan Pendaftaran Aplikasi Azure
Langkah 1: Konfigurasi Izin API
- Buka pendaftaran aplikasi Anda di Azure Portal
- Buka API permissions di menu sebelah kiri
- Klik Add a permission
Langkah 2: Ekspos dan Berikan Scope API LibreChat
Alur on-behalf-of memerlukan token akses OpenID awal untuk menargetkan API aplikasi LibreChat Anda, bukan Microsoft Graph. Ekspos cakupan API agar Azure dapat menerbitkan token dengan LibreChat sebagai audiensnya.
- Buka Expose an API di menu sebelah kiri
- Atur Application ID URI ke
api://<client-id>jika belum dikonfigurasi - Klik Add a scope
- Beri nama scope tersebut
access_as_user - Simpan scope tersebut, lalu salin nilai scope lengkapnya:
api://<client-id>/access_as_userKemudian berikan cakupan (scope) tersebut ke pendaftaran aplikasi:
- Kembali ke API permissions
- Klik Add a permission
- Pilih APIs my organization uses
- Cari dan pilih pendaftaran aplikasi LibreChat Anda
- Pilih Delegated permissions
- Pilih
access_as_user - Klik Add permissions
Gunakan nilai scope api://<client-id>/access_as_user secara lengkap di dalam OPENID_SCOPE pada bagian selanjutnya di panduan ini.
Langkah 3: Tambahkan Izin SharePoint
Untuk antarmuka pemilih file:
- Pilih SharePoint dari daftar API
- Pilih Delegated permissions
- Cari dan pilih:
AllSites.Read- Membaca item di semua koleksi situs
- Klik Add permissions
Langkah 4: Tambahkan Izin Microsoft Graph
Untuk unduhan file:
- Klik Add a permission lagi
- Pilih Microsoft Graph
- Pilih Delegated permissions
- Cari dan pilih:
Files.Read.All- Membaca semua file yang dapat diakses oleh pengguna
- Klik Add permissions
Langkah 5: Berikan Persetujuan Admin
- Setelah menambahkan izin tersebut, Anda akan melihatnya tercantum
- Klik Grant admin consent for [Your Organization]
- Konfirmasi persetujuan di popup
Izin Anda seharusnya terlihat seperti ini:
| Nama API / Izin | Tipe | Deskripsi | Status |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegated | Membaca semua file yang dapat diakses pengguna | ✅ Diberikan |
| SharePoint - AllSites.Read | Delegated | Membaca item di semua koleksi situs | ✅ Diberikan |
| LibreChat - access_as_user | Delegated | Mengizinkan LibreChat untuk menerima token yang kompatibel dengan OBO | ✅ Diberikan |
Konfigurasi Lingkungan
Tambahkan variabel lingkungan berikut ke file .env Anda:
# 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.AllNama Penyewa
Pastikan Anda mengganti contoso pada contoh di atas dengan nama tenant SharePoint Anda yang sebenarnya. Nama ini harus sama persis dengan URL SharePoint Anda.
Audiens Scope OpenID
Ganti <client-id> dengan Application (client) ID dari pendaftaran aplikasi Azure Anda. Scope api://<client-id>/access_as_user memberikan audiens khusus aplikasi kepada Azure untuk OBO assertion. Jika OPENID_SCOPE hanya menyertakan scope OpenID standar, Azure mungkin mengeluarkan token akses audiens Graph yang tidak dapat ditukarkan kembali untuk akses SharePoint atau Graph.
Pertukaran Token Userinfo
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true memungkinkan LibreChat untuk menukar token akses app-audience dengan token yang kompatibel dengan userinfo sebelum memanggil endpoint userinfo OpenID. Hal ini diperlukan untuk pengaturan Azure Entra ID di mana OPENID_SCOPE menyertakan scope API LibreChat di atas.
Cara Kerja
Alur Autentikasi
- Pengguna melakukan autentikasi melalui Azure Entra ID
- Saat mengakses pemilih SharePoint, LibreChat menukarkan token pengguna untuk akses SharePoint
- Token di-cache untuk performa optimal (biasanya 50 menit)
- Cakupan terpisah memastikan prinsip hak istimewa paling rendah (principle of least privilege)
Proses Pemilihan File
- Pengguna mengeklik "From SharePoint" di menu lampiran
- Pemilih file SharePoint Online terbuka di dalam iframe yang disematkan
- Pengguna menelusuri dan memilih file menggunakan antarmuka SharePoint yang familier
- File yang dipilih telah dimasukkan ke dalam antrean untuk diunduh
Proses Unduh
- File diunduh dalam batch (hingga 3 unduhan bersamaan)
- Indikator progres menampilkan file saat ini dan persentase penyelesaian
- File yang diunduh dilampirkan ke percakapan
- Unduhan yang gagal akan dicoba ulang secara otomatis
Pengalaman Pengguna
Mengakses File SharePoint
Setelah dikonfigurasi dengan benar, pengguna akan melihat opsi baru di menu lampiran file:
- Klik ikon lampiran di kolom input pesan
- Pilih "From SharePoint" dari menu
- Pemilih file SharePoint akan terbuka
- Telusuri dan pilih file sesuai kebutuhan
- Klik "Select" untuk mulai mengunduh
Fitur yang Tersedia
- Pemilihan banyak file: Pilih hingga 10 file sekaligus
- Antarmuka yang familier: Menggunakan pemilih file SharePoint asli
- Pelacakan progres: Lihat progres unduhan secara real-time
- Penanganan error: Pesan yang jelas untuk setiap masalah
- Lokalisasi: Mendukung berbagai bahasa
Pertimbangan Keamanan
Kontrol Akses
- Hanya file yang memiliki izin akses oleh pengguna di SharePoint yang tersedia
- Menghormati semua izin dan kebijakan SharePoint
- Tidak ada akses yang ditingkatkan atau pengabaian kontrol keamanan
Keamanan Token
- Menggunakan alur on-behalf-of yang aman untuk pertukaran token
- Token bersifat jangka pendek dan diperbarui secara otomatis
- Tidak ada penyimpanan jangka panjang untuk kredensial SharePoint
Isolasi Cakupan
- Cakupan SharePoint dibatasi hanya untuk operasi baca saja
- Cakupan Graph API dibatasi pada akses baca file
- Tidak dapat mengubah atau menghapus file melalui LibreChat
Pemecahan Masalah
Masalah Umum
Opsi "From SharePoint" tidak muncul
Penyebab: Fitur tidak diaktifkan dengan benar atau terdapat masalah autentikasi
Solusi:
- Verifikasi
ENABLE_SHAREPOINT_FILEPICKER=truedi dalam.env - Pastikan
OPENID_REUSE_TOKENS=truetelah diatur - Periksa apakah pengguna telah diautentikasi melalui Azure Entra ID
- Mulai ulang LibreChat setelah perubahan konfigurasi
Pemilih file gagal dibuka
Penyebab: Izin hilang atau tidak tepat
Solusi:
- Verifikasi bahwa izin SharePoint telah diberikan di Azure
- Pastikan persetujuan admin telah diberikan
- Pastikan
SHAREPOINT_BASE_URLsama persis dengan tenant Anda - Pastikan
SHAREPOINT_PICKER_SHAREPOINT_SCOPEmenggunakan URL tenant lengkap, sepertihttps://contoso.sharepoint.com/AllSites.Read - Pastikan HTTPS diaktifkan di lingkungan produksi
Pemilih file terbuka ke halaman putih kosong
Penyebab: Azure mungkin menolak pertukaran on-behalf-of karena token akses OpenID memiliki audience yang salah, atau karena pertukaran token userinfo tidak diaktifkan.
Solusi:
- Pastikan pendaftaran aplikasi Azure Anda memiliki scope API yang diekspos, seperti
api://<client-id>/access_as_user - Tambahkan cakupan penuh tersebut ke
OPENID_SCOPE - Atur
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true - Mulai ulang LibreChat dan masuk kembali agar Azure menerbitkan token OpenID yang baru
Unduhan gagal atau timeout
Penyebab: Izin Graph API atau masalah jaringan
Solusi:
- Verifikasi izin
Files.Read.Alltelah diberikan - Periksa konektivitas jaringan ke SharePoint
- Pastikan token belum kedaluwarsa (lakukan autentikasi ulang jika diperlukan)
- Periksa konsol peramban untuk pesan kesalahan spesifik
Mode Debug
Untuk pemecahan masalah, aktifkan pencatatan debug:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueIni akan memberikan log terperinci mengenai:
- Proses pertukaran token
- Panggilan API ke SharePoint dan Graph
- Kemajuan unduhan dan kesalahan
- Alur autentikasi
Optimalisasi Performa
Token Caching
- Token di-cache untuk mengurangi overhead autentikasi
- Durasi cache sesuai dengan masa berlaku token (biasanya 50 menit)
- Penyegaran otomatis sebelum kedaluwarsa
Unduhan Bersamaan
- Hingga 3 file diunduh secara bersamaan
- Mencegah kelebihan beban pada browser atau server
- Mengoptimalkan untuk kecepatan dan stabilitas
Pertimbangan Ukuran File
- File berukuran besar mungkin memerlukan waktu untuk diunduh
- Indikator progres membantu mengelola ekspektasi pengguna
- Pertimbangkan batas unggah file Anda dalam konfigurasi LibreChat
Praktik Terbaik
Untuk Administrator
- Audit Izin Berkala: Tinjau izin aplikasi secara berkala
- Monitor Penggunaan: Lacak penggunaan integrasi SharePoint di dalam log
- Update Documentation: Selalu perbarui dokumentasi internal dengan spesifikasi tenant Anda
- Uji Secara Menyeluruh: Verifikasi fungsionalitas setelah adanya perubahan pada Azure AD
Untuk Pengguna Akhir
- Pengorganisasian File: Pustaka SharePoint yang terorganisir dengan baik meningkatkan pengalaman pengguna
- Ukuran File: Perhatikan file berukuran besar yang dapat memperlambat percakapan
- Izin: Pastikan Anda memiliki akses ke file sebelum membagikannya
- Unduhan Pasien: Berikan waktu untuk banyak file atau file berukuran besar
Konfigurasi Lanjutan
Custom Scopes
Untuk organisasi dengan kebutuhan khusus, Anda dapat menyesuaikan scope:
# 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.ReadIntegrasi dengan Information Barriers
Jika organisasi Anda menggunakan Information Barriers:
- Integrasi SharePoint menghormati semua kebijakan penghalang (barrier policies)
- Pengguna hanya melihat konten yang diizinkan untuk mereka akses
- Tidak diperlukan konfigurasi tambahan
Dokumentasi Terkait
Bagaimana panduan ini?