Collabora Online CODEでファイルのエクスポートオプションを制限する方法

Collabora Online CODE でファイルのエクスポートを制限するには、WOPI ホストが応答DisableExport: trueでCheckFileInfo対象となるファイルとユーザーを返すようにします。HideExportOption: trueまた、「ダウンロード」コマンドがエディタのメニューから削除されるようにします。最初のプロパティはバックエンドで Collabora のエクスポート機能を無効にし、2 番目のプロパティは表示を制御します。表示フラグだけを設定してもアクセス制御にはなりません。

CODE はドキュメントエディタです。標準的な統合では、Nextcloud、ownCloud、またはカスタムアプリケーションなどの別の WOPI ホストが元のファイルを保存し、Collabora にファイルメタデータと権限を提供します。そのため、エクスポート権限は通常、Collabora コンテナのユニバーサルスイッチとしてではなく、ホスト統合で構成されますcoolwsd.xml。

シーケンス図は、Collabora OnlineがWOPIホストからCheckFileInfoを要求し、エクスポート権限フィールドを受信する様子を示しています。
Collabora OnlineはWOPIホストにファイル情報を要求します。ホストからの応答には、そのドキュメントセッションに対するエクスポート制限が含まれる場合があります。

アクションに一致するコントロールを選択してください

WOPIの所有物または管理その機能いつ使うべきか
HideExportOptionファイルメニューの「ダウンロード形式」を非表示にします。バックエンドでの強制処理を補完するものとして、ユーザーが利用できないコマンドを目にしないようにする。
DisableExportCollaboraのエクスポート機能を無効にし、暗黙的にHideExportOption。開いているドキュメントからのエクスポートを、特定のファイルまたはセッションに対してブロックする必要がある場合。
UserCanNotWriteRelativeユーザーがWOPI経由で相対パスまたは「名前を付けて保存」でコピーを保存できないことをホストに通知します。ホストはこの要求を拒否する必要があります。「名前を付けて保存」時やエディターを通してコピーを作成する際にも、同様の操作は防止されなければなりません。
DisablePrintCollaboraのバックエンドでの印刷を無効にし、印刷オプションが非表示になっていることを示します。印刷も制限されている場合に限ります。これは輸出とは別個のものです。

最初の2つのフィールドは、Collaboraの「ダウンロード」/「エクスポート」機能をブロックするという限定的なタスクに使用します。ポリシーでこれらの個別の操作も対象としている場合にのみ、他のコントロールを追加してください。メニュー項目が表示されないだけでは、ダウンロードがブロックされているとは証明されません。

制限を適用する場所を決定する

まず、ファイルを保存し、Collaboraで開くアプリケーションを特定します。WOPIの用語では、そのアプリケーションはホストと呼ばれます。CollaboraはホストのCheckFileInfoエンドポイントを呼び出し、ファイル情報と機能を取得します。ホストは、誰がドキュメントを開いたか、共有、アカウント、またはファイルポリシーによってダウンロードが許可されているかどうかを把握しています。

  • Nextcloudまたはその他の統合ファイルプラットフォーム:インストールされているバージョンに「ダウンロードを隠す」などのポリシーがある場合は、サポートされている共有設定またはセキュアビュー設定を使用してください。統合機能により、そのポリシーがWOPI権限に変換されます。どのエクスポート、印刷、コピー、または直接ダウンロードのパスがブロックされているかを推測する前に、実際のホスト応答またはプラットフォームの最新のドキュメントを確認してください。
  • 独自のWOPIホストの場合: JSONレスポンスを生成するコードを更新してくださいCheckFileInfo。認証済みユーザーの権限とファイルの共有ポリシーに基づいて制限を計算します。
  • CODEコンテナ管理者がホストを制御できない場合は、ホスト管理者または統合開発者に強制適用を依頼してください。CODEコンテナのみを編集すると、一部のオプション形式がインターフェースから非表示になる場合がありますが、ファイルごとのWOPIアクセス許可ポリシーは提供されません。

Collaboraの現在のソース設定では、extra_export_formatsこれらはインターフェースレベルのオプションとして記述されています。そこでこれらのオプション形式を無効にしても、表示が非表示になるだけです。この設定をサーバー側のエクスポート強制として扱わないでください。これは形式メニューの表示を目的としたものであり、ホスト権限の代替として使用されるものではありません。

カスタムWOPIホストでエクスポート権限を設定する

1. CheckFileInfo レスポンスハンドラーを見つける

CollaboraのWOPIリクエストに応答するルートを特定します。アクセストークンの認証方法と、そのトークンを現在のユーザーとファイルにマッピングする方法を確認してください。ホストが独自の認証ルールに基づいて検証しない限り、GET /wopi/files/{id}ブラウザが提供するフラグ(例:)を信頼しないでください。?disableExport=true

2. ホストのポリシーから決定を導き出す

サーバー側のアクセス制御データを使用して、このユーザーがこのファイルをエクスポートできるかどうかを判断してください。ファイル所有者、内部編集者、および公開リンク閲覧者には、それぞれ異なる権限が付与されている可能性があります。制限が単一の共有フォルダに対するものである場合は、すべてのユーザーに誤って影響を与えるグローバル環境変数ではなく、その共有フォルダのポリシーに基づいて判断してください。

擬似コードでは、ドキュメントアクセス ポリシーを DisableExport、HideExportOption、および UserCanNotWriteRelative にマッピングします。
擬似コード例:WOPIフラグは、1人のユーザーの選択をグローバルに設定するのではなく、ファイルとユーザーの実際のアクセス ポリシーから導き出す。

3. ブール型のWOPIフィールドを返す

JSONレスポンスに2つのブール型フィールドを追加します。これは既存の完全なレスポンスにマージするための断片でありCheckFileInfo、必須のファイルおよびユーザープロパティの代替ではありません。

JSONエディタでは、HideExportOption、DisableExport、およびUserCanNotWriteRelativeがtrueに設定されていることが示されています。
CheckFileInfo のアクセス許可フィールドの例。ホストが相対保存要求を拒否する場合にのみ、[名前を付けて保存] プロパティを設定してください。
{
  "BaseFileName": "budget.xlsx",
  "Size": 48123,
  "UserId": "viewer-42",
  "OwnerId": "team-7",
  "UserCanWrite": false,
  "HideExportOption": true,
  "DisableExport": true
}

統合機能で既に提供されている通常の必須フィールドと機能フラグはそのまま使用してください。JSONブール値とを使用しtrue、やfalseなどの文字列は使用しないでください。エクスポートが許可されている場合は、統合機能とCollaboraのバージョンでサポートされている動作に応じて、falseを返すか、オプションのプロパティを省略してください。"true""1"

4. ポリシーで要求されている場合は、「名前を付けて保存」を個別にブロックする

ローカル形式へのエクスポートと、コピーをWOPIホストに保存する操作は異なります。ユーザーがエディタ経由で「名前を付けて保存」コピーを作成してはならない場合は、戻り値を返してUserCanNotWriteRelative: true、ホストが対応する相対書き込み要求を拒否するようにします。すべてのコピーまたは保存パスがブロックされると想定しないでくださいDisableExport。同様に、DisablePrint: true印刷がポリシーの対象となる場合にのみ含めます。

Collaboraスタイルのファイルメニューには「ダウンロード」が省略されているが、近くのWOPI権限カードにはUserCanNotWriteRelativeが有効になっていると表示されている。
メニューのモックアップには「ダウンロード」が省略されています。「名前を付けて保存」は別の操作であり、相対保存が許可されていない場合はWOPIホストが拒否する必要があります。

統合プラットフォームで同等の設定を適用する

Nextcloud がファイルと共有を管理する場合、最も影響の少ない方法は、共有タイプとバージョンで利用可能な場合、Nextcloud がサポートするダウンロード非表示または安全な表示の権限を使用することです。現在の Nextcloud Richdocuments ソースでは、ホスト側のダウンロード非表示ポリシーが Collabora のフィールドにマッピングされDisableExport、HideExportOption印刷とコピーの制限も設定されています。管理者に公開される正確な制御は、Nextcloud のリリース、エディション、共有タイプによって異なる場合があるため、カスタム WOPI パッチをアプリケーション ファイルにコピーするのではなく、インストール済みの製品で動作を確認してください。

別の WOPI ホストを運用している場合は、そのホストの CheckFileInfo レスポンスにフィールドを実装してください。Collabora が生成したコンテナ構成を変更して、ドキュメント化されていないキーを追加することは避けてください。ファイルごとのアクセス許可は WOPI レスポンスで通知されます。ホストのコードを変更した後は、そのアプリケーションの通常のリリースプロセスを使用してデプロイしてください。Collabora を再起動しても、ホストが生成するアクセス許可の決定は変更されません。ドキュメントを閉じて再度開くと、新しい CheckFileInfo レスポンスを取得できます。

制限が正しく機能することを確認してください。

  1. 制限されているはずのアカウントを使用してテスト文書を開きます。
  2. アプリケーションログまたは安全な開発トレースで、WOPIホストのCheckFileInfo応答を調べます。両方のフィールドがこのセッションでJSONブール値としてtrueに設定されていることを確認してください。
  3. Collaboraでは、「ダウンロード」オプションが存在しないことを確認し、該当するエクスポート操作をテストしてください。初期検証時には、実際の機密ファイルを使用しないでください。
  4. 「名前を付けて保存」もブロックする必要がある場合は、ホスト側の相対書き込み要求が拒否されていることを確認してください。ホストが操作を拒否しても、メニュー項目は表示されたままになる場合があります。
  5. エクスポート権限を付与した別のドキュメントを開きます。変更によって、意図せずすべてのユーザーまたはファイルに対してエクスポートが無効になっていないことを確認してください。
  6. ストレージプラットフォームからの直接ダウンロードを別途テストしてください。Collaboraのエクスポートフラグは、Nextcloud、ownCloud、WebDAV、またはその他のホストエンドポイントから元のファイルをダウンロードするユーザーの権限を自動的に取り消すものではありません。

コマンドが表示されたままの場合は、応答がテストしたファイルとユーザーに対するものであることを確認し、ドキュメントを再度開いて新しいセッションを作成し、ホストが実際に送信していることを確認しますHideExportOption。ボタンが消えても別の方法でエクスポートが機能する場合は、がDisableExport真であり、アクションがストレージホストが提供するダウンロードや統合固有の postMessage ハンドラーではなく、Collabora のエクスポートであることを確認します。

セキュリティ制限と実践的な推奨事項

これらの設定は、Collaboraでサポートされているエクスポートおよび保存操作を制御するものであり、ドキュメントを閲覧できるユーザーがスクリーンショットを撮ったり、画面を撮影したり、アプリケーションが表示を許可している情報を手動でコピーしたりすることを阻止するものではありません。Collaboraはドキュメントの内容を表示するために、その内容を受信する必要があります。より強力なデータ制御を行うには、エディターの制限をファイルホストのダウンロード認証、アクセストークンのスコープ、共有ポリシー、監査ログ、および組織が承認した透かしやデータ損失防止制御と組み合わせてください。結果として、サポートされているエクスポートパスが制限されるという説明をしてください。表示されているコンテンツのコピーが不可能になるという意味ではありません。

ほとんどのCODEインストールでは、ホストが生成するWOPI CheckFileInfo応答で、該当するユーザーとドキュメントにスコープを絞って、DisableExportとを使用しますHideExportOption。ホストで直接ダウンロードと名前を付けて保存を強制し、デプロイ後に制限付きセッションと許可されたセッションの両方を確認します。

参考文献

コメントを残す

ONLYOFFICEドキュメントサーバーにカスタムフォントを追加する方法

ONLYOFFICEドキュメントサーバーにカスタムフォントを追加する方法

ONLYOFFICE Document Server for LinuxまたはDockerにカスタムフォントをインストールし、フォントリストを再生成して、エディタやエクスポートされたファイルで正しく表示されることを確認します。

Dockerコンテナ内でLibreOfficeをヘッドレスモードで実行する方法

Dockerコンテナ内でLibreOfficeをヘッドレスモードで実行する方法

再現可能なイメージ、安全なマウント、フォント、プロファイル、および検証機能を備え、DOCX、XLSX、PPTX、およびPDFへの変換を行うために、LibreOfficeをDocker上でヘッドレス実行します。

Windows 11とLinuxでLibreOfficeの起動が遅い場合の対処法

Windows 11とLinuxでLibreOfficeの起動が遅い場合の対処法

トラブルシューティングモード、拡張機能のチェック、プロファイルの修復、およびインストール固有のアップデートを使用して、Windows 11およびLinuxでのLibreOfficeの起動が遅い問題を解決します。

ONLYOFFICEデスクトップエディターでプラグイン開発を有効にする方法

ONLYOFFICEデスクトップエディターでプラグイン開発を有効にする方法

ONLYOFFICEデスクトップエディターでプラグイン開発を設定するには、ローカルの.pluginアーカイブをインストールし、ソースフォルダーをリンクし、開発者ツールを有効にして、変更をテストします。

LibreOffice CalcマクロでPythonスクリプトを実行する方法

LibreOffice CalcマクロでPythonスクリプトを実行する方法

CalcでPythonマクロを直接使用するタイミングや、LibreOffice BasicからPython関数を呼び出す方法を、UNOとScriptForgeの実践的な例を通して学びましょう。

Collabora Online CODE で「Unauthorized WOPI Host」エラーを修正する

Collabora Online CODE で「Unauthorized WOPI Host」エラーを修正する

Collabora Online CODEの「Unauthorized WOPI Host」エラーを修正するには、WOPIホスト名を一致させ、Dockerホストグループを設定し、Nextcloudの個別のIP許可リストを確認し、接続性を検証してください。

ONLYOFFICE Nextcloud連携における「トークンが無効です」エラーを修正する

ONLYOFFICE Nextcloud連携における「トークンが無効です」エラーを修正する

JWTシークレット、認証ヘッダー、Docker設定、プロキシの動作、コネクタの状態を確認することで、NextcloudにおけるONLYOFFICEの「トークンが無効です」エラーを修正します。

NextcloudでONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正する

NextcloudでONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正する

コールバック、内部URL、JWT、TLS、プロキシルーティング、ログ、ストレージを確認することで、NextcloudにおけるONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正します。

Collabora Onlineの「ソケット接続が予期せず閉じられました」エラーを修正する:WebSocketとプロキシのチェック

Collabora Onlineの「ソケット接続が予期せず閉じられました」エラーを修正する:WebSocketとプロキシのチェック

Collabora Onlineのソケット接続エラーを修正するには、26.04 WebSocketの変更点、プロキシルート、アップグレードヘッダー、タイムアウト、TLS、およびログを確認してください。

Collabora Onlineで複数の言語のスペルチェックを有効にする方法

Collabora Onlineで複数の言語のスペルチェックを有効にする方法

Collabora Onlineで多言語スペルチェックを有効にするには、サーバー辞書を追加し、言語コードを許可し、テキストに言語を割り当て、複数の言語を含む文書をテストします。