为 ONLYOFFICE 文档配置 JWT
为了保护文档免受未经授权的访问,ONLYOFFICE 编辑器使用 JSON Web Token (JWT)。在初始化文档编辑器和内部 ONLYOFFICE 文档服务之间的命令交换时,令牌会被添加到配置中。密钥用于签署 JSON Web Token,并在请求 ONLYOFFICE 文档时验证令牌。
备注
从 ONLYOFFICE 文档 v.7.2 开始,JWT 默认启用,并且密钥会自动生成。您可以随时更改参数以满足您的需求。从早期版本升级时,所有手动配置的密钥都将被保留。
为了保护您的文档,请在 ONLYOFFICE 文档配置文件中指定您自己的密钥,然后在连接器设置中指定相同的密钥。如果您使用的是 7.2 之前的版本,还需要启用令牌验证。
对于 Linux/Windows:配置 ONLYOFFICE 文档
-
使用任何可用的文本编辑器打开
local.json文件。- 对于 Linux —
/etc/onlyoffice/documentserver/local.json - 对于 Windows —
%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
- 对于 Linux —
-
如果您使用的是 7.2 之前的版本,请通过在三个部分中将
false值更改为true来启用令牌验证:services.CoAuthoring.token.enable.browserservices.CoAuthoring.token.enable.request.inboxservices.CoAuthoring.token.enable.request.outbox
-
通过在三个部分中用您自己的文本字符串替换密钥值来指定您自己的密钥。三个部分中的密钥必须相同。
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 部署,请在 docker run 命令中使用环境变量,而不是直接编辑 local.json。
警告
如果您在 /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。