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

Azure Entra

Pelajari cara mengonfigurasi LibreChat untuk menggunakan Azure Entra untuk autentikasi pengguna.

  1. Buka Azure Portal dan masuk dengan akun Anda.
  2. Di kotak pencarian, ketik "Azure Entra" dan klik di atasnya.
  3. Pada menu sebelah kiri, klik App registrations lalu klik New registration.
  4. Berikan nama pada aplikasi Anda dan pilih Web sebagai tipe platform.
  5. 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, ganti http://localhost:3080 dengan nilai DOMAIN_SERVER publik Anda, contohnya https://chat.example.com/oauth/openid/callback.

image

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

image

  1. Pada menu sebelah kiri, klik Authentication dan centang kotak untuk Access tokens dan ID tokens di bawah Implicit grant and hybrid flows.

image

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

image

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

image

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

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

  1. Simpan file .env

Catatan: Jika menggunakan Docker, jalankan docker compose up -d untuk 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

  1. Pendaftaran aplikasi Azure Anda harus memiliki izin Microsoft Graph API yang sesuai
  2. Persetujuan admin mungkin diperlukan untuk cakupan Graph API tertentu (seperti GroupMember.Read.All)

Menambahkan Izin Graph API

  1. Di pendaftaran aplikasi Azure Anda, buka API permissions
  2. Klik Add a permission > Microsoft Graph > Delegated permissions
  3. Tambahkan izin berikut:
    • User.Read - Masuk dan baca profil pengguna
    • People.Read - Membaca kontak pengguna
    • GroupMember.Read.All - Membaca semua keanggotaan grup
    • User.ReadBasic.All - Membaca profil dasar semua pengguna
  4. 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=true

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

Saat 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_SCOPES secara otomatis ditambahkan ke OPENID_SCOPE Anda 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, dan User.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

  1. Semua persyaratan dari Token Reuse harus dipenuhi
  2. Pendaftaran aplikasi Azure Anda memerlukan izin SharePoint tambahan
  3. Pendaftaran aplikasi Azure Anda harus mengekspos dan memberikan scope API LibreChat, seperti api://<client-id>/access_as_user

Menambahkan Izin SharePoint

  1. Di pendaftaran aplikasi Azure Anda, buka API permissions
  2. Klik Add a permission

Untuk Akses SharePoint:

  1. Pilih SharePoint (bukan Microsoft Graph)
  2. Pilih Delegated permissions
  3. Tambahkan: AllSites.Read - Baca item di semua koleksi situs

Untuk Unduhan Berkas:

  1. Klik Add a permission lagi

  2. Pilih Microsoft Graph

  3. Pilih Delegated permissions

  4. Tambahkan: Files.Read.All - Membaca semua file yang dapat diakses oleh pengguna

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

Penggunaan

Jika dikonfigurasi dengan benar:

  1. Pengguna akan melihat opsi "From SharePoint" di menu lampiran file
  2. Mengkliknya akan membuka pemilih file SharePoint bawaan
  3. Pengguna dapat menelusuri dan memilih file dari situs SharePoint atau OneDrive mana pun yang dapat mereka akses
  4. 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?