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)租户中注册一个应用程序。
- 导航至 Microsoft Entra ID 管理中心。
- 进入 Identity > Applications > App registrations。
- 选择 + New registration。
- 为应用程序提供一个描述性名称,例如"Open WebUI Business Integration"。
- 在"Supported account types"下,选择 "Accounts in this organizational directory only (Single tenant)" 或 "Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)"。
- 暂时留空"Redirect URI"部分,点击 Register。
第 2 步:配置 SPA 重定向 URI
Open WebUI 是一个单页应用程序(SPA),使用 Microsoft Authentication Library(MSAL)。正确配置重定向 URI 至关重要。
- 从新建应用注册的概览页面,进入 Authentication 选项卡。
- 点击 + Add a platform 并选择 Single-page application (SPA)。
- 在"Redirect URIs"下,输入 Open WebUI 实例的基础 URL(例如
https://open-webui.yourdomain.com)。 - 在"Implicit grant and hybrid flows"部分同时启用"Access tokens"和"ID tokens"。
- 点击 Configure。
第 3 步:配置 API 权限
接下来,授予应用程序代表用户读取 OneDrive 和 SharePoint 文件的权限。
- 从应用注册菜单,进入 API permissions 选项卡。
- 点击 + Add a permission 并选择 Microsoft Graph。
- 选择 Delegated permissions。
- 在搜索框中找到并添加以下权限:
Files.Read:允许应用读取已登录用户有权访问的文件。Files.Read.All:允许应用读取已登录用户可访问的所有文件。Sites.Read.All:允许应用读取已登录用户可访问的所有网站集中的项目。User.Read:允许应用读取已登录用户的个人资料。AllSites.Read:用于读取网站数据的旧版 SharePoint 权限。MyFiles.Read:允许应用读取用户的个人驱动器。Sites.Search.All:启用跨网站的文件搜索功能。
- 如果您的组织单独使用 SharePoint API 权限,请重复该过程,选择 SharePoint 而不是 Microsoft Graph,并添加适用的委托权限。
- 添加所有权限后,必须授予管理员同意。点击 "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 步:为个人账户创建单独的应用注册
- 返回 Microsoft Entra ID 的 App registrations 并选择 + New registration。
- 给它一个不同的名称,例如"Open WebUI Personal Integration"。
- 在"Supported account types"下,选择以下选项:"Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g., Skype, Xbox)"。
- 使用您的 Open WebUI 基础 URL 配置 SPA 重定向 URI,与企业应用的配置相同。
- 在"Implicit grant and hybrid flows"部分同时启用"Access tokens"和"ID tokens"。
- 对于此个人注册,无需特殊 API 权限或管理员同意,因为用户将单独同意
OneDrive.ReadWrite。