Azure Entra
LibreChat'i kullanıcı kimlik doğrulaması için Azure Entra kullanacak şekilde nasıl yapılandıracağınızı öğrenin.
- Azure Portal adresine gidin ve hesabınızla oturum açın.
- Arama kutusuna "Azure Entra" yazın ve üzerine tıklayın.
- Sol menüde App registrations öğesine ve ardından New registration öğesine tıklayın.
- Uygulamanıza bir isim verin ve platform türü olarak Web'i seçin.
- Redirect URI alanına, LibreChat OpenID geri çağırma (callback) URL'nizi girin ve Register düğmesine tıklayın. Yerel Docker kurulumları için
http://localhost:3080/oauth/openid/callbackadresini kullanın. Dağıtılmış örnekler içinhttp://localhost:3080kısmını herkese açıkDOMAIN_SERVERdeğerinizle değiştirin; örneğinhttps://chat.example.com/oauth/openid/callback.
- Uygulamanız hakkında bazı bilgilerin yer aldığı bir Genel Bakış (Overview) sayfası göreceksiniz. Application (client) ID ve Directory (tenant) ID değerlerini kopyalayın ve bir yere kaydedin.
- Sol menüde Authentication seçeneğine tıklayın ve Implicit grant and hybrid flows altındaki Access tokens ve ID tokens kutucuklarını işaretleyin.
- Sol menüde Certificates & Secrets öğesine ve ardından New client secret öğesine tıklayın. Gizli anahtarınıza bir ad ve son kullanma tarihi verin ve Add öğesine tıklayın. Gizli anahtarınızın bulunduğu bir Value sütunu göreceksiniz. Bunu kopyalayın ve güvenli bir yerde saklayın. Kimseyle paylaşmayın!
- Erişimi gruplara göre kısıtlamak istiyorsanız, token'a groups claim'ini eklemelisiniz. Bunu yapmak için Token configuration kısmına gidin ve Add group claim seçeneğine tıklayın. Token'a dahil etmek istediğiniz grupları seçin ve Add butonuna tıklayın.
- Proje klasörünüzdeki .env dosyasını açın ve kopyaladığınız değerlerle aşağıdaki değişkenleri ekleyin:
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=2000Azure'da kayıtlı yönlendirme URI'si (redirect URI), LibreChat'in hizmet verdiği URL ile tam olarak eşleşmelidir. Eğer DOMAIN_SERVER=https://chat.example.com ise, Azure https://chat.example.com/oauth/openid/callback adresini kullanmalıdır.
- .env dosyasını kaydedin
Not: Docker kullanıyorsanız, .env yapılandırma değişikliklerini uygulamak için
docker compose up -dkomutunu çalıştırın.
Gelişmiş: Token Yeniden Kullanımı
LibreChat, oturum yönetimi için Azure Entra ID belirteçlerinin (token) yeniden kullanımını destekler; bu da Azure ortamınızla daha iyi bir entegrasyon sağlayabilir. Bu özellik, LibreChat'in kendi oturum belirteçlerini yönetmek yerine Azure'un yenileme belirteçlerini kullanmasına olanak tanır.
Bu özellik ve nasıl yapılandırılacağı hakkında daha fazla bilgi edinmek için Re-use OpenID Tokens for Login Session bölümüne bakın.
Gelişmiş: Microsoft Graph API Entegrasyonu
Azure Entra ID'yi OpenID sağlayıcınız olarak kullanırken, izinleri ve paylaşım sistemini kişi ve grup arama yetenekleriyle geliştirmek için Microsoft Graph API entegrasyonunu etkinleştirebilirsiniz.
Ön Koşullar
- Azure uygulama kaydınızın uygun Microsoft Graph API izinlerine sahip olması gerekir
- Belirli Graph API kapsamları (örneğin
GroupMember.Read.All) için yönetici onayı gerekebilir.
Graph API İzinlerini Ekleme
- Azure uygulama kaydınızda API permissions kısmına gidin
- İzin ekle (Add a permission) > Microsoft Graph > Temsilci izinleri (Delegated permissions) öğesine tıklayın
- Şu izinleri ekleyin:
User.Read- Oturum açın ve kullanıcı profilini okuyunPeople.Read- Kullanıcı kişilerini okuGroupMember.Read.All- Tüm grup üyeliklerini okuUser.ReadBasic.All- Tüm kullanıcıların temel profillerini oku
- Gerekirse Grant admin consent seçeneğine tıklayın (yönetici ayrıcalıklarına sahip olmanız gerekecektir)
Yapılandırma
Gerekli: Token Yeniden Kullanımını Etkinleştir
Önemli: Bu özelliğin çalışması için OpenID token yeniden kullanımını (token reuse) etkinleştirmeniz GEREKİR:
OPENID_REUSE_TOKENS=trueAyrıntılar için yukarıdaki Token Reuse Configuration bölümüne bakın.
.env dosyanıza aşağıdaki ortam değişkenlerini ekleyin:
# 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.AllEtkinleştirildiğinde, izinler ve paylaşım iletişim kutularındaki kişi seçici şunları yapacaktır:
- Hem yerel LibreChat kullanıcılarını hem de Azure Entra ID kullanıcılarını arayın
- Kuruluşunuzdaki kullanıcı profillerini adları ve e-posta adresleriyle görüntüleyin
- Azure Entra ID gruplarını aramaya ve seçmeye izin ver
- Graph API izinlerinize göre grup üyelerini göster
Notlar
- Bu özelliğin çalışması için Token yeniden kullanımı (
OPENID_REUSE_TOKENS=true) zorunludur OPENID_GRAPH_SCOPES, kimlik doğrulama sırasında mevcutOPENID_SCOPEdeğerinize otomatik olarak eklenir.- Grup araması, genellikle yönetici onayı gerektiren
GroupMember.Read.Alliznini gerektirir. - Kullanıcı araması, temel
User.Read,People.ReadveUser.ReadBasic.Allizinleriyle çalışır
Gelişmiş: SharePoint Entegrasyonu
LibreChat, SharePoint Online ve OneDrive for Business ile entegre olabilir; bu sayede kullanıcılar dosyalarına doğrudan SharePoint kütüphanelerinden göz atabilir ve ekleyebilirler.
Ön Koşullar
- Token Reuse bölümündeki tüm gereksinimler karşılanmalıdır
- Azure uygulama kaydınızın ek SharePoint izinlerine ihtiyacı var
- Azure uygulama kaydınız,
api://<client-id>/access_as_usergibi bir LibreChat API kapsamını açığa çıkarmalı ve buna izin vermelidir.
SharePoint İzinlerini Ekleme
- Azure uygulama kaydınızda API permissions kısmına gidin
- İzin ekle'ye tıklayın
SharePoint Erişimi İçin:
- SharePoint'i seçin (Microsoft Graph değil)
- Temsil edilen izinleri (Delegated permissions) seçin
- Ekle:
AllSites.Read- Tüm site koleksiyonlarındaki öğeleri oku
Dosya İndirmeleri İçin:
-
Tekrar Add a permission düğmesine tıklayın
-
Microsoft Graph öğesini seçin
-
Temsil edilen izinleri (Delegated permissions) seçin
-
Ekle:
Files.Read.All- Kullanıcının erişebildiği tüm dosyaları oku -
Her iki izin için de Grant admin consent seçeneğine tıklayın
Yapılandırma
SharePoint değişkenlerini etkinleştirmeden önce, OpenID belirteci yeniden kullanım yapılandırmasının LibreChat uygulama API kapsamını talep ettiğinden emin olun. Bu, Azure'a SharePoint ve Graph belirteç değişimi için "adına hareket etme" (on-behalf-of) iddiası olarak kullanılabilecek bir uygulama hedef kitlesi erişim belirteci sağlar.
# 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.AllKullanım
Düzgün bir şekilde yapılandırıldığında:
- Kullanıcılar dosya ekleme menüsünde "From SharePoint" seçeneğini göreceklerdir
- Buna tıklamak, yerel SharePoint dosya seçicisini açar
- Kullanıcılar, erişim izinlerinin olduğu herhangi bir SharePoint sitesinden veya OneDrive'dan dosyalara göz atabilir ve seçim yapabilirler.
- Seçilen dosyalar indirilir ve konuşmaya eklenir
Güvenlik Notu
SharePoint entegrasyonu, mevcut tüm SharePoint izinlerine uyar. Kullanıcılar yalnızca SharePoint/OneDrive üzerinde görüntüleme iznine sahip oldukları dosyalara erişebilirler.
Ayrıntılı sorun giderme ve gelişmiş yapılandırma için bkz: SharePoint Integration Guide
Bu rehber nasıl?