Перейти к основному содержимому

Настройка JWT для ONLYOFFICE Docs

Для защиты документов от несанкционированного доступа редакторы ONLYOFFICE используют JSON веб-токен (JWT). Токен добавляется в конфигурацию при инициализации Редактора документов и при обмене командами между внутренними сервисами ONLYOFFICE Docs. Секретный ключ используется для подписи веб-токена JSON и проверки токена при запросе к ONLYOFFICE Docs.

примечание

Начиная с ONLYOFFICE Docs v.7.2, JWT включен по умолчанию, а секретный ключ генерируется автоматически. Вы всегда можете изменить эти параметры на свое усмотрение. При обновлении с более ранней версии все секретные ключи, настроенные вручную, сохраняются.

Для защиты ваших документов укажите свой секретный ключ в файле конфигурации ONLYOFFICE Docs, затем укажите этот же секретный ключ в настройках коннектора. Если вы используете версию ниже 7.2, также необходимо включить проверку токена.

Для Linux/Windows: настройка ONLYOFFICE Docs​

  1. Откройте файл local.json в любом доступном текстовом редакторе.

    • Для Linux — /etc/onlyoffice/documentserver/local.json
    • Для Windows — %ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
  2. Если вы используете версию ниже 7.2, включите проверку токена, изменив значение false на true в трех разделах:

    • services.CoAuthoring.token.enable.browser
    • services.CoAuthoring.token.enable.request.inbox
    • services.CoAuthoring.token.enable.request.outbox
  3. Укажите свой секретный ключ, заменив значение secret собственной текстовой строкой в трех разделах. Секретный ключ должен быть одинаковым во всех трех разделах.

    • services.CoAuthoring.secret.inbox.string
    • services.CoAuthoring.secret.outbox.string
    • services.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>"
    }
    }
    }
    }
    }
  4. Сохраните изменения.

  5. Перезапустите службы, чтобы изменения вступили в силу:

    Linux:

    systemctl restart ds-converter ds-docservice ds-metrics

    Windows:

    Get-Service | Where-Object { $_.DisplayName -like "*ONLYOFFICE*" } | Restart-Service -Force

Для Docker: использование переменных окружения​

Для развертываний в Docker используйте переменные окружения в команде docker run, а не редактируйте файл local.json напрямую.

Внимание

Если вручную изменить автоматически сгенерированный секретный ключ или отключить JWT в файле /etc/onlyoffice/documentserver/local.json, при перезапуске сервера JWT вновь включится и секретный ключ будет сгенерирован повторно. Для настройки JWT в развертываниях Docker всегда используйте переменные окружения.

Чтобы применить новые переменные окружения, необходимо пересоздать контейнер. Остановите и удалите существующий контейнер, затем запустите новый с обновленными параметрами:

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.