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

Azure Entra

Tìm hiểu cách cấu hình LibreChat để sử dụng Azure Entra cho xác thực người dùng.

  1. Truy cập Azure Portal và đăng nhập bằng tài khoản của bạn.
  2. Trong hộp tìm kiếm, hãy nhập "Azure Entra" và nhấp vào đó.
  3. Trên menu bên trái, nhấp vào App registrations và sau đó nhấp vào New registration.
  4. Đặt tên cho ứng dụng của bạn và chọn Web làm loại nền tảng.
  5. Trong trường Redirect URI, hãy nhập URL callback OpenID của LibreChat và nhấp vào Register. Đối với các bản cài đặt Docker cục bộ, hãy sử dụng http://localhost:3080/oauth/openid/callback. Đối với các instance đã triển khai, hãy thay thế http://localhost:3080 bằng giá trị DOMAIN_SERVER công khai của bạn, ví dụ: https://chat.example.com/oauth/openid/callback.

image

  1. Bạn sẽ thấy trang Overview với một số thông tin về ứng dụng của mình. Hãy sao chép Application (client) ID và Directory (tenant) ID rồi lưu chúng lại ở đâu đó.

image

  1. Trên menu bên trái, nhấp vào Authentication và chọn các ô cho Access tokens và ID tokens trong phần Implicit grant and hybrid flows.

image

  1. Trên menu bên trái, hãy nhấp vào Certificates & Secrets và sau đó nhấp vào New client secret. Đặt tên cho secret của bạn và chọn ngày hết hạn, sau đó nhấp vào Add. Bạn sẽ thấy cột Value chứa secret của mình. Hãy sao chép và lưu nó ở một nơi an toàn. Đừng chia sẻ nó với bất kỳ ai!

image

  1. Nếu bạn muốn hạn chế quyền truy cập theo nhóm, bạn nên thêm claim groups vào token. Để thực hiện việc này, hãy đi tới Token configuration và nhấp vào Add group claim. Chọn các nhóm bạn muốn đưa vào token và nhấp vào Add.

image

  1. Mở tệp .env trong thư mục dự án của bạn và thêm các biến sau với các giá trị bạn đã sao chép:
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 chuyển hướng được đăng ký trong Azure phải khớp chính xác với URL mà LibreChat sử dụng. Nếu DOMAIN_SERVER=https://chat.example.com, Azure sẽ cần sử dụng https://chat.example.com/oauth/openid/callback.

  1. Lưu tệp .env

Lưu ý: Nếu sử dụng Docker, hãy chạy docker compose up -d để áp dụng các thay đổi cấu hình trong .env

Nâng cao: Tái sử dụng Token

LibreChat hỗ trợ việc tái sử dụng token Azure Entra ID để quản lý phiên làm việc, điều này có thể mang lại khả năng tích hợp tốt hơn với môi trường Azure của bạn. Tính năng này cho phép LibreChat sử dụng các refresh token của Azure thay vì tự quản lý các token phiên của riêng mình.

Để tìm hiểu thêm về tính năng này và cách cấu hình, hãy xem Re-use OpenID Tokens for Login Session.

Nâng cao: Tích hợp Microsoft Graph API

Khi sử dụng Azure Entra ID làm nhà cung cấp OpenID của bạn, bạn có thể kích hoạt tích hợp Microsoft Graph API để nâng cao hệ thống quyền và chia sẻ với các khả năng tìm kiếm người dùng và nhóm.

Điều kiện tiên quyết

  1. Ứng dụng Azure của bạn phải có các quyền Microsoft Graph API phù hợp
  2. Có thể cần sự đồng ý của quản trị viên đối với một số phạm vi Graph API nhất định (như GroupMember.Read.All)

Thêm quyền Graph API

  1. Trong phần đăng ký ứng dụng Azure của bạn, hãy đi tới API permissions
  2. Nhấp vào Add a permission > Microsoft Graph > Delegated permissions
  3. Thêm các quyền này:
    • User.Read - Đăng nhập và đọc hồ sơ người dùng
    • People.Read - Đọc danh bạ người dùng
    • GroupMember.Read.All - Đọc tất cả các tư cách thành viên nhóm
    • User.ReadBasic.All - Đọc hồ sơ cơ bản của tất cả người dùng
  4. Nhấp vào Grant admin consent nếu được yêu cầu (bạn sẽ cần quyền quản trị viên)

Cấu hình

Bắt buộc: Bật tính năng Tái sử dụng Token

Quan trọng: Bạn BẮT BUỘC phải bật tính năng tái sử dụng mã thông báo OpenID để tính năng này hoạt động:

OPENID_REUSE_TOKENS=true

Xem Cấu hình Tái sử dụng Token ở trên để biết chi tiết.

Thêm các biến môi trường sau vào tệp .env của bạn:

# 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

Khi được bật, trình chọn người dùng trong các hộp thoại cấp quyền và chia sẻ sẽ:

  • Tìm kiếm cả người dùng LibreChat cục bộ và người dùng Azure Entra ID
  • Hiển thị hồ sơ người dùng với tên và email từ tổ chức của bạn
  • Cho phép tìm kiếm và chọn các nhóm Azure Entra ID
  • Hiển thị các thành viên trong nhóm dựa trên quyền Graph API của bạn

Ghi chú

  • Việc sử dụng lại token (OPENID_REUSE_TOKENS=true) là bắt buộc để tính năng này hoạt động
  • OPENID_GRAPH_SCOPES sẽ được tự động thêm vào OPENID_SCOPE hiện có của bạn trong quá trình xác thực.
  • Tính năng tìm kiếm nhóm yêu cầu quyền GroupMember.Read.All, quyền này thường cần sự đồng ý của quản trị viên.
  • Tính năng tìm kiếm người dùng hoạt động với các quyền cơ bản User.Read, People.ReadUser.ReadBasic.All

Nâng cao: Tích hợp SharePoint

LibreChat có thể tích hợp với SharePoint Online và OneDrive for Business, cho phép người dùng duyệt và đính kèm tệp trực tiếp từ các thư viện SharePoint của họ.

Điều kiện tiên quyết

  1. Tất cả các yêu cầu từ Token Reuse phải được đáp ứng
  2. Ứng dụng Azure của bạn cần thêm quyền SharePoint
  3. Việc đăng ký ứng dụng Azure của bạn phải hiển thị và cấp quyền phạm vi (scope) API cho LibreChat, ví dụ như api://<client-id>/access_as_user

Thêm quyền SharePoint

  1. Trong phần đăng ký ứng dụng Azure của bạn, hãy đi tới API permissions
  2. Nhấp vào Add a permission

Đối với quyền truy cập SharePoint:

  1. Chọn SharePoint (không phải Microsoft Graph)
  2. Chọn Delegated permissions
  3. Thêm: AllSites.Read - Đọc các mục trong tất cả các tập hợp trang web

Đối với Tải xuống Tệp:

  1. Nhấp vào Add a permission một lần nữa

  2. Chọn Microsoft Graph

  3. Chọn Delegated permissions

  4. Thêm: Files.Read.All - Đọc tất cả các tệp mà người dùng có thể truy cập

  5. Nhấp vào Grant admin consent cho cả hai quyền.

Cấu hình

Trước khi kích hoạt các biến SharePoint, hãy đảm bảo cấu hình tái sử dụng mã thông báo OpenID yêu cầu phạm vi API của ứng dụng LibreChat. Điều này cung cấp cho Azure một mã thông báo truy cập dành cho đối tượng ứng dụng, có thể được sử dụng làm xác nhận on-behalf-of cho việc trao đổi mã thông báo SharePoint và 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

Cách sử dụng

Khi được cấu hình đúng cách:

  1. Người dùng sẽ thấy tùy chọn "From SharePoint" trong menu đính kèm tệp.
  2. Nhấp vào đó sẽ mở trình chọn tệp SharePoint gốc
  3. Người dùng có thể duyệt và chọn tệp từ bất kỳ trang SharePoint hoặc OneDrive nào mà họ có quyền truy cập
  4. Các tệp đã chọn được tải xuống và đính kèm vào cuộc trò chuyện

Lưu ý về bảo mật

Tích hợp SharePoint tôn trọng tất cả các quyền hiện có trên SharePoint. Người dùng chỉ có thể truy cập các tệp mà họ đã có quyền xem trong SharePoint/OneDrive.

Để biết chi tiết về khắc phục sự cố và cấu hình nâng cao, hãy xem: SharePoint Integration Guide

Hướng dẫn này thế nào?