跳到主要内容

SharePoint

关于 ONLYOFFICE 和 SharePoint 的集成​

要在 SharePoint 协作平台中编辑文档,您可以通过官方 ONLYOFFICE 连接器或 WOPI 将 ONLYOFFICE 文档与您的文档库集成。欲了解更多信息,请访问 ONLYOFFICE 到 SharePoint 连接器的 GitHub 页面。该连接器根据 AGPL-3.0 许可证分发。

要了解有关 ONLYOFFICE SharePoint 连接器如何工作的更多信息,请访问我们的 API 文档页面。

连接方式​

ONLYOFFICE 文档可以通过两种方式连接到 SharePoint:官方连接器或 WOPI。两种方式都允许直接在 SharePoint 中编辑文档,但支持的功能和格式有所不同。

警告

我们强烈建议只选择一种安装方式。如果同时使用两种方式进行安装,协作功能和文档保存可能无法按预期工作。

功能比较​

功能官方连接器WOPI
从上下文菜单 / 功能区编辑文档✓ (在 ONLYOFFICE 中打开)✓ (点击文件 / 上下文菜单 → 打开 → 在 office online 中打开)
快速协作模式✓✓
严格协作模式✓✗ 1
变更跟踪✓✗
评论、内置聊天✓✓
版本历史✗✗
邮件合并✓✓
从存储中插入图像✗✗
比较文档✓✗

1 使用 WOPI 时,严格协作模式可能会对访问令牌参数产生负面影响。

重要

使用 WOPI 时,访问令牌在一段时间后会过期。将 access_token_ttl 属性设置为 10 小时以用于快速协作模式。

支持的格式​

官方连接器:

  • 可查看和编辑:DOCM、DOCX、DOTM、DOTX、PDF、POTM、POTX、PPSM、PPSX、PPTM、PPTX、XLSB、XLSM、XLSX、XLTM、XLTX
  • 仅可查看:CSV、DJVU、DOC、DOT、DPS、DPT、EPUB、ET、ETT、FB2、FODP、FODS、FODT、HML、HTM、HTML、HWP、HWPX、KEY、MD、MHT、MHTML、NUMBERS、ODG、ODT、ODP、ODS、OTT、OTP、OXPS、PAGES、POT、PPS、PPT、RTF、STW、SXC、SXI、SXW、TXT、VSDM、VSDX、VSSM、VSSX、VSTM、VSTX、WPS、WPT、XLS、XLT、XML、XPS

WOPI:

  • 可查看和编辑:DOCX、XLSX、PPTX、DOCM、XLSM、PPTM、ODT、ODS、ODP、CSV、PDF
  • 仅可查看:DJVU、XPS
备注

可用的格式取决于您的 ONLYOFFICE 文档版本和所选的连接方式。

版本 3.1.0 的新功能​

已更改

  • 新增支持的格式

完整的变更日志可在此处查看。

使用官方连接器​

要求​

  • ONLYOFFICE 文档服务器 v7.1(服务器或云版本)或更高版本。该实例必须可以从 SharePoint 和任何终端客户端解析和连接,并且必须能够直接向 SharePoint 发送 POST 请求。请参阅官方文档页面以了解有关安装 ONLYOFFICE 文档的更多信息。
  • SharePoint 2019
  • ONLYOFFICE SharePoint 连接器 3.1.0

安装和配置​

ONLYOFFICE SharePoint 集成解决方案是一个官方的 ONLYOFFICE 连接器,可在 GitHub 页面上根据 GNU AGPL v.3 许可证获得。

要了解它如何工作以及如何编译该解决方案,请访问我们的 API 文档。

  1. 点击开始,指向所有程序,指向管理工具,然后点击服务,确保 SharePoint 管理服务已启动。

  2. 点击开始,打开 SharePoint 管理 Shell,并导航到包含 .wsp 文件的目录。

  3. 运行 Install.ps1 脚本:

    PS> .\Install.ps1
  4. 输入您的 SharePoint 站点地址:

    https://<yoursharepointsite>

    替代步骤 3 和 4,您可以输入以下命令:

    Add-SPSolution -LiteralPath<solutionpath>/onlyoffice.wsp

    在 SharePoint 中央管理主页上,点击系统设置 → 场管理 → 管理场解决方案。在解决方案管理页面上,点击 onlyoffice.wsp,然后点击部署解决方案。

  5. 在 SharePoint 中央管理主页上,在应用程序管理下,点击管理 Web 应用程序。

  6. 确保选择您的站点并点击身份验证提供程序图标。

  7. 在身份验证提供程序弹出窗口中,点击默认区域。

  8. 在编辑身份验证下,勾选启用匿名访问并点击保存。

  9. 返回到 Web 应用程序管理,点击匿名策略图标。

  10. 在匿名访问限制下,选择您的区域并设置权限为无 – 否策略并点击保存。

  11. 在 SharePoint 中,打开具有管理设置的 /_layouts/15/Onlyoffice/Settings.aspx 页面。输入以下地址:

    https://<documentserver>/

    其中 documentserver 是安装了 ONLYOFFICE 文档的服务器名称。该地址必须对用户浏览器和 SharePoint 服务器可访问。SharePoint 服务器地址也必须对 ONLYOFFICE 文档可访问以确保正确工作。

如果您在 SharePoint 中设置了子站点,您需要另外配置 ONLYOFFICE 文档与每个子站点的连接。转到每个子站点设置并在适当的字段中输入文档地址。

从 ONLYOFFICE 文档 v7.2 开始,JWT 默认启用,并自动生成密钥。您还需要在 SharePoint 端启用它:在 ONLYOFFICE 文档配置文件中找到您的密钥,然后在 SharePoint 管理设置中指定相同的密钥。有关详细信息,请参阅下面的启用 JWT 部分。

如果启用了 JWT 保护,必须指定自定义头名称,因为 SharePoint 安全策略会阻止外部 'Authorization' 头。此头也应在 ONLYOFFICE 文档签名设置中指定(更多信息请参见此处)。

编译解决方案​

有两种方法可以编译 ONLYOFFICE SharePoint 集成解决方案:

  • 使用 MS Visual Studio:

    1. 输入 SharePoint 服务器并在 Visual Studio 中打开此项目。
    2. 在解决方案资源管理器中,打开项目的快捷菜单,然后选择发布。
    3. 在发布对话框中,选择发布到文件系统选项按钮。
    4. 点击发布按钮。当发布过程完成时,将创建解决方案 .wsp 文件。
    5. 将生成的文件复制到包含 Install.ps1 文件的文件夹(默认情况下为 BuildAndInstall 文件夹)。
  • 使用 build.bat 文件:

    1. 转到 BuildAndInstall 文件夹。
    2. 运行 build.bat 文件。
    3. 生成的解决方案 .wsp 文件将被创建并放置到 BuildAndInstall 文件夹中。

工作原理​

ONLYOFFICE 集成遵循此处记录的 API。

  1. 用户导航到 SharePoint 中的文档,并在上下文菜单或功能区中选择在 ONLYOFFICE 中编辑操作。

  2. SharePoint 向编辑器页面发出请求(URL 形式为:/_layouts/15/Onlyoffice/editorPage.aspx?SPListItemId={ItemId}&SPListURLDir={ListUrlDir}&action=track)。

  3. SharePoint 准备一个包含以下属性的 JSON 对象:

    • url - ONLYOFFICE 文档用于下载文档的 URL;
    • callbackUrl - ONLYOFFICE 文档通知文档编辑状态的 URL;
    • DocumentSeverHost - 客户端需要回复 ONLYOFFICE 文档服务器的 URL(可以在设置页面中设置);
    • Key - 来自 SharePoint 的文件标识符;
    • FileName - 文档标题(名称);
    • CurrentUserId - 用户标识符;
    • CurrentUserName - 用户名。
  4. SharePoint 构建一个页面,填充所有这些值,以便客户端浏览器可以加载编辑器。

  5. 客户端浏览器向 ONLYOFFICE 文档的 JavaScript 库发出请求,并向 ONLYOFFICE 文档发送带有上述属性的 DocEditor 配置。

  6. 然后 ONLYOFFICE 文档从 SharePoint 下载文档,用户开始编辑。

  7. 当所有用户和客户端浏览器完成编辑时,他们关闭编辑窗口。

  8. 在 10 秒不活动后,ONLYOFFICE 文档向 callbackUrl 发送 POST 请求,通知 SharePoint ONLYOFFICE 解决方案客户端已完成文档编辑并关闭。

  9. SharePoint 下载新版本的文档,替换旧版本。

要了解更多常见问题及其解决方法,请访问我们的故障排除指南。

启用 JWT​

为了保护文档免受未经授权的访问,ONLYOFFICE 编辑器使用 JSON Web Token (JWT)。在初始化文档编辑器和内部 ONLYOFFICE 文档服务之间的命令交换期间,令牌会被添加到配置中。使用密钥对 JSON Web Token 进行签名,并在请求 ONLYOFFICE 文档时验证令牌。

从 ONLYOFFICE 文档 v7.2 开始,JWT 默认启用,并自动生成密钥。您需要在 ONLYOFFICE 文档配置文件中找到您的密钥,然后在连接器设置中指定相同的密钥。

步骤 1: 在 ONLYOFFICE 文档配置文件中找到您的密钥

  1. 使用任何可用的文本编辑器打开 local.json 文件:

    • 对于 Linux:/etc/onlyoffice/documentserver/local.json

    • 对于 Windows:%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json

    • 对于 Docker:使用 docker exec -it <containerID> bash 命令进入 ONLYOFFICE 文档容器并打开 /etc/onlyoffice/documentserver/local.json。或者,您可以运行:

      sudo docker exec <containerID> /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

    local.json 文件应如下所示:

    {
    "services": {
    "CoAuthoring": {
    "token": {
    "enable": {
    "request": {
    "inbox": true,
    "outbox": true
    },
    "browser": true
    }
    },
    "secret": {
    "inbox": {
    "string": "yoursecret"
    },
    "outbox": {
    "string": "yoursecret"
    },
    "session": {
    "string": "yoursecret"
    }
    }
    }
    }
    }
  2. true 值在三个部分中指定,这意味着令牌验证已启用:

    • services.CoAuthoring.token.enable.browser
    • services.CoAuthoring.token.enable.request.inbox
    • services.CoAuthoring.token.enable.request.outbox
  3. 自动生成的密钥在三个部分中指定。您可以用自己的密钥替换默认值 — 它在三个部分中必须相同:

    • services.CoAuthoring.secret.inbox.string
    • services.CoAuthoring.secret.outbox.string
    • services.CoAuthoring.secret.session.string
  4. 如果您进行了更改,请保存并重新启动服务:

    supervisorctl restart all

步骤 2: 在连接器设置中指定相同的密钥

在连接器设置中,在密钥字段中指定相同的密钥并保存设置。

使用 WOPI​

您还可以通过 WOPI 将 ONLYOFFICE 文档与 SharePoint 连接,WOPI 是一种基于 REST 的协议,当客户端与您的数据服务器建立连接时,会向一组 REST 端点发出 HTTP 请求。

限制​

由于 WOPI 架构的限制,通过 WOPI 连接 ONLYOFFICE 文档缺少某些功能:

  • 不支持版本历史功能。
  • 不支持从存储中插入图像。
  • 不支持比较文档。
  • 不支持以下格式:DOC、XLS、PPT。

要求​

  • ONLYOFFICE 文档服务器 v7.1 或更高版本,并已启用 WOPI。请按照此说明启用 WOPI。
  • SharePoint 2019

通过 WOPI 连接​

  1. 打开您的 SharePoint 服务器。运行 SharePoint 管理 Shell 控制台,并设置所需的 WOPI 区域:

    Set-SPWOPIZone -Zone "external-http"

    documentserver 默认使用 external-http 参数。

  2. 检查当前场上是否有其他文档类型的 WOPI 绑定:

    Get-SPWOPIBinding

    如果有,请删除这些绑定:

    Remove-SPWOPIBinding -All:$true
  3. 根据文件类型创建默认操作的绑定。

    一次性为所有文件类型创建绑定:

    New-SPWOPIBinding -ServerName ip_or_domain.com:port

    仅为特定文件类型创建绑定:

    New-SPWOPIBinding -ServerName ip_or_domain.com:port -Extension DOCX

    如果未使用 SSL,请在命令末尾添加 -AllowHTTP。

启用授权头​

wopi.sendAuthorizationHeader 参数会在 WOPI 请求中添加 Authorization: Bearer <access_token> 头。根据 WOPI 规范它是可选的,但根据 SharePoint 版本的不同可能是必需的:

  • SharePoint Subscription Edition: 必须启用此参数。否则会出现 Invalid access token 错误,文档编辑失败。
  • SharePoint 2019: 此参数是可选的。连接可以使用 URI 中传递的令牌正常工作,但启用该头不会造成任何问题。

要启用 wopi.sendAuthorizationHeader,请使用以下方式之一:

  • 编辑 /etc/onlyoffice/documentserver/default.json 配置文件,或将以下内容添加到 /etc/onlyoffice/documentserver/local.json 以在更新后保留更改:

    {
    "wopi": {
    "sendAuthorizationHeader": true
    }
    }

    更改后,请重新启动服务:

    supervisorctl restart all
  • 在商业版本中,也可以通过管理面板配置此参数。

创建新文档​

重要

以下说明仅适用于 WOPI 连接方法。

要能够创建新文档,请设置以下描述的参数。此示例仅针对 DOCX 文件,但您可以类似地添加 XLSX、PPTX 和其他文件。

  1. 启用允许管理内容类型设置:转到文档 → 库设置 → 高级设置。在允许管理内容类型部分中,选择是并点击确定。

    创建新文档

  2. 在文档库中,转到站点内容 → 站点设置 → 站点内容类型。点击创建。填写表单:名称(新文档)、描述。在父内容类型中,选择文档内容类型、文档。在现有组中,选择自定义内容类型并点击确定。

    创建新文档

  3. 在文档库中,转到站点内容 → 站点设置 → 站点内容类型。选择最近添加的新文档。转到高级设置 → 文档模板 → 上传新文档模板。点击选择文件按钮,上传所需的文档并点击确定。

    创建新文档

  4. 转到文档库 → 库设置。在内容类型部分中,选择从现有站点内容类型添加。在从中选择站点内容类型列表中,选择自定义内容类型。在可用站点内容类型字段中,选择新文档。点击添加 > 按钮,然后点击确定。

    创建新文档

  5. 在文档库中,刷新页面并按新建按钮。

    创建新文档

  6. 文档内容类型将自动添加为父类型。它必须被隐藏:转到文档库 → 库设置。在内容类型部分中,选择更改新按钮顺序和默认内容类型。

    创建新文档

    在可见列中,取消选中文档内容类型的复选框并点击确定。

    创建新文档

  7. 在文档库中,刷新页面并按新建按钮 — 只有新文档菜单项可用。

    创建新文档