为 SharePoint Server 配置 Office Online Server

总结: 了解如何将SharePoint服务器配置为Office Online Server (下一版本的Office Web 应用服务器) 。

目标用户:IT 专业人员

本文将介绍 部署 Office Online Server 中没有涵盖的内容。 在另一文章中,你设置了运行 Office Online Server 的本地服务器。 在此中,你将配置SharePoint服务器以使用Office Online Server。 首先,需要从 SharePoint Server 2016 运行一些 Microsoft PowerShell cmdlet,之后用户将能够在浏览器中打开SharePoint服务器文档库中的Office文件。

将 SharePoint Server 配置为使用 Office Online Server 前

在开始之前检查几个事项:

  • 这些说明也适用于 SharePoint Server 2013,但 SharePoint Server 2013 无法在 Office Online Server 中使用 Excel Online 外部数据连接和数据刷新功能。

  • 安装 SharePoint Server 2016。 有关指导,请参阅"安装SharePoint服务器"。

  • 确保所有 SharePoint Server 2016 Web 应用程序都使用基于声明的身份验证。Office Online 呈现和编辑将对使用经典模式身份验证的 SharePoint Server 2016 Web 应用程序不起作用。

  • 若要使用户能够在 Web 浏览器中编辑(而不仅仅是阅读)Office 文档,你需要一个编辑许可证。此外,还将需要启用对 Office Online Server 场的编辑。

  • 如果您使用系统帐户登录到 SharePoint Server 2016,则将无法测试 SharePoint Server 2016 和 Office Online Server 之间的连接。使用其他帐户登录,以测试连接。

  • 内存不足的情况可能会导致 Office Online 中的 Office 文档预览失败。

  • SharePoint服务器 2013 无法在 Office Online Server 中使用 Excel Online 外部数据连接和数据刷新功能。 仅在 SharePoint Server 2016 中可用。

  • Office Online Server使用 OAuth 令牌与SharePoint服务器通信。 这些令牌可能会被截获并重播,为攻击者提供与从SharePoint服务器向Office Online Server发出请求的用户相同的权限。 强烈建议将Office Online Server配置为仅使用 HTTPS (TLS) 。

配置 SharePoint Server 以使用 Office Online Server

选择下列章节之一,具体取决于您要使用 HTTP 还是 HTTPS。HTTP 通常仅建议用于测试环境。在生产环境中,最好使用更为安全的 HTTPS 协议。

在使用 HTTP 的测试环境中

对于此配置,请确保已按照 部署使用 HTTP 的单服务器 Office Online Server 场的步骤设置 Office Online Server。确保将 Office Online Server 场配置为使用内部 URL 和 HTTP。

步骤 1:创建 SharePoint 2016 和 Office Web Apps Server 之间的绑定

开始前,打开提升的 SharePoint 2016 命令行管理程序。(右键单击" SharePoint 2016 命令行管理程序",然后单击" 以管理员身份运行"。)

运行以下命令,其中 <WacServerName> 是您为内部 URL 设置的完全限定的域名 (FQDN)。这是 Office Online Server 流量的入口点。对于此测试环境,您必须指定 -AllowHTTP 参数以允许 SharePoint Server 2016 通过使用 HTTP 接收来自 Office Online Server 服务器场的发现信息。如果您未指定 -AllowHTTP,则 SharePoint Server 2016 将尝试使用 HTTPS 与 Office Online Server 服务器场进行通信,并且此命令将失败。


New-SPWOPIBinding -ServerName <WacServerName> -AllowHTTP

运行此命令后,您应看到 Microsoft PowerShell 命令提示符处显示了一个绑定列表。

步骤 2:查看针对 SharePoint 绑定的 WOPI 区域

Office Online Server 使用区域来确定其与主机(此示例中为 SharePoint Server 2016)进行通信时将使用的 URL(内部或外部)和协议(HTTP 或 HTTPS)。默认情况下,SharePoint Server 2016 使用 internal-https 区域。通过运行以下命令来确认这是当前区域:

Get-SPWOPIZone

此命令显示的 WOPI 区域应该是 internal-http。如果显示正确,请跳至步骤 4,否则请参阅下一步。

步骤 3:将 WOPI 区域更改为 internal-http

如果通过执行步骤 3 获得的结果为 internal-https,则运行以下命令可将区域更改为 internal-http。您需要进行此更改,因为 SharePoint Server 2016 的区域必须匹配 Office Online Server 服务器场的区域。

Set-SPWOPIZone -zone "internal-http"

再次运行 Get-SPWOPIZone ,确认新的区域为 internal-http

步骤 4:将 SharePoint 2016 中的 AllowOAuthOverHttp 设置更改为 True

若要在测试环境中通过 HTTP 将 SharePoint Server 2016 与 Office Online 结合使用,您需要将 AllowOAuthOverHttp 设置为"True"。否则,Office Online 将不起作用。可通过运行以下示例来检查当前状态:

(Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp

如果此命令返回 False,则运行下列命令可将其设置为 True

$config = (Get-SPSecurityTokenServiceConfig)
$config.AllowOAuthOverHttp = $true
$config.Update()

再次运行以下命令来验证 AllowOAuthOverHttp 设置现在是否设置为 True

(Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp

步骤 5:启用 Excel SOAP API

通过 Excel Online 计划数据刷新和 Excel Web 部件呈现需要 Excel SOAP API。若要启用 Excel SOAP API,需要将 WopiLegacySoapSupport 属性添加到 PowerShell 使用的 SharePoint Server 场属性。 输入的参数是 ExcelServiceInternal.asmx 的 URL。此 URL 可以通过负载平衡为多 OOS 服务器寻址。 只需将 <string> 替换为 Office Online Server 路径。

若要启用 Excel SOAP API,请运行以下 PowerShell,其中 <URL> 是 Office Online Server 场的 URL。(例如,http://OfficeOnlineServer.contoso.com.)。)


$Farm = Get-SPFarm
$Farm.Properties.Add("WopiLegacySoapSupport", "<URL>/x/_vti_bin/ExcelServiceInternal.asmx");
$Farm.Update();

步骤 6:验证 Office Web Apps 是否正常运行

在 SharePoint Server 2016 中,确保您不是作为系统帐户登录的,否则您将无法使用 Office Online 编辑或查看文档。转到包含 Office 文档的 SharePoint Server 2016 文档库并查看 Word、PowerPoint、Excel 或 OneNote 文件。文档应该在使用 Office Online 显示文件的浏览器中打开。

在使用 HTTPS 的生产环境中

在开始下列过程之前,请确保已通过执行 部署使用 HTTPS 的单服务器 Office Online Server 场部署使用 HTTPS 的多服务器负载平衡 Office Online Server 场中的步骤来设置 Office Online Server。

步骤 1:创建 SharePoint 2016 和 Office Online Server 之间的绑定

开始前,打开提升的 SharePoint 2016 命令行管理程序。(右键单击" SharePoint 2016 命令行管理程序",然后单击" 以管理员身份运行"。)

运行以下命令,其中 <WacServerName> 是您为内部 URL 设置的完全限定域名 (FQDN)。这是 Office Online Server 流量的入口点。


New-SPWOPIBinding -ServerName <WacServerName> 

步骤 2:查看 SharePoint 2016 的 WOPI 区域

Office Online Server 使用区域来确定其与主机(此示例中为 SharePoint Server 2016)进行通信时将使用的 URL(内部或外部)和协议(HTTP 或 HTTPS)。默认情况下,SharePoint Server 2016 使用 internal-https 区域。通过运行以下命令来确认这是当前区域。

Get-SPWOPIZone

请记下显示的 WOPI 区域。

步骤 3:如有必要更改 WOPI 区域

根据您的环境,您可能需要更改 WOPI 区域。如果您有一个既为内部又为外部的 SharePoint 场,则指定外部。如果您有一个仅内部的 SharePoint 场,则指定内部。

如果通过执行步骤 2 获得的结果显示 internal-https 且 SharePoint 场仅是内部的,则可以跳过此步骤。如果具有既为内部又为外部的 SharePoint 场,则需要运行以下命令来将区域更改为 external-https

Set-SPWOPIZone -zone "external-https"

步骤 4:启用 Excel SOAP API

通过 Excel Online 计划数据刷新和 Excel Web 部件呈现需要 Excel SOAP API。若要启用 Excel SOAP API,需要将 WopiLegacySoapSupport 属性添加到 PowerShell 使用的 SharePoint Server 场属性。 输入的参数是 ExcelServiceInternal.asmx 的 URL。此 URL 可以通过负载平衡为多 OOS 服务器寻址。 只需将 <string> 替换为 Office Online Server 路径。

若要启用 Excel SOAP API,请运行以下 PowerShell,其中 <URL> 是 Office Online Server 场的 URL。(例如,https://OfficeOnlineServer.contoso.com.)。)


$Farm = Get-SPFarm
$Farm.Properties.Add("WopiLegacySoapSupport", "<URL>/x/_vti_bin/ExcelServiceInternal.asmx");
$Farm.Update();

步骤 5:验证 Office Web Apps 是否正常运行

在 SharePoint Server 2016 中,确保您不是作为系统帐户登录的,否则您将无法使用 Office Online 编辑或查看文档。转到包含 Office 文档的 SharePoint Server 2016 文档库并查看 Word、PowerPoint、Excel 或 OneNote 文件。文档应该在使用 Office Online 显示文件的浏览器中打开。

断开 SharePoint Server 2016 与 Office Online Server 的连接

如果出于任何原因需要断开 SharePoint Server 2016 与 Office Online Server 的连接,请使用以下命令示例。


Remove-SPWOPIBinding -All:$true