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

Azure Entra

LibreChat 사용자 인증을 위해 Azure Entra를 구성하는 방법을 알아보세요.

  1. Azure Portal로 이동하여 계정으로 로그인하세요.
  2. 검색 상자에 "Azure Entra"를 입력하고 클릭하세요.
  3. 왼쪽 메뉴에서 App registrations를 클릭한 다음 New registration을 클릭하세요.
  4. 앱에 이름을 지정하고 플랫폼 유형으로 Web을 선택하세요.
  5. Redirect URI 필드에 LibreChat OpenID 콜백 URL을 입력하고 Register를 클릭합니다. 로컬 Docker 설치의 경우 http://localhost:3080/oauth/openid/callback을 사용하세요. 배포된 인스턴스의 경우 http://localhost:3080을 사용자의 공용 DOMAIN_SERVER 값으로 대체하세요(예: https://chat.example.com/oauth/openid/callback).

image

  1. 앱에 대한 몇 가지 정보가 포함된 개요(Overview) 페이지가 표시됩니다. 애플리케이션(클라이언트) ID(Application (client) ID)와 디렉터리(테넌트) ID(Directory (tenant) ID)를 복사하여 어딘가에 저장해 두세요.

image

  1. 왼쪽 메뉴에서 Authentication을 클릭하고 Implicit grant and hybrid flows 아래의 Access tokens 및 ID tokens 확인란을 선택하세요.

image

  1. 왼쪽 메뉴에서 Certificates & Secrets를 클릭한 다음 New client secret을 클릭합니다. 시크릿에 이름과 만료 날짜를 지정하고 Add를 클릭합니다. 시크릿이 포함된 Value 열이 표시됩니다. 이를 복사하여 안전한 곳에 저장하세요. 누구와도 공유하지 마세요!

image

  1. 그룹별로 액세스를 제한하려면 토큰에 groups 클레임을 추가해야 합니다. 이를 수행하려면 Token configuration으로 이동하여 Add group claim을 클릭하세요. 토큰에 포함할 그룹을 선택하고 Add를 클릭하세요.

image

  1. 프로젝트 폴더에서 .env 파일을 열고 복사한 값들을 사용하여 다음 변수들을 추가하세요:
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에 등록된 리디렉션 URI는 LibreChat이 서비스하는 URL과 정확히 일치해야 합니다. DOMAIN_SERVER=https://chat.example.com인 경우, Azure는 https://chat.example.com/oauth/openid/callback을 사용해야 합니다.

  1. .env 파일을 저장하세요

참고: Docker를 사용하는 경우, docker compose up -d를 실행하여 .env 구성 변경 사항을 적용하세요.

고급: 토큰 재사용

LibreChat은 세션 관리를 위해 Azure Entra ID 토큰 재사용을 지원하며, 이를 통해 Azure 환경과의 더 나은 통합을 제공할 수 있습니다. 이 기능을 사용하면 LibreChat이 자체 세션 토큰을 관리하는 대신 Azure의 새로 고침 토큰(refresh tokens)을 사용할 수 있습니다.

이 기능과 구성 방법에 대해 자세히 알아보려면 Re-use OpenID Tokens for Login Session을 참조하세요.

고급: Microsoft Graph API 통합

Azure Entra ID를 OpenID 공급자로 사용할 때, Microsoft Graph API 통합을 활성화하여 사람 및 그룹 검색 기능으로 권한 및 공유 시스템을 향상시킬 수 있습니다.

필수 조건

  1. Azure 앱 등록에는 적절한 Microsoft Graph API 권한이 있어야 합니다.
  2. 특정 Graph API 범위(예: GroupMember.Read.All)에 대해서는 관리자 동의가 필요할 수 있습니다.

Graph API 권한 추가

  1. Azure 앱 등록에서 API permissions로 이동하세요.
  2. Add a permission > Microsoft Graph > Delegated permissions을 클릭합니다.
  3. 다음 권한을 추가하세요:
    • User.Read - 로그인 및 사용자 프로필 읽기
    • People.Read - 사용자 연락처 읽기
    • GroupMember.Read.All - 모든 그룹 멤버십 읽기
    • User.ReadBasic.All - 모든 사용자의 기본 프로필 읽기
  4. 필요한 경우 Grant admin consent를 클릭하세요(관리자 권한이 필요합니다).

구성

필수: 토큰 재사용 활성화

중요: 이 기능을 작동시키려면 OpenID 토큰 재사용을 활성화해야 합니다:

OPENID_REUSE_TOKENS=true

자세한 내용은 위의 Token Reuse Configuration을 참조하세요.

.env 파일에 다음 환경 변수를 추가하세요:

# 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

활성화되면, 권한 및 공유 대화 상자의 사용자 선택기(people picker)는 다음을 수행합니다:

  • 로컬 LibreChat 사용자와 Azure Entra ID 사용자 모두 검색
  • 조직의 이름과 이메일이 포함된 사용자 프로필을 표시합니다
  • Azure Entra ID 그룹 검색 및 선택 허용
  • Graph API 권한에 따라 그룹 멤버 표시

참고 사항

  • 이 기능을 작동시키려면 토큰 재사용(OPENID_REUSE_TOKENS=true)이 필수입니다.
  • OPENID_GRAPH_SCOPES는 인증 과정 중에 기존 OPENID_SCOPE에 자동으로 추가됩니다.
  • 그룹 검색에는 GroupMember.Read.All 권한이 필요하며, 이는 일반적으로 관리자의 동의가 필요합니다.
  • 사용자 검색은 기본 User.Read, People.ReadUser.ReadBasic.All 권한으로 작동합니다.

고급: SharePoint 통합

LibreChat은 SharePoint Online 및 OneDrive for Business와 통합할 수 있어, 사용자가 SharePoint 라이브러리에서 직접 파일을 탐색하고 첨부할 수 있습니다.

필수 조건

  1. Token Reuse의 모든 요구 사항을 충족해야 합니다.
  2. Azure 앱 등록에 추가적인 SharePoint 권한이 필요합니다
  3. Azure 앱 등록은 api://<client-id>/access_as_user와 같은 LibreChat API 범위를 노출하고 부여해야 합니다.

SharePoint 권한 추가

  1. Azure 앱 등록에서 API permissions로 이동하세요.
  2. Add a permission을 클릭하세요

SharePoint 액세스:

  1. SharePoint(Microsoft Graph 아님)를 선택하세요
  2. Delegated permissions을 선택하세요
  3. 추가: AllSites.Read - 모든 사이트 모음의 항목 읽기

파일 다운로드의 경우:

  1. Add a permission을 다시 클릭하세요

  2. Microsoft Graph를 선택하세요

  3. Delegated permissions을 선택하세요

  4. 추가: Files.Read.All - 사용자가 액세스할 수 있는 모든 파일 읽기

  5. 두 권한 모두에 대해 Grant admin consent를 클릭하세요.

구성

SharePoint 변수를 활성화하기 전에, OpenID 토큰 재사용 구성이 LibreChat 앱 API 범위를 요청하는지 확인하십시오. 이를 통해 Azure는 SharePoint 및 Graph 토큰 교환을 위한 대리(on-behalf-of) 어설션으로 사용할 수 있는 앱 대상(app-audience) 액세스 토큰을 제공합니다.

# 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

사용법

올바르게 구성되면:

  1. 사용자는 파일 첨부 메뉴에서 "From SharePoint" 옵션을 보게 됩니다.
  2. 클릭하면 기본 SharePoint 파일 선택기가 열립니다
  3. 사용자는 자신이 액세스 권한을 가진 모든 SharePoint 사이트나 OneDrive에서 파일을 탐색하고 선택할 수 있습니다.
  4. 선택한 파일들이 다운로드되어 대화에 첨부됩니다.

보안 참고 사항

SharePoint 통합은 기존의 모든 SharePoint 권한을 준수합니다. 사용자는 SharePoint/OneDrive에서 이미 볼 수 있는 권한이 있는 파일에만 액세스할 수 있습니다.

자세한 문제 해결 및 고급 구성은 다음을 참조하세요: SharePoint Integration Guide

이 가이드는 어떤가요?