SharePoint Entegrasyonu
LibreChat ile SharePoint Online ve OneDrive for Business entegrasyonunu yapılandırın
LibreChat, SharePoint Online ve OneDrive for Business ile kurumsal düzeyde entegrasyon sağlayarak kullanıcıların Microsoft 365 ortamlarındaki dosyaları doğrudan sohbetler içinde sorunsuz bir şekilde görüntülemesine, seçmesine ve eklemesine olanak tanır.
Genel Bakış
SharePoint entegrasyonu kullanıcıların şunları yapmasını sağlar:
- SharePoint belge kitaplıklarına ve OneDrive dosyalarına göz atın
- Aynı anda birden fazla dosya seçin (varsayılan olarak 10'a kadar)
- Gerçek zamanlı indirme ilerlemesini görüntüle
- SharePoint'ten konuşmalara dosya ekleyin
- Uygun erişim kontrolleriyle kurumsal güvenliği sağlayın
Kurumsal Özellik
Bu özellik Microsoft 365/SharePoint Online gerektirir ve Azure Entra ID (eski adıyla Azure AD) kimlik doğrulamasını kullanan kurumsal dağıtımlar için tasarlanmıştır.
Ön Koşullar
SharePoint entegrasyonunu yapılandırmadan önce şunlara sahip olduğunuzdan emin olun:
- Azure Entra ID Authentication yapılandırılmış ve çalışır durumda
- Token Reuse etkin (
OPENID_REUSE_TOKENS=true) - LibreChat için açık bir API kapsamı, örneğin
api://<client-id>/access_as_user - Uygulama izinleri için Azure kiracınıza Admin access
- HTTPS etkin (üretim ortamları için gereklidir)
Kritik Gereksinim
SharePoint entegrasyonu, Microsoft Graph API'lerine erişmek için on-behalf-of token akışına dayandığından OPENID_REUSE_TOKENS=true olmadan çalışmayacaktır.
Azure Uygulama Kaydı Kurulumu
Adım 1: API İzinlerini Yapılandırın
- Azure Portal üzerindeki uygulama kaydınıza gidin
- Sol menüdeki API permissions kısmına gidin
- İzin ekle'ye tıklayın
Adım 2: Bir LibreChat API Kapsamı (Scope) Açın ve Yetkilendirin
Adına hareket etme (on-behalf-of) akışı, Microsoft Graph'i değil, LibreChat uygulama API'nizi hedeflemek için ilk OpenID erişim belirtecine (access token) ihtiyaç duyar. Azure'un hedef kitle (audience) olarak LibreChat ile bir belirteç verebilmesi için bir API kapsamı (scope) açığa çıkarın.
- Sol menüdeki Expose an API kısmına gidin
- Application ID URI değerini, henüz yapılandırılmamışsa
api://<client-id>olarak ayarlayın - Add a scope öğesine tıklayın
- Kapsamı
access_as_userolarak adlandırın - Kapsamı kaydedin, ardından tam kapsam değerini kopyalayın:
api://<client-id>/access_as_userArdından bu kapsamı uygulama kaydına tanımlayın:
- API izinlerine geri dön
- İzin ekle'ye tıklayın
- Kuruluşumun kullandığı API'leri seçin
- LibreChat uygulama kaydınızı arayın ve seçin
- Temsil edilen izinleri (Delegated permissions) seçin
access_as_useröğesini seçin- İzin ekle'ye tıklayın
Bu kılavuzun ilerleyen kısımlarında OPENID_SCOPE içinde tam api://<client-id>/access_as_user kapsam değerini kullanın.
Adım 3: SharePoint İzinlerini Ekleme
Dosya seçici arayüzü için:
- API listesinden SharePoint öğesini seçin
- Temsil edilen izinleri (Delegated permissions) seçin
- Arayın ve seçin:
AllSites.Read- Tüm site koleksiyonlarındaki öğeleri oku
- İzin ekle'ye tıklayın
Adım 4: Microsoft Graph İzinlerini Ekleme
Dosya indirmeleri için:
- Tekrar Add a permission düğmesine tıklayın
- Microsoft Graph öğesini seçin
- Temsil edilen izinleri (Delegated permissions) seçin
- Arayın ve seçin:
Files.Read.All- Kullanıcının erişebildiği tüm dosyaları oku
- İzin ekle'ye tıklayın
Adım 5: Yönetici Onayı Verin
- İzinleri ekledikten sonra, bunların listelendiğini göreceksiniz
- [Kuruluşunuz] için yönetici onayı ver seçeneğine tıklayın
- Açılır penceredeki onayı doğrulayın
İzinleriniz şu şekilde görünmelidir:
| API / İzin adı | Tür | Açıklama | Durum |
|---|---|---|---|
| Microsoft Graph - Files.Read.All | Delegated | Kullanıcının erişebildiği tüm dosyaları oku | ✅ Granted |
| SharePoint - AllSites.Read | Delegated | Tüm site koleksiyonlarındaki öğeleri oku | ✅ Granted |
| LibreChat - access_as_user | Delegated | LibreChat'in OBO uyumlu bir belirteç almasına izin ver | ✅ Granted |
Ortam Yapılandırması
.env dosyanıza aşağıdaki ortam değişkenlerini ekleyin:
# 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.AllKiracı Adı
Yukarıdaki örneklerde yer alan contoso ifadesini gerçek SharePoint kiracı adınızla değiştirdiğinizden emin olun. Bu, SharePoint URL'nizle tam olarak eşleşmelidir.
OpenID Kapsam Hedef Kitlesi
<client-id> kısmını Azure uygulama kaydınızın Uygulama (istemci) Kimliği ile değiştirin. api://<client-id>/access_as_user kapsamı, Azure'a OBO onayı için uygulamaya özel bir hedef kitle sağlar. Eğer OPENID_SCOPE yalnızca standart OpenID kapsamlarını içeriyorsa, Azure SharePoint veya Graph erişimi için tekrar değiştirilemeyecek bir Graph hedef kitleli erişim belirteci verebilir.
Userinfo Token Değişimi
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true, LibreChat'in OpenID userinfo uç noktasını çağırmadan önce uygulama hedef kitlesi (app-audience) erişim belirtecini, userinfo ile uyumlu bir belirteçle değiştirmesine olanak tanır. Bu, OPENID_SCOPE değerinin yukarıdaki LibreChat API kapsamını içerdiği Azure Entra ID kurulumları için gereklidir.
Nasıl Çalışır
Kimlik Doğrulama Akışı
- Kullanıcı, Azure Entra ID aracılığıyla kimlik doğrulaması yapar
- SharePoint seçicisine erişirken, LibreChat kullanıcının token'ını SharePoint erişimi için takas eder
- Token'lar optimum performans için önbelleğe alınır (genellikle 50 dakika).
- Ayrı kapsamlar, en az yetki ilkesini sağlar
Dosya Seçim Süreci
- Kullanıcı, ek menüsünde "From SharePoint" seçeneğine tıklar
- SharePoint Online dosya seçici, gömülü bir iframe içinde açılır
- Kullanıcı, tanıdık SharePoint arayüzünü kullanarak dosyalara göz atar ve seçim yapar
- Seçilen dosyalar indirilmek üzere sıraya alındı
İndirme İşlemi
- Dosyalar toplu halde indirilir (3 eşzamanlı indirmeye kadar)
- İlerleme göstergesi, mevcut dosyayı ve tamamlanma yüzdesini gösterir
- İndirilen dosyalar konuşmaya eklenmiştir
- Başarısız indirmeler otomatik olarak yeniden denenir
Kullanıcı Deneyimi
SharePoint Dosyalarına Erişim
Düzgün bir şekilde yapılandırıldığında, kullanıcılar dosya ekleme menüsünde yeni bir seçenek göreceklerdir:
- Mesaj girişindeki ek simgesine tıklayın
- Menüden "From SharePoint" seçeneğini belirleyin
- SharePoint dosya seçici açılacaktır
- Dosyaları gerektiği gibi göz atın ve seçin
- İndirmeye başlamak için "Select" düğmesine tıklayın
Kullanılabilir Özellikler
- Çoklu dosya seçimi: Aynı anda 10 dosyaya kadar seçim yapın
- Tanıdık arayüz: Yerel SharePoint dosya seçicisini kullanır
- İlerleme takibi: Gerçek zamanlı indirme ilerlemesini görün
- Hata yönetimi: Herhangi bir sorun için net mesajlar
- Yerelleştirme: Birden fazla dili destekler
Güvenlik Hususları
Erişim Kontrolü
- Yalnızca kullanıcının SharePoint'te erişim iznine sahip olduğu dosyalar kullanılabilir
- Tüm SharePoint izinlerine ve politikalarına uyar
- Yükseltilmiş erişim veya güvenlik kontrollerinin atlatılması söz konusu değildir
Token Güvenliği
- Token değişimi için güvenli on-behalf-of akışını kullanır
- Token'lar kısa ömürlüdür ve otomatik olarak yenilenir
- SharePoint kimlik bilgilerinin uzun süreli depolanmaması
Kapsam İzolasyonu
- SharePoint kapsamı yalnızca okuma işlemleriyle sınırlandırılmıştır
- Graph API kapsamı dosya okuma erişimi ile sınırlandırıldı
- LibreChat üzerinden dosyalar değiştirilemiyor veya silinemiyor
Sorun Giderme
Yaygın Sorunlar
"From SharePoint" seçeneği görünmüyor
Neden: Özellik düzgün etkinleştirilmemiş veya kimlik doğrulama sorunları var
Çözümler:
.envdosyasındaENABLE_SHAREPOINT_FILEPICKER=trueolduğunu doğrulayınOPENID_REUSE_TOKENS=truedeğerinin ayarlandığını doğrulayın- Kullanıcının Azure Entra ID aracılığıyla kimliğinin doğrulandığını kontrol edin
- Yapılandırma değişikliklerinden sonra LibreChat'i yeniden başlatın
Dosya seçici açılmıyor
Neden: Eksik veya hatalı izinler
Çözümler:
- Azure'da SharePoint izinlerinin verildiğini doğrulayın
- Yönetici onayının sağlandığından emin olun
SHAREPOINT_BASE_URLdeğerinin kiracınızla tam olarak eşleştiğini kontrol edinSHAREPOINT_PICKER_SHAREPOINT_SCOPEdeğişkeninin,https://contoso.sharepoint.com/AllSites.Readgibi tam kiracı (tenant) URL'sini kullandığını doğrulayın.- Üretim ortamında HTTPS'in etkinleştirildiğini doğrulayın
Dosya seçici boş beyaz bir sayfada açılıyor
Neden: Azure, OpenID erişim belirtecinin yanlış hedef kitleye (audience) sahip olması veya userinfo belirteç değişiminin etkinleştirilmemiş olması nedeniyle on-behalf-of değişimini reddediyor olabilir.
Çözümler:
- Azure uygulama kaydınızın
api://<client-id>/access_as_usergibi açık bir API kapsamına sahip olduğunu doğrulayın. - Bu tam kapsamı
OPENID_SCOPEiçine ekleyin OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=truedeğerini ayarlayın- Azure'un yeni OpenID belirteçleri oluşturması için LibreChat'i yeniden başlatın ve tekrar giriş yapın
İndirmeler başarısız oluyor veya zaman aşımına uğruyor
Neden: Graph API izinleri veya ağ sorunları
Çözümler:
Files.Read.Allizninin verildiğini doğrulayın- SharePoint ağ bağlantısını kontrol edin
- Token'ların süresinin dolmadığından emin olun (gerekirse yeniden kimlik doğrulaması yapın)
- Belirli hata mesajları için tarayıcı konsolunu kontrol edin
Hata Ayıklama Modu
Sorun giderme için hata ayıklama (debug) günlüğünü etkinleştirin:
DEBUG_LOGGING=true
DEBUG_CONSOLE=trueBu, aşağıdakiler hakkında ayrıntılı günlükler sağlayacaktır:
- Token değişim süreçleri
- SharePoint ve Graph'e yapılan API çağrıları
- İndirme ilerlemesi ve hatalar
- Kimlik doğrulama akışları
Performans Optimizasyonu
Token Caching
- Kimlik doğrulama yükünü azaltmak için token'lar önbelleğe alınır.
- Önbellek süresi, belirteç (token) ömrüyle eşleşir (genellikle 50 dakika)
- Süresi dolmadan önce otomatik yenileme
Eşzamanlı İndirmeler
- Aynı anda en fazla 3 dosya indirilebilir
- Tarayıcının veya sunucunun aşırı yüklenmesini önler
- Hem hız hem de kararlılık için optimize eder
Dosya Boyutu Hususları
- Büyük dosyaların indirilmesi zaman alabilir
- İlerleme göstergesi, kullanıcı beklentilerini yönetmeye yardımcı olur
- LibreChat yapılandırmanızdaki dosya yükleme limitlerinizi göz önünde bulundurun
En İyi Uygulamalar
Yöneticiler İçin
- Düzenli İzin Denetimleri: Uygulama izinlerini periyodik olarak gözden geçirin
- Kullanımı İzle: SharePoint entegrasyon kullanımını günlüklerde takip et
- Dokümantasyonu Güncelleyin: Dahili dokümanları kiracı (tenant) özelliklerinizle güncel tutun
- Kapsamlı Test Edin: Herhangi bir Azure AD değişikliğinden sonra işlevselliği doğrulayın
Son Kullanıcılar İçin
- Dosya Organizasyonu: İyi organize edilmiş SharePoint kütüphaneleri kullanıcı deneyimini iyileştirir
- Dosya Boyutları: Sohbetleri yavaşlatabilecek büyük dosyalara karşı dikkatli olun
- İzinler: Paylaşmadan önce dosyalara erişiminiz olduğundan emin olun
- Hasta İndirmeleri: Çok sayıda veya büyük dosyalar için zaman tanıyın
Gelişmiş Yapılandırma
Özel Kapsamlar (Custom Scopes)
Belirli gereksinimleri olan kuruluşlar için kapsamları özelleştirebilirsiniz:
# 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.ReadBilgi Engelleri (Information Barriers) ile Entegrasyon
Kuruluşunuz Information Barriers kullanıyorsa:
- SharePoint entegrasyonu tüm engel politikalarına uyar
- Kullanıcılar yalnızca erişim izni olan içerikleri görürler
- Ek yapılandırma gerekmez
İlgili Dokümantasyon
Bu rehber nasıl?