ONLYOFFICE DocsでのJWTの設定
ドキュメントを不正アクセスから保護するために、ONLYOFFICEエディターはJSON Web Token(JWT)を使用します。トークンは、Document Editorの初期化時や内部ONLYOFFICE Docsサービス間でのコマンド交換時に設定に追加されます。シークレットキーはJSON Webトークンに署名し、ONLYOFFICE Docsへのリクエスト時にトークンを検証するために使用されます。
ONLYOFFICE Docs v.7.2以降、JWTはデフォルトで有効になっており、シークレットキーは自動的に生成されます。必要に応じてパラメーターを変更することができます。以前のバージョンからアップグレードする場合、手動で設定したシークレットキーは保持されます。
ドキュメントを保護するには、ONLYOFFICE Docsの設定ファイルで独自のシークレットキーを指定し、同じシークレットキーをコネクタ設定に指定します。7.2より前のバージョンを使用している場合は、トークン検証も有効にする必要があります。
Linux/Windowsの場合:ONLYOFFICE Docsの設定
-
任意のテキストエディターで
local.jsonファイルを開きます。- Linuxの場合 —
/etc/onlyoffice/documentserver/local.json - Windowsの場合 —
%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
- Linuxの場合 —
-
7.2より前のバージョンを使用している場合は、3つのセクションで
falseの値をtrueに変更してトークン検証を有効にします: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
{"services": {"CoAuthoring": {"token": {"enable": {"request": {"inbox": true,"outbox": true},"browser": true}},"secret": {"inbox": {"string": "<your_secret_key>"},"outbox": {"string": "<your_secret_key>"},"session": {"string": "<your_secret_key>"}}}}} -
変更を保存します。
-
設定変更を反映させるためにサービスを再起動します:
Linux:
systemctl restart ds-converter ds-docservice ds-metricsWindows:
Get-Service | Where-Object { $_.DisplayName -like "*ONLYOFFICE*" } | Restart-Service -Force
Dockerの場合:環境変数を使用
Dockerでのデプロイでは、local.jsonを直接編集する代わりに、docker runコマンドで環境変数を使用します。
自動生成されたシークレットキーを変更したり、/etc/onlyoffice/documentserver/local.jsonでJWTを手動で無効にした場合、サーバーの再起動時にJWTが再度有効になり、シークレットキーが再生成されます。DockerでのデプロイでJWTを設定する場合は、常に環境変数を使用してください。
新しい環境変数を適用するには、コンテナを再作成する必要があります。既存のコンテナを停止して削除し、更新したパラメーターで新しいコンテナを実行します:
sudo docker stop documentserver
sudo docker rm documentserver
sudo docker run -i -t -d -p 80:80 \
-e JWT_ENABLED=true \
-e JWT_SECRET=<your_secret_key> \
onlyoffice/documentserver
JWTを無効にするには、代わりに-e JWT_ENABLED=falseを使用します。