設定 SharePoint Server 的 Office Online Server

總結:瞭解如何將 SharePoint Server 設定為使用下一版 Office Web Apps Server) Office Online Server (。

對象:IT 專業人員

本文會從 [部署 Office Online Server 離開的位置開始。 在該文中,您設定了執行 Office Online 伺服器 內部部署的伺服器。 在此範例中,您會將 SharePoint Server 設定為使用 Office Online Server。 首先,您必須從 SharePoint Server 2016 執行一些 Microsoft PowerShell Cmdlet,之後使用者就可以在瀏覽器中從 SharePoint Server 文檔庫開啟 Office 檔案。

設定 SharePoint Server 以使用 Office Online Server 之前

開始之前需要檢查幾件事:

  • 這些指示也適用於 SharePoint Server 2013,不過 SharePoint Server 2013 無法在 Office Online Server 中使用 Excel Online 外部數據連線和數據重新整理功能。

  • 安裝 SharePoint Server 2016。 如需指引,請參閱 安裝 SharePoint Server

  • 確定所有 SharePoint Server 2016 Web 應用程式皆使用宣告式驗證。 在使用傳統模式驗證的 SharePoint Server 2016 Web 應用程式上,Office Online 的轉譯和編輯無法運作。

  • 若要讓使用者能夠在網頁瀏覽器中編輯 (而不只是讀取) Office 文件,您需要編輯授權。 另外,您還需要在 Office Online 伺服器 伺服器陣列上啟用編輯。

  • 如果您使用系統帳戶登入 SharePoint Server 2016,將無法測試 SharePoint Server 2016 與 Office Online 伺服器 間的連線。 請使用不同的帳戶登入來測試連線。

  • 記憶體不足的情況會導致 Office 文件在 Office Online 中預覽失敗。

  • SharePoint Server 2013 無法在 Office Online Server 中使用 Excel Online 外部數據連線和數據重新整理功能。 只有 SharePoint Server 2016 能使用。

  • Office Online Server 使用 OAuth 令牌與 SharePoint Server 通訊。 這些令牌可能會遭到攔截並重新執行,為攻擊者提供與從 SharePoint Server 向 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 伺服器 伺服器陣列使用內部 URL 與 HTTP。

步驟 1:建立 SharePoint 2016 與 Office Web Apps Server 間的繫結

若要開始使用,請開啟提升許可權的 SharePoint 2016 管理命令介面。 (以滑鼠右鍵按兩下 [SharePoint 2016 管理命令介面],然後按兩下 [ 以系統管理員身分執行]。)

執行下列命令,其中 <WacServerName> 是您為內部 URL 設定之 URL 的完整網域名稱 (FQDN)。 這是 Office Online 伺服器 流量的進入點。 就此測試環境而言,您需要指定 -AllowHTTP 參數,以允許 SharePoint Server 2016 使用 HTTP 接收來自 Office Online 伺服器 伺服器陣列的探索資訊。 如果您未指定 -AllowHTTP,SharePoint Server 2016 將嘗試使用 HTTPS 來與 Office Online 伺服器 伺服器陣列通訊,而此命令將不會運作。


New-SPWOPIBinding -ServerName <WacServerName> -AllowHTTP

執行此命令後,您應該會看見 Microsoft PowerShell 命令提示字元中顯示繫結清單。

步驟 2:檢視 SharePoint 繫結的 WOPI 區域

Office Online 伺服器 使用區域來決定當與主機 (在此例中為 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 伺服器 伺服器陣列的區域。

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 SOAP API,而呈現 Excel 網頁組件也需要。 若要啟用 Excel SOAP API,您必須使用 PowerShell在 SharePoint Server 伺服器陣列屬性中新增 WopiLegacySoapSupport 屬性。 輸入參數是 ExcelServiceInternal.asmx 的 URL。 這個 URL 可以透過負載平衡定址多個 OOS 伺服器。 只要將<字串>取代為您的 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 設定之 URL 的完整網域名稱 (FQDN)。 這是 Office Online 伺服器 流量的進入點。


New-SPWOPIBinding -ServerName <WacServerName> 

步驟 2:檢視 SharePoint 2016 的 WOPI 區域

Office Online 伺服器 使用區域來決定當與主機 (在此例中為 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 SOAP API,而呈現 Excel 網頁組件也需要。 若要啟用 Excel SOAP API,您必須使用 PowerShell在 SharePoint Server 伺服器陣列屬性中新增 WopiLegacySoapSupport 屬性。 輸入參數是 ExcelServiceInternal.asmx 的 URL。 這個 URL 可以透過負載平衡定址多個 OOS 伺服器。 只要將<字串>取代為您的 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 伺服器 間的連線,請使用下列命令範例。


Remove-SPWOPIBinding -All:$true