跳到主要内容

OneDrive & SharePoint

信息

本教程提供了将 Open WebUI 与 Microsoft OneDrive for Business 及 SharePoint 集成的分步指南,以及可选的 Microsoft 个人 OneDrive 账户独立集成。您可以启用其中一个或两个集成。本文档基于 Open WebUI v0.6.37 更新。


配置 OneDrive & SharePoint 集成

本指南将带您完成配置 Open WebUI 的全过程,使用户能够直接从 Microsoft 账户附加文件。此过程需要在 Microsoft Azure 门户中创建一个或两个应用注册,并在 Open WebUI 实例中设置相应的环境变量。

前置条件

要成功完成本教程,您需要:

  • 一个具有创建和管理应用注册管理员权限的活跃 Microsoft Azure 账户。
  • 能够访问 Open WebUI 实例的环境变量(例如通过 .env 文件或 Docker 环境设置)。

OneDrive for Business 及 SharePoint(工作/学校账户)集成

这是面向组织使用的主要集成。按照以下步骤允许用户从其工作或学校账户访问文件。

第 1 步:创建 Azure 应用注册

首先,您需要在组织的 Microsoft Entra ID(原 Azure AD)租户中注册一个应用程序。

  1. 导航至 Microsoft Entra ID 管理中心
  2. 进入 Identity > Applications > App registrations
  3. 选择 + New registration
  4. 为应用程序提供一个描述性名称,例如"Open WebUI Business Integration"。
  5. 在"Supported account types"下,选择 "Accounts in this organizational directory only (Single tenant)""Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)"
  6. 暂时留空"Redirect URI"部分,点击 Register

第 2 步:配置 SPA 重定向 URI

Open WebUI 是一个单页应用程序(SPA),使用 Microsoft Authentication Library(MSAL)。正确配置重定向 URI 至关重要。

  1. 从新建应用注册的概览页面,进入 Authentication 选项卡。
  2. 点击 + Add a platform 并选择 Single-page application (SPA)
  3. 在"Redirect URIs"下,输入 Open WebUI 实例的基础 URL(例如 https://open-webui.yourdomain.com)。
  4. 在"Implicit grant and hybrid flows"部分同时启用"Access tokens"和"ID tokens"
  5. 点击 Configure

第 3 步:配置 API 权限

接下来,授予应用程序代表用户读取 OneDrive 和 SharePoint 文件的权限。

  1. 从应用注册菜单,进入 API permissions 选项卡。
  2. 点击 + Add a permission 并选择 Microsoft Graph
  3. 选择 Delegated permissions
  4. 在搜索框中找到并添加以下权限:
    • Files.Read:允许应用读取已登录用户有权访问的文件。
    • Files.Read.All:允许应用读取已登录用户可访问的所有文件。
    • Sites.Read.All:允许应用读取已登录用户可访问的所有网站集中的项目。
    • User.Read:允许应用读取已登录用户的个人资料。
    • AllSites.Read:用于读取网站数据的旧版 SharePoint 权限。
    • MyFiles.Read:允许应用读取用户的个人驱动器。
    • Sites.Search.All:启用跨网站的文件搜索功能。
  5. 如果您的组织单独使用 SharePoint API 权限,请重复该过程,选择 SharePoint 而不是 Microsoft Graph,并添加适用的委托权限。
  6. 添加所有权限后,必须授予管理员同意。点击 "Grant admin consent for [Your Tenant Name]" 按钮,这些权限的状态应变为"Granted"。
注意

管理员同意为必须项

Open WebUI 使用 .default 范围以实现无缝企业体验,这意味着它依赖于预先批准的权限。如果此处未授予管理员同意,非管理员用户将会收到"Admin approval required"错误而被阻止登录。

第 4 步:收集企业集成凭据

从刚刚创建的应用注册的 Overview 页面,复制以下值:

  • Application (client) ID:这将是您的 ONEDRIVE_CLIENT_ID_BUSINESS
  • Directory (tenant) ID:这将是您的 ONEDRIVE_SHAREPOINT_TENANT_ID

第 5 步:配置企业集成环境变量

在 Open WebUI 部署中设置以下环境变量以启用工作/学校账户集成:

# 全局启用 OneDrive 集成功能
ENABLE_ONEDRIVE_INTEGRATION=true

# --- 企业账户及 SharePoint 配置 ---

# 来自企业应用注册的 Application (client) ID
ONEDRIVE_CLIENT_ID_BUSINESS="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# 来自企业应用注册的 Directory (tenant) ID
ONEDRIVE_SHAREPOINT_TENANT_ID="yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"

# SharePoint 实例的根 URL
ONEDRIVE_SHAREPOINT_URL="https://your-tenant-name.sharepoint.com"
信息

设置这些变量并重启 Open WebUI 后,您还必须在管理面板中启用 OneDrive 开关。详情请参见下方"最后一步"部分。


个人 OneDrive 集成(可选)

要启用对个人 Microsoft 账户的支持,您必须创建一个第二个、独立的应用注册,为消费者账户配置。

第 1 步:为个人账户创建单独的应用注册

  1. 返回 Microsoft Entra ID 的 App registrations 并选择 + New registration
  2. 给它一个不同的名称,例如"Open WebUI Personal Integration"。
  3. 在"Supported account types"下,选择以下选项:"Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g., Skype, Xbox)"
  4. 使用您的 Open WebUI 基础 URL 配置 SPA 重定向 URI,与企业应用的配置相同。
  5. 在"Implicit grant and hybrid flows"部分同时启用"Access tokens"和"ID tokens"
  6. 对于此个人注册,无需特殊 API 权限或管理员同意,因为用户将单独同意 OneDrive.ReadWrite

第 2 步:收集个人集成的 Client ID

从这个新"Personal"应用注册的 Overview 页面,复制 Application (client) ID。这将用于不同的环境变量。

第 3 步:配置个人集成环境变量

向 Open WebUI 部署添加以下环境变量:


# --- 个人账户配置(可选)---

# 来自*第二个*个人应用注册的 Application (client) ID
ONEDRIVE_CLIENT_ID_PERSONAL="zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

最后一步:在管理设置中启用 OneDrive 集成

设置环境变量并重启 Open WebUI 实例后,您必须在管理面板中明确启用该功能。仅凭环境变量无法激活集成。

  1. 导航至 Settings → Admin → Documents
  2. 打开 "OneDrive" 开关。
  3. 刷新浏览器或退出后重新登录。
注意

管理员开关为必须项

即使您已在环境中设置了 ENABLE_ONEDRIVE_INTEGRATION=true,此步骤仍为必须操作。Open WebUI 中的某些配置选项是持久化的数据库设置,在首次启动时初始化,但必须通过管理界面激活。

验证集成

启用管理员开关并刷新后,验证集成是否正常工作:

  1. 在 Open WebUI 中,打开聊天输入框的附件菜单(+)。根据您的配置,您应该看到 "Microsoft OneDrive (work/school)" 和/或 "Microsoft OneDrive (personal)" 菜单项。
  2. 点击任一选项应触发 Microsoft 身份验证的弹出窗口。
警告

请禁用弹窗拦截器!

OneDrive 文件选择器和身份验证流程在弹出窗口中进行。如果点击 OneDrive 选项没有任何反应,您的浏览器几乎肯定在拦截弹窗。您必须为 Open WebUI 域名禁用弹窗拦截器才能使集成正常工作。请注意,某些浏览器(如 Chrome)与其他浏览器(如 Edge)相比可能有额外的限制。

故障排除

附件菜单中未显示 OneDrive 选项:

  • 验证 Settings → Admin → Documents 中的管理员开关是否已启用
  • 启用开关后刷新浏览器
  • 检查环境变量是否正确设置且容器已重启

文件未加载或文件夹无法点击:

  • 完全退出 Open WebUI 后重新登录以刷新身份验证令牌
  • 验证 Azure 应用注册权限是否已正确配置且已授予管理员同意
  • 检查浏览器控制台是否有身份验证错误

身份验证弹窗未出现:

  • 为 Open WebUI 域名禁用弹窗拦截器
  • 尝试使用其他浏览器(Edge 在处理 Microsoft 身份验证流程时通常比 Chrome 更可靠)

您现在已成功配置 OneDrive 集成,为您的用户提供无缝的文件访问体验。

本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。