Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Azure Entra

LibreChat'i kullanıcı kimlik doğrulaması için Azure Entra kullanacak şekilde nasıl yapılandıracağınızı öğrenin.

  1. Azure Portal adresine gidin ve hesabınızla oturum açın.
  2. Arama kutusuna "Azure Entra" yazın ve üzerine tıklayın.
  3. Sol menüde App registrations öğesine ve ardından New registration öğesine tıklayın.
  4. Uygulamanıza bir isim verin ve platform türü olarak Web'i seçin.
  5. 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/callback adresini kullanın. Dağıtılmış örnekler için http://localhost:3080 kısmını herkese açık DOMAIN_SERVER değerinizle değiştirin; örneğin https://chat.example.com/oauth/openid/callback.

image

  1. 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.

image

  1. 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.

image

  1. 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!

image

  1. 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.

image

  1. 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=2000

Azure'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.

  1. .env dosyasını kaydedin

Not: Docker kullanıyorsanız, .env yapılandırma değişikliklerini uygulamak için docker compose up -d komutunu ç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

  1. Azure uygulama kaydınızın uygun Microsoft Graph API izinlerine sahip olması gerekir
  2. Belirli Graph API kapsamları (örneğin GroupMember.Read.All) için yönetici onayı gerekebilir.

Graph API İzinlerini Ekleme

  1. Azure uygulama kaydınızda API permissions kısmına gidin
  2. İzin ekle (Add a permission) > Microsoft Graph > Temsilci izinleri (Delegated permissions) öğesine tıklayın
  3. Şu izinleri ekleyin:
    • User.Read - Oturum açın ve kullanıcı profilini okuyun
    • People.Read - Kullanıcı kişilerini oku
    • GroupMember.Read.All - Tüm grup üyeliklerini oku
    • User.ReadBasic.All - Tüm kullanıcıların temel profillerini oku
  4. 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=true

Ayrı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.All

Etkinleş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 mevcut OPENID_SCOPE değerinize otomatik olarak eklenir.
  • Grup araması, genellikle yönetici onayı gerektiren GroupMember.Read.All iznini gerektirir.
  • Kullanıcı araması, temel User.Read, People.Read ve User.ReadBasic.All izinleriyle ç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

  1. Token Reuse bölümündeki tüm gereksinimler karşılanmalıdır
  2. Azure uygulama kaydınızın ek SharePoint izinlerine ihtiyacı var
  3. Azure uygulama kaydınız, api://<client-id>/access_as_user gibi bir LibreChat API kapsamını açığa çıkarmalı ve buna izin vermelidir.

SharePoint İzinlerini Ekleme

  1. Azure uygulama kaydınızda API permissions kısmına gidin
  2. İzin ekle'ye tıklayın

SharePoint Erişimi İçin:

  1. SharePoint'i seçin (Microsoft Graph değil)
  2. Temsil edilen izinleri (Delegated permissions) seçin
  3. Ekle: AllSites.Read - Tüm site koleksiyonlarındaki öğeleri oku

Dosya İndirmeleri İçin:

  1. Tekrar Add a permission düğmesine tıklayın

  2. Microsoft Graph öğesini seçin

  3. Temsil edilen izinleri (Delegated permissions) seçin

  4. Ekle: Files.Read.All - Kullanıcının erişebildiği tüm dosyaları oku

  5. 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.All

Kullanım

Düzgün bir şekilde yapılandırıldığında:

  1. Kullanıcılar dosya ekleme menüsünde "From SharePoint" seçeneğini göreceklerdir
  2. Buna tıklamak, yerel SharePoint dosya seçicisini açar
  3. Kullanıcılar, erişim izinlerinin olduğu herhangi bir SharePoint sitesinden veya OneDrive'dan dosyalara göz atabilir ve seçim yapabilirler.
  4. 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?