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 

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のリフレッシュトークンを使用できるようになります。

この機能の詳細および設定方法については、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

詳細は上記のトークン再利用設定を参照してください。

.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

有効にすると、権限および共有ダイアログのユーザー選択機能は以下のようになります:

  • ローカルのLibreChatユーザーとAzure Entra IDユーザーの両方を検索します
  • 組織内の名前とメールアドレスを含むユーザープロフィールを表示します
  • Azure Entra ID グループの検索と選択を許可する
  • Graph APIの権限に基づいてグループメンバーを表示する

注記

  • この機能が動作するためには、トークンの再利用 (OPENID_REUSE_TOKENS=true) が必須です。
  • OPENID_GRAPH_SCOPES は、認証中に既存の OPENID_SCOPE へ自動的に追加されます。
  • グループ検索には GroupMember.Read.All 権限が必要であり、通常は管理者の同意が必要です。
  • ユーザー検索は、基本的な User.ReadPeople.Read、および User.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)アサーションとして使用できるアプリオーディエンスアクセストークンを発行します。

# 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 を参照してください。

このガイドはいかがでしたか?