SharePoint Server 用 Office Online Server の構成

概要:Office Online Server (次のバージョンの Office Web Apps Server) を使用するように SharePoint Server を構成する方法について説明します。

対象ユーザー: IT 担当者

この記事では、Deploy Office Online Serverが中断された場所について説明します。 該当記事では、社内で Office Online Server を実行するサーバーを設定しました。 この 1 つでは、Office Online Serverを使用するように SharePoint Server を構成します。 まず、SharePoint Server 2016 からいくつかの Microsoft PowerShell コマンドレットを実行する必要があります。その後、ユーザーはブラウザーで SharePoint Server ドキュメント ライブラリから Office ファイルを開くことができます。

Office Online Server を使用するために SharePoint Server を構成する前に

いくつかの点を開始する前に確認します。

  • これらの手順は SharePoint Server 2013 にも適用されますが、SharePoint Server 2013 では、Excel Online の外部データ接続とデータ更新機能をOffice Online Serverで使用することはできません。

  • SharePoint Server 2016 をインストールします。 ガイダンスについては、「 SharePoint Server のインストール 」を参照してください。

  • すべての SharePoint Server 2016 Web アプリケーションでクレーム ベース認証を使用していることを確認します。 クラシック モード認証を使用する SharePoint Server 2016 Web アプリケーションでは、Office Online の表示と編集が機能しません。

  • ユーザーが Web ブラウザーで Office ドキュメントを編集 (読み取りだけでなく) できるようにするには、編集ライセンスを追加する必要があります。 また、Office Online Server ファームで編集を有効にする必要があります。

  • システム アカウントを使用して SharePoint Server 2016 にログオンすると、SharePoint Server 2016 と Office Online Server 間の接続をテストできなくなります。 接続をテストするには、別のアカウントでログオンします。

  • メモリ不足の状態では、Office Online.で Office ドキュメントのプレビュー表示が失敗することがあります。

  • SharePoint Server 2013 では、Excel Online 外部データ接続とデータ更新機能をOffice Online Serverで使用できません。 SharePoint Server 2016 のみで利用可能です。

  • Office Online Serverでは、OAuth トークンを使用して SharePoint Server と通信します。 これらのトークンは傍受および再生される可能性があり、攻撃者は SharePoint Server から Office Online Server への要求を行うユーザーと同じ権限を持つことができます。 HTTPS (TLS) のみを使用するようにOffice Online Serverを構成することを強くお勧めします。

Office Online Server を使用するために SharePoint Server を構成する

HTTP または HTTPS を使用するかどうかに応じて、次のセクションのいずれかを選択します。 HTTP は、テスト環境に対してのみ推奨されます。 本番環境では、より安全な HTTPS プロトコルが好ましい選択です。

HTTP を使用するテスト環境

この構成では、「HTTP を使用する単一サーバー Office Online Server ファームをデプロイする」の手順に従って、Office Online Serverを設定していることを確認します。 内部 URL と HTTP を使用するようにOffice Online Server ファームを構成してください。

手順 1: SharePoint 2016 と Office Web Apps Server の間のバインドを作成する

開始するには、管理者特権の SharePoint 2016 管理シェルを開きます。 ( SharePoint 2016 管理シェルを右クリックし、[ 管理者として実行] をクリックします)。

次のコマンドを実行します。 <WacServerName> は、内部 URL に設定した URL の完全修飾ドメイン名 (FQDN) です。 これは、Office Online Server トラフィックのエントリ ポイントです。 このテスト環境では、-AllowHTTP パラメーターを指定して、SharePoint Server 2016 が HTTP を使用してOffice Online Server ファームから検出情報を受信できるようにする必要があります。 [許可HTTP] を指定しない場合、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 に変更する

テスト環境で Office Online を SharePoint Server 2016 と共に HTTP 経由で使用するには、AllowOAuthOverHttp を True に設定する必要があります。 この設定を行わないと Office Online は機能しません。 現在の状態を確認するには、次のコマンドを実行します。

(Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp

If this command returns False, run the following commands to set this to True.

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

次のコマンドをもう一度実行して、AllowOAuthOverHttp が [ True] に設定されたことを確認します。

(Get-SPSecurityTokenServiceConfig).AllowOAuthOverHttp

手順 5:Excel SOAP API を有効にします。

Excel Online での計画データ更新および Excel Web Part のレンダリングのため、Excel SOAP API が必要です。 Excel SOAP API を有効にするには、PowerShell で SharePoint Server ファームのプロパティに WopiLegacySoapSupport プロパティを追加する必要があります。 入力パラメーターは、ExcelServiceInternal.asmx への URL です。 この URL は、負荷分散により複数の OOS サーバーに対応できます。 文字列>を <Office Online Server パスに置き換えるだけです。

Excel SOAP API を有効にするには、URL が Office Online Server ファームの URL である<>次の PowerShell を実行します。 (たとえば、 http://OfficeOnlineServer.contoso.com.)


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

手順 6: Office Web Apps が動作することを確認する

Office Online を使用してドキュメントの編集したり表示することができないため、SharePoint Server 2016 ではシステム アカウントとしてログインしていないことを確認します。 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 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 Part のレンダリングのため、Excel SOAP API が必要です。 Excel SOAP API を有効にするには、PowerShell で SharePoint Server ファームのプロパティに WopiLegacySoapSupport プロパティを追加する必要があります。 入力パラメーターは、ExcelServiceInternal.asmx への URL です。 この URL は、負荷分散により複数の OOS サーバーに対応できます。 文字列>を <Office Online Server パスに置き換えるだけです。

Excel SOAP API を有効にするには、URL が Office Online Server ファームの URL である<>次の PowerShell を実行します。 (たとえば、 https://OfficeOnlineServer.contoso.com.)


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

手順 6: Office Web Apps が動作することを確認する

Office Online を使用してドキュメントの編集したり表示することができないため、SharePoint Server 2016 ではシステム アカウントとしてログインしていないことを確認します。 Office ドキュメントが含まれている SharePoint Server 2016 ドキュメント ライブラリへ移動し、Word、PowerPoint、Excel、または OneNote のファイルを表示します。 ブラウザーでドキュメントが開かれ、 Office Online を使用してファイルが表示されます。

Office Online Server から SharePoint Server 2016 を切断する

何らかの理由で Office Online Server から SharePoint Server 2016 の接続を切断する場合は、次のコマンドを使用します。


Remove-SPWOPIBinding -All:$true