Collabora Onlineで「WOPI認証検証失敗」を修正する方法

障害を記録したシステムから始めましょう

「WOPI 証明検証失敗」とは、WOPI ホストが Collabora Online からの署名付きリクエストを検証できなかったことを意味します。一般的な Nextcloud Office の設定では、Nextcloud が WOPI ホスト、Collabora が WOPI クライアントです。Collabora が署名付きリクエストを送信し、ホストがそれを検証します。メッセージの文言は統合やリリースによって異なるため、まずどのコンポーネントがメッセージを発信し、どのリクエストが失敗したかを特定してください。

この証明はセキュリティチェックであり、一般的な接続テストではありません。リクエストをアクセストークン、完全なリクエストURL、タイムスタンプに紐付け、そのデータをCollaboraの秘密証明鍵で署名します。ホストは、Collaboraの検出XMLに公開されている公開証明鍵を使用して署名を検証します。WOPIプロトコル定義では、署名されるフィールドとヘッダーについて説明しています。

まず最初に、障害を一度再現し、発生時刻、ファイル操作、HTTPステータス、リクエストIDまたは相関IDを記録してください。次に、ストレージプラットフォームのログとCollaboraのcoolwsdログの両方で同じイベントがないか確認してください。チケットには、アクセストークン、証明ヘッダー、秘密鍵を記載しないでください。

迅速診断表

証拠調査対象になりそうなエリア次のアクション
Collaboraの証明鍵を再生成または交換した後に不具合が発生した。ストレージ側でキャッシュされた検出XMLまたはキーの不一致WOPIホスト上で検出を更新し、アクティブなCollaboraインスタンスの公開鍵が認識されていることを確認してください。
失敗は一部のリクエストでのみ発生するか、断続的に発生します異なる証明鍵を持つ複数の Collabora ノード、または一貫性のない検出キャッシュ各ノードが公開する証明鍵の値を比較し、ロードバランサーのルーティングを確認します。
プロキシ、ホスト名、またはURLの変更後にエラーが発生する署名と検証には異なるリクエストURLが使用されます。Collaboraが呼び出した完全なURLと、WOPIホストが証明を検証するために使用するURLを比較してください。
ホストまたはネットワークパスのいずれか1つだけが障害を起こした。到達可能性、リバースプロキシ、またはホスト許可リストの設定双方向の接続性をテストし、WOPIホストの許可リストを証明検証とは別に検査してください。
最近の設定変更がなく、証明タイムスタンプが拒否されました時計の同期またはタイムスタンプの解析/鮮度チェック両方のシステムでUTC時刻とNTPステータスを確認し、ホストのタイムスタンプの解釈と許容される有効期間を検証してください。

1. 発見によって現在の公開鍵が漏洩することを確認します。

Collaboraは、検出エンドポイントでWOPI機能と証明鍵情報を公開します。ストレージサーバーで使用されているCollabora URLにアクセスできるマシンから、以下を確認してください。

curl -fsS https://office.example.com/hosting/discovery

XML 内で、proof-key現在のvalueと、存在する場合はを持つ要素を探してくださいoldvalue。この公開情報を Collabora サーバーに保存されている秘密鍵と混同しないでください。最も有用な比較対象は WOPI ホスト自体が取得する検出応答です。ブラウザや管理者のワークステーションは、DNS、プロキシ、またはキャッシュを介して異なる応答を受信する可能性があるためです。

検証済み: CollaboraのWOPI統合では証明署名が使用され、公開鍵は検出によって利用可能になります。対処方法:リクエストを検証する実際のホスト/コンテナから検出情報を取得し、XMLが有効であり、ストレージプラットフォームで構成されているCollaboraエンドポイントと一致することを確認します。証明鍵の生成と検出動作については、Collabora SharePointバインディングガイドを参照してください。

2. 秘密鍵が存在し、読み取り可能であることを確認します。

Collaboraでは、起動ログに、証明鍵ファイルが見つからない、または読み取り不能であるという警告がないか確認してください。Collaboraサービスは、署名用の秘密鍵を読み取ることができなければなりません。パッケージ化されたデプロイメントの場合、構成パスとサービスアカウントは異なる場合があります。ホストパスを想定するのではなく、サービスの構成済みディレクトリとコンテナボリュームのマウントを確認してください。

Collabora のドキュメントcoolconfig generate-proof-keyには、自動キー設定が機能しなかった場合の対処法が記載されています。稼働中のクラスタでルーチンのトラブルシューティング コマンドとして実行しないでください。新しいキーを生成すると、署名 ID が変更されます。ストレージ側が古い検出応答を信頼している場合、ホストが使用する公開キーを更新するまで、リクエストが失敗し続ける可能性があります。

sudo coolconfig generate-proof-key

このコマンドは、キーが存在しないか無効であることを確認し、すべての Collabora ノードと WOPI ホストが一致するキー情報を受信する方法を計画した後にのみ使用してください。その後、パッケージまたはコンテナのデプロイメントに関するドキュメントに記載されているサービス再起動手順に従い、バリデーターのネットワークパスから検出情報を再取得してください。

3. ノード間またはキャッシュ間でキーの不一致がないか確認する

Collaboraサーバーが1台だけなら正常に動作するのに、ロードバランシングされたデプロイメントでは断続的に障害が発生する場合があります。例えば、あるノードが新しく生成された秘密鍵を使用している一方で、別のノードは古い鍵で署名している場合、キャッシュされた検出データを持つホストはどちらの鍵も信頼できない可能性があります。これはデプロイメントに依存する原因であり、断続的なエラーがすべて鍵のローテーションによって引き起こされているという証拠にはなりません。

アクション:/hosting/discoveryロードバランサー経由で、許可されている場合は各バックエンドから直接フェッチします。公開鍵の値を比較し、WOPIホストの検出キャッシュが最新であることを確認します。ノードが意図的に別々の鍵を使用している場合は、ストレージ統合がそのトポロジーをサポートしていることを確認します。そうでない場合は、クラスタ全体で証明鍵構成を統一します。検出の更新には、統合でサポートされているメカニズムを使用する必要があります。証拠なしにデータベースキャッシュを編集したり、無関係なサービスを再起動したりしないでください。

4. 署名付きURLとホストが検証するURLを比較する

証明には、WOPIリクエストの絶対URL(大文字)、トークン、タイムスタンプが含まれます。このため、URL書き換えが重要になります。リバースプロキシは、外部から見えるホスト名、スキーム、ポート、パス、またはエスケープを変更する可能性があります。Collaboraが特定のURLのリクエストに署名した場合でも、WOPIホストが検証のために別のURLを再構築すると、正しい署名が無効に見えることがあります。

対処方法:プロキシ層とアプリケーション層で失敗したリクエストを関連付けます。バリデーターが認識したスキーム、ホスト名、明示的なポート、パス、エンコードされた文字を、証明検証コードで使用されている URL と比較します。アプリケーションが forwarded-host および forwarded-proto ヘッダーに依存している場合にのみ、これらのヘッダーの処理を確認します。実際のリクエスト URL を保持し、署名チェックを無効にしたり、任意の転送ヘッダーを信頼したりして問題を「修正」しないでください。

5. タイムスタンプとバイト処理の検証

WOPI 証明には、 が含まれますX-WOPI-TimeStamp。Microsoft WOPI 仕様では、このヘッダーは 0001 年 1 月 1 日以降の 100 ナノ秒間隔で測定された 64 ビット整数であり、秒単位の Unix タイムスタンプではありません。これを Unix 秒として解析したり、桁を削除したり、エンコーディングを変更したり、署名付きバイトを誤って組み立てたりするカスタムバリデーターは、有効な要求を拒否する可能性があります。

クロックのずれは、ホストが鮮度ウィンドウを強制する場合に考えられる原因の1つですが、正確な許容範囲は検証の実装によって異なります。Microsoft の Web 版 Microsoft 365 のガイダンスでは、20 分経過のチェックを使用していますが、この数値がすべての Collabora 統合に適用されるとは限りません。対処方法: Collabora とストレージシステムの NTP 同期と UTC 時刻を確認し、ホスト独自のタイムスタンプ規則と解析コードを調べます。

カスタムWOPIホストを使用している場合は、バイトレベルの構造も確認してください。トークンはUTF-8、長さはバイト数、URLは完全な絶対URL(大文字)、タイムスタンプ値は指定されたとおりに正確に表現する必要があります。公開鍵は、リクエストを送信したCollaboraインスタンスで使用されている秘密鍵と一致している必要があります。

6. 証明失敗を許可リストエラーおよびTLSエラーから分離する

WOPIホスト許可リストは、Collaboraが接続を許可するストレージホストを決定します。TLS検証は、ネットワークピアの証明書が信頼できるかどうかを判断します。証明検証は、WOPIリクエストの署名をチェックします。これらの制御はセキュアな統合に関連していますが、互換性はありません。ホストを許可リストに追加しても署名の不一致は修復されません。TLSチェックを無効にしても、古い公開証明鍵は修正されません。

Nextcloud のデプロイメントの場合、公式のトラブルシューティング ガイドでは、双方向で必要な HTTP(S) パスを確認し、Nextcloud および Collabora のログを確認し、WOPI ホストの allow-list エントリで allow-list 警告を確認することを推奨しています。アクション:ログのエラー カテゴリに従います。検出エンドポイントとネットワーク到達可能性を、証明バリデーターとは別にテストします。回避策として allow-list を拡張しないでください*。

安全な復旧手順

  1. リクエストが失敗した正確な時刻を記録し、どのサービスが証明検証の失敗をログに記録したかを特定します。
  2. Collaboraのログでキーの欠落に関する警告を確認し、WOPIホストのネットワークパスから取得した検出XMLを調べてください。
  3. 検出時に取得した公開鍵と、リクエストの署名に使用された秘密鍵およびノー​​ド構成を比較してください。
  4. ロードバランサーの一貫性、検出キャッシュ、および最近のキー、ホスト名、プロキシ、またはTLSの変更を確認してください。
  5. トークンや証明ヘッダーを公開せずに、署名付きリクエストURLとタイムスタンプの処理方法を比較します。
  6. 1つのドキュメントで再テストを行い、通常のトラフィックを復元する前に、ホストログで同じリクエストが成功していることを確認してください。

障害が解消されない場合は、両端からサニタイズ済みのログ、Collaboraとストレージのバージョン、デプロイメントの種類、ノードが1つか複数か、シークレットを削除した検出XML、および障害が発生したリクエストのプロキシルートを収集してください。これらの情報を関係ベンダーまたはインテグレーションの保守担当者と共有してください。正確なエラー文字列だけでは、原因が古い検出、URLの正規化、クロックの問題、またはカスタムバリデーターのバグのいずれであるかを特定することはできません。どの経路をたどるべきかは、リクエストレベルの証拠によって判断されます。

コメントを残す

Microsoft Wordで画像を移動する方法

Microsoft Wordで画像を移動する方法

Wordで画像をドラッグする方法、テキストの折り返しを選択する方法、段落内に画像を保持する方法、ページ上に画像を固定する方法、そして画像が移動しない場合のトラブルシューティング方法を学びましょう。

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelのセル内ツールを使ってチェックボックスを挿入する方法、数式を使ってチェックされた項目の数を数える方法、古いデスクトップ版でリンクされたフォームコントロールを追加する方法を学びましょう。

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelでフィルハンドル関数、SEQUENCE関数、または再利用可能なカスタムリストを使用して、AからZまでのアルファベット、小文字、またはZを超えるラベルを生成します。

Excelで取り消し線を引く方法:ショートカットと手順

Excelで取り消し線を引く方法:ショートカットと手順

Windows、Mac、Web版Excelで取り消し線を引く方法、セルの一部に書式を設定する方法、値を削除せずに行を削除する方法を学びましょう。

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessは、関連レコードの保存、クエリの作成、データ入力フォームの作成、レポートの生成を行うためのWindowsデータベースアプリケーションです。その仕組みと最適な活用シーンについて解説します。

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を調整する方法、表示される線の頻度を変更する方法、および下地となる水平方向と垂直方向の描画グリッドの間隔を設定する方法を学びましょう。

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Outlook 2010にPSTファイルをインポートする方法、またはメール、連絡先、カレンダー、タスクをエクスポートする方法を学びましょう。正しいメニューに従い、フォルダの欠落や重複を避けてください。

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Kernelが提供する最新の手順では、忘れてしまったOutlook PSTファイルのパスワードを復元する方法を解説します。正しいファイルの特定方法、バックアップの作成方法、ツールの制限事項の確認方法などが含まれています。

PowerPointスライドにライブWebページを挿入する方法

PowerPointスライドにライブWebページを挿入する方法

LiveWebアドインを使用すると、WebサイトをPowerPointスライドに配置し、サイズや更新動作を設定し、プレゼンテーション前に互換性を確認できます。

Access 2010データベースをフォームで開く方法

Access 2010データベースをフォームで開く方法

Access 2010データベースアプリケーションを、データ入力フォームに直接開くように設定し、オブジェクトリストを非表示にし、メニューを制限し、共有前に設定を確認します。