メインコンテンツまでスキップ

ONLYOFFICE Docsの管理パネルの使用

概要​

バージョン9.1から、ONLYOFFICE管理パネルはサーバーの構成管理と監視のための安全なWebインターフェースを提供します。このガイドでは、認証システムの設定と使用方法について説明します。

初期設定​

デフォルトでは、管理パネルは無効になっています。http://example.com/welcomeページの指示に従って開始してください。

example.comはONLYOFFICE Docsがインストールされているサーバー名です。

初回インストール​

管理パネルを初めて起動すると、初期設定が必要です:

  1. 管理パネルのWebインターフェースを開きます。

    http://example.com/welcomeページで、Admin Panelをクリックします。表示されたダイアログで、Open Admin Panelをクリックします。

  2. 最初の管理者を作成します。

    サーバーは自動的に管理者パスワードが設定されていないことを検出します。最初の管理者を作成するためのコマンドが記載されたページが開きます。最初の管理者はホストからのみ作成できます。

    管理パネル - 最初の管理者の作成

    インストール方法に合ったコマンドを使用してください:

    Linux:

    sudo documentserver-admin create-admin

    Docker:

    docker exec -it <container> documentserver-admin create-admin

    <container>をコンテナIDまたはコンテナ名に置き換えてください。確認するには、docker psを実行します。

    Kubernetes:

    kubectl exec -it <pod> -- documentserver-admin create-admin

    <pod>をPod名に置き換えてください。確認するには、kubectl get podsを実行します。

    Windows:

    "%ProgramFiles%\ONLYOFFICE\DocumentServer\bin\documentserver-admin.bat" create-admin

    コマンドラインの指示に従って管理者パスワードを設定します。

  3. ページを再読み込みしてログインします。

    管理パネルのページを再読み込みし、作成したパスワードを入力して、ログインをクリックします。

    設定完了後の管理パネルのダッシュボード

    管理パネルで変更された設定を含むruntime.jsonファイルが作成されます。このファイルは、local.json、default.json、production.jsonなどの他の設定ファイルよりも優先されます。

    runtime.jsonファイルは以下にあります:

    • Linuxの場合 - /var/www/onlyoffice/Data/runtime.json

    • Dockerの場合 - /var/www/onlyoffice/Data/runtime.json(最初にdocker exec -it <containerid> bashコマンドを使用してONLYOFFICE Docsコンテナに入ります)

    • Windowsの場合 - %ProgramData%/ONLYOFFICE/Data/runtime.json

      デフォルトでは、ProgramDataはWindows Serverで隠しフォルダになっているため、ファイルエクスプローラーのオプションで隠しアイテムを表示するように設定してください。

セキュリティノート​

  • 最初の管理者は、ホストからdocumentserver-admin create-adminを使用してのみ作成できます。
  • 管理者パスワードはruntime.jsonにpasswordHashとして保存されます。
  • パスワードは送信またはログに記録されず、安全なハッシュのみが保存されます。

通常のログイン​

初期設定が完了した後:

  1. http://example.com/adminに移動します。

  2. 管理者パスワードを入力します。

  3. ログインをクリックします。

    通常の管理パネルのログインページ

  4. セッションは1時間有効です。

セッションの詳細​

  • セッションは安全なHTTPのみのクッキーを使用します。
  • 1時間の非アクティブ状態の後、自動的に期限切れになります。
  • SameSite=Strict保護がCSRF攻撃に対して適用されます。

パスワードの変更​

管理者パスワードを変更するには:

  1. 管理パネルにログインします。
  2. パスワード変更ページに移動します。
  3. 現在のパスワードを入力します。
  4. 新しいパスワードを入力します。
  5. 新しいパスワードを確認します。
  6. 変更を保存をクリックします。

管理パネル - パスワード変更ページ

パスワードを変更した後もセッションはアクティブのままです。

パスワードハッシュの詳細​

  • アルゴリズム: PBKDF2-SHA256(600,000回の反復、OWASP 2023)。
  • クロスプラットフォーム: ハッシュはPythonまたはNode.jsで生成できます。

外部でのパスワードハッシュの生成​

OpenSSL 3.0+(推奨 - MCF形式):

PASSWORD="YourPassword"; I=600000; S=$(openssl rand -base64 16 | tr -d '\n'); H=$(openssl kdf -binary -keylen 32 -kdfopt digest:SHA256 -kdfopt pass:UTF8:"$PASSWORD" -kdfopt salt:base64:"$S" -kdfopt iter:$I PBKDF2 | base64 | tr -d '\n'); echo "\$pbkdf2-sha256\$$I\$$S\$$H"

Node.js:

node -e "const crypto=require('crypto');const p=process.argv[1];const s=crypto.randomBytes(16);const sb=s.toString('base64').replace(/\+/g,'.').replace(/=/g,'');crypto.pbkdf2(p,s,600000,32,'sha256',(e,k)=>{const h=k.toString('base64').replace(/\+/g,'.').replace(/=/g,'');console.log('\$pbkdf2-sha256\$600000\$'+sb+'\$'+h)})" "YourPassword"

OpenSSLバージョンの確認:

openssl version
# OpenSSL 3.0.0以上 - ✓ openssl kdfコマンドを使用
# OpenSSL 1.x - ✓ openssl keyutlコマンドを使用

生成されたハッシュをruntime.jsonファイルに追加します:

{
"adminPanel": {
"passwordHash": "$pbkdf2-sha256$600000$..."
}
}

パスワードリセット / 回復​

現在のパスワードがわかっている場合は、管理パネルのパスワード変更ページを使用してください。

管理者パスワードを忘れた場合は、サーバーで次のコマンドを実行してください:

Linux:

sudo documentserver-admin reset-admin-password

Docker:

docker exec -it <container> documentserver-admin reset-admin-password

<container>をコンテナIDまたはコンテナ名に置き換えてください。確認するには、docker psを実行します。

Kubernetes:

kubectl exec -it <pod> -- documentserver-admin reset-admin-password

<pod>をPod名に置き換えてください。確認するには、kubectl get podsを実行します。

Windows:

"%ProgramFiles%\ONLYOFFICE\DocumentServer\bin\documentserver-admin.bat" reset-admin-password

コマンドラインの指示に従って新しい管理者パスワードを設定します。

トラブルシューティング​

管理パネルがまだ構成されていない​

問題: 管理パネルのページに、管理者アカウントが存在しないと表示されたままです。

解決策:

  • ホストからdocumentserver-admin create-adminを使用して最初の管理者を作成します。
  • Dockerの場合は、ONLYOFFICE Docsコンテナ内でコマンドを実行します:docker exec -it <container> documentserver-admin create-admin。<container>をdocker psで表示されるコンテナIDまたはコンテナ名に置き換えてください。
  • コマンドラインの処理が完了したら、管理パネルのページを再読み込みし、作成したパスワードでログインします。

設定​

ONLYOFFICE管理パネルの設定ページは、サーバー構成の監視、証明書の管理、カスタムフォントなどのツールを提供します。このセクションの機能の簡単な説明を以下に示します。

管理パネル - 設定ページ

構成​

このタブを使用して、以下の操作が可能です:

  • サーバー構成を表示します。すべての構成ファイルを通じて再定義されたすべてのパラメーターを含む最終的な構成がここに表示されます。機密パラメーター(パスワード、キー、シークレット)は「REDACTED」と表示されます。
  • 構成ファイルの内容をコピーします。
  • すべての構成設定をデフォルト値にリセットします。この操作は元に戻せません。

ライセンス​

このタブを使用して、製品ライセンスをアップロードし、ライセンス情報を表示できます:

  • ビルド:タイプ(エンタープライズ版、デベロッパー版)、モード(トライアル、プロダクション)、リリース日。
  • ライセンス:開始日、ライセンスが有効な日付。
  • エディターとライブビューアーの接続制限。

今すぐ購入ボタンをクリックしてライセンスを購入します。公式ONLYOFFICEウェブサイトの該当ページにリダイレクトされます。

ライセンスをアップロードするには:

  1. 参照ボタンをクリックしてライセンスファイルを選択します。
  2. ライセンスを適用ボタンをクリックします。

PDF署名​

このタブを使用して、提出されたPDFフォームに署名するためのPKCS#12(.p12/.pfx)証明書を追加できます。記入済みのPDFフォームは、完了して送信ボタンをクリックして送信する際に署名されます。

既存のファイル(秘密鍵と.crt / .pem証明書)を使用して.p12/.pfx証明書を作成するには、コマンドラインからopensslを使用できます:

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt

ゼロから証明書を作成するには:

  1. 秘密鍵を生成します:

    openssl genrsa -out privatekey.key 2048
  2. 証明書署名要求(CSR)を作成します:

    openssl req -new -key privatekey.key -out request.csr
  3. 自己署名証明書を生成します:

    openssl x509 -req -days 365 -in request.csr -signkey privatekey.key -out certificate.crt
  4. PKCS#12ファイルを作成します:

    openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt

.p12/.pfx証明書を取得したら、管理パネルの「証明書ファイル」フィールドにアップロードできます。証明書がパスワードで保護されている場合は、「証明書パスフレーズ」フィールドにパスワードを入力します。その後、設定を保存します。

HTTPS / SSL​

このタブを使用して、letsencrypt.orgサービスから新しいCA署名証明書をインストールし、安全なHTTPSプロトコルを有効にできます。

注記

Let's Encrypt証明書を正常に生成するには、ポート80と443を開いておく必要があります。DNSエントリのAレコードが、あなたのドメイン名をONLYOFFICE DocsがインストールされているサーバーのIPアドレスにポイントしている必要があります。

  1. ドメインフィールドにドメイン名を指定します。
  2. メールフィールドにメールアドレスを指定します。
  3. 証明書をインストールボタンをクリックします。

フォント​

このタブを使用して、新しいカスタムフォントを追加できます:

  1. 参照ボタンをクリックしてフォントファイルを選択するか、ここにドラッグ&ドロップします。
  2. 生成ボタンをクリックします。

追加したカスタムフォントを管理します:

  • 名前でフォントをフィルタリングして必要なフォントを見つけます。
  • 「カスタムのみ表示」オプションをチェックして、リストにカスタムフォントのみを表示します。
  • 「削除用にすべてのカスタムをマーク」オプションをチェックし、生成ボタンをクリックして選択したカスタムフォントを削除します。

サービス​

このタブを使用して、特定のサービスのパブリックAPIエンドポイントを有効または無効にできます。

注記

サービスを無効にすると、そのパブリックAPIリクエストは直ちにHTTP 403で拒否されます。無効にしたエンドポイントに依存する連携機能は、サービスが再度有効になるまで動作しなくなります。

管理パネル - サービスタブ

次のオプションを利用できます:

  • 変換パブリックAPI。 変換エンドポイントを有効または無効にします。無効にすると、変換サービスを使用するコネクタが動作しなくなる場合があります。エディターから開始された変換には影響しません。
  • Document BuilderパブリックAPI。 ドキュメント生成エンドポイントを有効または無効にします。
  • AI機能。 エディターのAIツールと/ai-proxyエンドポイントを有効または無効にします。無効にすると、エディターに送信されるプラグインリストからAIツールが削除され、/ai-proxyリクエストが拒否されます。

シャットダウン​

このタブを使用して、ONLYOFFICE Docsを停止する必要がある場合(アプリケーションの更新やサーバーの再起動など)、データ損失を避けるためにONLYOFFICE Docsユーザーを強制的に切断できます。

  1. シャットダウンボタンをクリックして、新しいエディター接続をブロックし、既存のセッションを閉じます。この方法でサーバーを停止すると、ユーザーはエディターから正しく切断され、変更は保存されます。
  2. 再開ボタンをクリックして、サーバーを通常モードに戻し、新しいエディター接続を許可します。

詳細オプション​

このタブを使用して、高度なセキュリティオプションとドキュメントのアセンブリオプションを構成できます。

注記

検証を無効にすると、サーバーが中間者攻撃に対して脆弱になります。自己署名証明書やその他の信頼されていない証明書を持つサービスと連携する場合の一時的な回避策としてのみ使用してください。適切な証明書をインストールしたら、再度有効にしてください。

管理パネル - 詳細タブ

次のオプションを利用できます:

  • TLS/SSL証明書を検証する(rejectUnauthorized)。 送信HTTPSリクエストのリモート証明書を検証します。
  • ダウンロードしたファイルの整合性を検証する(checksumVerification)。 ダウンロードしたコンテンツを整合性ヘッダーと照合します。
  • 元の形式でドキュメントをアセンブルする(assemblyFormatAsOrigin)。 最終アセンブリ時に元のドキュメント形式を保持します。

IPフィルタリング​

IPフィルタリングページでは、このサーバーが接続できるホストを定義できます。ホストを指定するルールを追加すると、サーバーはそのホストに接続できるようになります。キャッチオールルール*はすべてのホストに一致します。

信頼できるWOPIホストを必須にするは、キャッチオールルール*だけでホストを信頼するのに十分かどうかを制御します。有効な場合(デフォルト)、ホストを明示的に指定したルールのみが有効になり、キャッチオールルールは有効になりません。

ルールは上から下へ順に評価され、最初に一致したルールが適用されます。WOPIストレージホストのルールは、キャッチオールルール*より上に追加してください。

管理パネル - IPフィルタリングページ

ネットワークリクエスト​

ネットワークリクエストタブでは、このサーバーにアクセスできる呼び出し元と、送信接続のフィルタリング方法を制御します。

管理パネル - ネットワークリクエストタブ

次のオプションを利用できます:

  • リクエストにIPフィルタリングを使用する。 受信リクエストにIPルールを適用します。無効にすると、クライアントアドレスはチェックされませんが、送信先のWOPIは引き続き同じルールで承認されます。
  • プライベートIPアドレスを許可する。 プライベートアドレス範囲およびループバックへの送信リクエストを許可します。これによってWOPIホストが信頼済みになることはありません。
  • メタIPアドレスを許可する。 0.0.0.0および::への送信リクエストを許可します。クラウドメタデータアドレスとリンクローカルアドレスは、WOPIに対して引き続きブロックされます。

WOPI設定​

WOPI設定ページでは、ドキュメント編集用のWOPIサポートを構成できます。これには、信頼できるWOPIホスト、SharePoint連携の互換性設定、ドキュメントのロック動作、暗号化キーの管理が含まれます。

ページ上部のWOPIスイッチを使用して、WOPIサポート全体を有効または無効にします。

管理パネル - WOPI設定ページ

信頼できるWOPIホスト​

このセクションでは、このサーバーが接続できるドキュメントストレージホストを決定します。信頼できるホストのリストは、WOPI設定ページではなく、IPフィルタリングページで管理されます。

信頼できるWOPIホストを必須にするは、IPフィルタリングページのキャッチオールルール*だけでホストを信頼するのに十分かどうかを制御します。有効な場合(デフォルト)、ホストを明示的に指定したルールのみが有効になり、キャッチオールルールは有効になりません。IPフィルタリングのルールはWOPIの送信先に対して常に使用されます。このオプションでそのフィルタリングが無効になることはありません。

信頼できるWOPIホストが構成されていない場合は警告が表示され、ストレージホストを指定するルールを追加するまでドキュメントを開くことはできません。

管理パネル - 信頼できるWOPIホストセクション

WOPIホストを許可リストに追加するには:

  1. WOPI設定ページで、信頼できるWOPIホストセクションを開きます。警告メッセージ内のIPフィルタリングリンクをクリックします。
  2. IPフィルタリングページで、WOPIストレージホストを指定するルールを追加します。ルールが保存されると、そのホストはWOPIに対して信頼済みになります。
注記

信頼できるWOPIホストを必須にするが有効な場合、IPフィルタリングのキャッチオールルール*によってホストが信頼済みになることはありません。ストレージホストを明示的に指定するルールを追加してください。

互換性​

このセクションでは、SharePointおよびその他のWOPI互換ストレージ連携向けに、WOPIディスカバリーとリクエストの互換性を設定します。

WOPIゾーン

ONLYOFFICE Docsが通知するディスカバリーゾーンを指定します。この値は、SharePoint側でSet-SPWOPIZone PowerShellコマンドを使用して構成されたゾーンと一致している必要があります。使用可能な値:

  • external-https
  • external-http(デフォルト)
  • internal-https
  • internal-http

SharePoint側で現在構成されているゾーンを確認するには、次のPowerShellコマンドを使用します:

Get-SPWOPIZone

SharePoint側のゾーンを変更するには、次のPowerShellコマンドを使用します:

Set-SPWOPIZone -Zone "external-http"

Authorizationヘッダーを送信

有効にすると、WOPIリクエストにAuthorization: Bearer <access_token>ヘッダーが追加されます。これはWOPI仕様では任意ですが、一部のSharePoint構成では必須です:

  • SharePoint Subscription Edition: このオプションを有効にする必要があります。Authorizationヘッダーがないと、Invalid access tokenエラーが発生し、ドキュメントの編集に失敗します。
  • SharePoint 2019: このオプションは任意です。URIで渡されるトークンで接続は機能しますが、ヘッダーを有効にしても問題は発生しません。

これはwopi.sendAuthorizationHeader構成パラメーター(デフォルトはfalse)に対応します。

ロック設定​

このセクションでは、WOPIセッションのドキュメントロックの更新間隔を構成します。

ロック更新間隔

ドキュメントロックを更新する頻度を指定します。<number><unit>形式を使用します。単位はs(秒)、m(分)、またはh(時間)です。例:10m、1h、30s。デフォルト値は10mです。

キー管理​

このセクションでは、WOPI暗号化キーをローテーションできます。現在の公開キーフィールドには、WOPIリクエストの認証に使用されるアクティブな公開キーが表示されます。

キーをローテーションするには、キーをローテーションチェックボックスをオンにして、変更を保存をクリックします。現在のキーは「Old」に移動され、新しいキーが生成されます。

注記

キーのローテーションは24時間に1回までにしてください。ストレージの更新が間に合わず、認証エラーが発生する可能性があります。