SharePoint
ONLYOFFICEとSharePointの統合について
SharePointのコラボレーションプラットフォーム内でドキュメントを編集するには、公式のONLYOFFICEコネクタまたはWOPIを使用して、ONLYOFFICE Docsをドキュメントライブラリに統合することができます。詳細については、ONLYOFFICEからSharePointコネクタのGitHubページをご覧ください。このコネクタはAGPL-3.0ライセンスの下で配布されています。
SharePoint用ONLYOFFICEコネクタの動作について詳しく知りたい方は、APIドキュメントページをご覧ください。
接続方法
ONLYOFFICE Docsは、公式コネクタまたはWOPIの2つの方法でSharePointに接続できます。どちらの方法でもSharePoint内で直接ドキュメントを編集できますが、サポートされる機能と形式が異なります。
インストール方法は1つだけ選択することを強くお勧めします。両方の方法でインストールを行うと、共同編集機能やドキュメントの保存が期待どおりに動作しない場合があります。
機能の比較
| 機能 | 公式コネクタ | 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 Docsのバージョンと選択した接続方法に依存します。
バージョン3.1.0の新機能
変更された機能
- 新しいサポート形式を追加
完全な変更ログはこちらで確認できます。
公式コネクタの使用
要件
- ONLYOFFICE Document Server v7.1(サーバーまたはクラウドバージョン)以降。SharePointおよびエンドクライアントから解決可能で接続可能なインスタンスである必要があり、SharePointに直接POSTできる必要があります。ONLYOFFICE Docsのインストールについて詳しく知りたい方は、公式のドキュメントページをご覧ください。
- SharePoint 2019
- SharePoint用ONLYOFFICE Connector 3.1.0
インストールと設定
ONLYOFFICE SharePoint統合ソリューションは、GNU AGPL v.3ライセンスの下でGitHubページで入手可能な公式のONLYOFFICEコネクタです。
その動作やソリューションのコンパイル方法について詳しく知りたい方は、APIドキュメントをご覧ください。
-
スタートをクリックし、すべてのプログラムをポイントし、管理ツールをポイントしてからサービスをクリックし、SharePoint管理サービスが開始されていることを確認します。
-
スタートをクリックし、SharePoint管理シェルを開き、.wspファイルを含むディレクトリに移動します。
-
Install.ps1スクリプトを実行します:
PS> .\Install.ps1 -
SharePointサイトのアドレスを入力します:
https://<yoursharepointsite>ステップ 3 と 4 の代わりに、次のコマンドを入力することもできます:
Add-SPSolution -LiteralPath<solutionpath>/onlyoffice.wspSharePoint中央管理ホームページで、システム設定 → ファーム管理 → ファームソリューションの管理をクリックします。ソリューション管理ページで、onlyoffice.wspをクリックし、ソリューションの展開をクリックします。
-
SharePoint中央管理ホームページで、アプリケーション管理の下にあるWebアプリケーションの管理をクリックします。
-
サイトを選択し、認証プロバイダーアイコンをクリックします。
-
認証プロバイダーポップアップウィンドウで、デフォルトゾーンをクリックします。
-
認証の編集で、匿名アクセスを有効にするをチェックし、保存をクリックします。
-
Webアプリケーション管理に戻り、匿名ポリシーアイコンをクリックします。
-
匿名アクセス制限で、ゾーンを選択し、権限を「なし – いいえ」ポリシーに設定し、保存をクリックします。
-
SharePointで、管理設定ページ
/_layouts/15/Onlyoffice/Settings.aspxを開き、次のアドレスを入力します:https://<documentserver>/documentserverはONLYOFFICE Docsがインストールされているサーバーの名前です。このアドレスはユーザーブラウザとSharePointサーバーからアクセス可能である必要があります。SharePointサーバーのアドレスもONLYOFFICE Docsからアクセス可能である必要があります。
SharePointにサブサイトが設定されている場合、各サブサイトの設定でONLYOFFICE Docsの接続を追加で設定する必要があります。各サブサイトの設定に移動し、適切なフィールドにDocsアドレスを入力してください。
ONLYOFFICE Docs v7.2以降、JWTはデフォルトで有効化され、シークレットキーは自動的に生成されます。SharePoint側でも有効化する必要があります:ONLYOFFICE Docsの設定ファイルでシークレットキーを見つけ、SharePoint管理設定で同じシークレットキーを指定してください。詳細は下記のJWTの有効化セクションを参照してください。
JWT保護が有効化されている場合、カスタムヘッダー名を指定する必要があります。これはSharePointセキュリティポリシーが外部の 'Authorization' ヘッダーをブロックするためです。このヘッダーはONLYOFFICE Docs署名設定でも指定する必要があります(詳細はこちらをご覧ください)。
ソリューションのコンパイル
ONLYOFFICE SharePoint統合ソリューションをコンパイルする方法は2つあります:
-
MS Visual Studioを使用する場合:
- SharePointサーバーに入り、このプロジェクトをVisual Studioで開きます。
- ソリューションエクスプローラーで、プロジェクトのショートカットメニューを開き、発行を選択します。
- 発行ダイアログボックスで、ファイルシステムに発行オプションボタンを選択します。
- 発行ボタンをクリックします。発行プロセスが終了すると、ソリューション*.wsp*ファイルが作成されます。
- 生成されたファイルをInstall.ps1ファイルがあるフォルダ(デフォルトではBuildAndInstallフォルダ)にコピーします。
-
build.batファイルを使用する場合:
- BuildAndInstallフォルダに移動します。
- build.batファイルを実行します。
- 生成されたソリューション*.wsp*ファイルが作成され、BuildAndInstallフォルダに配置されます。
動作の仕組み
ONLYOFFICEの統合は、こちらで文書化されたAPIに従います。
-
ユーザーはSharePoint内のドキュメントに移動し、コンテキストメニューまたはリボンでONLYOFFICEで編集アクションを選択します。
-
SharePointはエディターページにリクエストを行います(形式のURL:
/_layouts/15/Onlyoffice/editorPage.aspx?SPListItemId={ItemId}&SPListURLDir={ListUrlDir}&action=track)。 -
SharePointは次のプロパティを持つJSONオブジェクトを準備します:
- url - ONLYOFFICE Docsがドキュメントをダウンロードするために使用するURL;
- callbackUrl - ONLYOFFICE Docsがドキュメント編集のステータスを通知するURL;
- DocumentSeverHost - クライアントがONLYOFFICE Document Serverに応答するために必要なURL(設定ページで設定可能);
- Key - SharePointからのファイル識別子;
- FileName - ドキュメントのタイトル(名前);
- CurrentUserId - ユーザー識別子;
- CurrentUserName - ユーザー名。
-
SharePointはこれらの値をすべて埋め込んでページを構築し、クライアントブラウザがエディターを読み込めるようにします。
-
クライアントブラウザはONLYOFFICE DocsのJavaScriptライブラリにリクエストを行い、上記のプロパティを持つDocEditor設定をONLYOFFICE Docsに送信します。
-
その後、ONLYOFFICE DocsはSharePointからドキュメントをダウンロードし、ユーザーが編集を開始します。
-
すべてのユーザーとクライアントブラウザが編集を終了すると、編集ウィンドウを閉じます。
-
10秒間操作がないと、ONLYOFFICE Docsは
callbackUrlにPOSTを送信し、クライアントがドキュメントの編集を終了して閉じたことをSharePoint ONLYOFFICEソリューションに通知します。 -
SharePointはドキュメントの新しいバージョンをダウンロードし、古いバージョンを置き換えます。
最も一般的な問題とその解決方法について詳しく知りたい方は、トラブルシューティングガイドをご覧ください。
JWTの有効化
ドキュメントを不正アクセスから保護するために、ONLYOFFICEエディターはJSON Web Token(JWT)を使用します。トークンはDocument Editorが初期化される際と、内部ONLYOFFICE Docsサービス間のコマンド交換時に設定に追加されます。シークレットキーはJSON Webトークンを署名し、ONLYOFFICE Docsへのリクエスト時にトークンを検証するために使用されます。
ONLYOFFICE Docs v7.2以降、JWTはデフォルトで有効化され、シークレットキーは自動的に生成されます。ONLYOFFICE Docs設定ファイルでシークレットキーを見つけ、コネクタ設定で同じシークレットキーを指定してください。
ステップ1: ONLYOFFICE Docs設定ファイルでシークレットキーを見つける
-
任意のテキストエディターでlocal.jsonファイルを開きます:
-
Linuxの場合:
/etc/onlyoffice/documentserver/local.json -
Windowsの場合:
%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json -
Dockerの場合:
docker exec -it <containerID> bashコマンドを使用してONLYOFFICE Docsコンテナに入り、/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"}}}}} -
-
true値は3つのセクションで指定されています。これはトークン検証が有効であることを意味します:services.CoAuthoring.token.enable.browserservices.CoAuthoring.token.enable.request.inboxservices.CoAuthoring.token.enable.request.outbox
-
自動生成されたシークレットキーは3つのセクションで指定されています。デフォルト値を独自のキーに置き換えることができます。キーは3つのセクションで同じである必要があります:
services.CoAuthoring.secret.inbox.stringservices.CoAuthoring.secret.outbox.stringservices.CoAuthoring.secret.session.string
-
変更を加えた場合は、それを保存し、サービスを再起動します:
supervisorctl restart all
ステップ2: コネクタ設定で同じシークレットキーを指定する
コネクタ設定で、シークレットキーフィールドに同じシークレットを指定し、設定を保存します。
WOPIの使用
ONLYOFFICE DocsをSharePointとWOPIを介して接続することもできます。WOPIはRESTベースのプロトコルで、クライアントがサーバーにデータを接続する際に一連のRESTエンドポイントにHTTPリクエストを発行します。
制限事項
WOPIを介してONLYOFFICE Docsを接続する場合、WOPIのアーキテクチャによりいくつかの機能が欠けています:
- バージョン履歴機能はサポートされていません。
- ストレージからの画像挿入はサポートされていません。
- ドキュメントの比較はサポートされていません。
- 次の形式のサポートがありません:DOC、XLS、PPT。
要件
- WOPIが有効なONLYOFFICE Document Server v7.1以降。WOPIを有効にするには、こちらの指示に従ってください。
- SharePoint 2019
WOPIを介した接続
-
SharePointサーバーを開きます。SharePoint管理シェルコンソールを実行し、必要なWOPIゾーンを設定します:
Set-SPWOPIZone -Zone "external-http"documentserverはデフォルトで
external-httpパラメータを使用します。 -
現在のファームで他のドキュメントタイプにWOPIバインディングがあるかどうかを確認します:
Get-SPWOPIBindingこれらのバインディングがある場合は、削除します:
Remove-SPWOPIBinding -All:$true -
ファイルタイプごとにデフォルトアクションのための新しいバインディングを作成します。
すべてのファイルタイプに対して一度にバインディングを作成するには:
New-SPWOPIBinding -ServerName ip_or_domain.com:port特定のファイルタイプのみにバインディングを作成するには:
New-SPWOPIBinding -ServerName ip_or_domain.com:port -Extension DOCXSSLが使用されていない場合は、コマンドの最後に
-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、その他のファイルを追加できます。
-
コンテンツタイプの管理を許可する設定を有効にします:ドキュメント → ライブラリ設定 → 詳細設定に移動します。コンテンツタイプの管理を許可するセクションではいを選択し、OKをクリックします。

-
ドキュメントライブラリで、サイトコンテンツ → サイト設定 → サイトコンテンツタイプに移動します。作成をクリックします。フォームに記入します:名前(新しいドキュメント)、説明。親コンテンツタイプでドキュメントコンテンツタイプ、ドキュメントを選択します。既存のグループでカスタムコンテンツタイプを選択し、OKをクリックします。

-
ドキュメントライブラリで、サイトコンテンツ → サイト設定 → サイトコンテンツタイプに移動します。最近追加された新しいドキュメントを選択します。詳細設定 → ドキュメントテンプレート → 新しいドキュメントテンプレートのアップロードに移動します。ファイルを選択ボタンをクリックし、必要なドキュメントをアップロードしてOKをクリックします。

-
ドキュメントライブラリ → ライブラリ設定に移動します。コンテンツタイプセクションで、既存のサイトコンテンツタイプから追加を選択します。サイトコンテンツタイプの選択元リストで、カスタムコンテンツタイプを選択します。使用可能なサイトコンテンツタイプフィールドで、新しいドキュメントを選択します。追加 > ボタンをクリックし、OKをクリックします。

-
ドキュメントライブラリで、ページを更新し、新規ボタンを押します。

-
ドキュメントコンテンツタイプが親タイプとして自動的に追加されます。これを非表示にする必要があります:ドキュメントライブラリ → ライブラリ設定に移動します。コンテンツタイプセクションで、新規ボタンの順序と既定のコンテンツタイプの変更を選択します。

表示列で、ドキュメントコンテンツタイプのチェックボックスをオフにし、OKをクリックします。

-
ドキュメントライブラリで、ページを更新し、新規ボタンを押します — 新しいドキュメントメニュー項目のみが利用可能です。
