Qué es JWT y cómo esta tecnología protege tus documentos

4 octubre 2022By Sergey

Hay varias formas de proteger los archivos de forma activa: mediante cifrado, marcas de agua o permisos de acceso restrictivos. Pero la seguridad de los documentos no termina en este punto. Lee este post para descubrir JWT, una importante herramienta de protección de acceso habilitada por defecto en ONLYOFFICE a partir de la versión 7.2.

Qué es JWT y cómo esta tecnología protege tus documentos

Qué es JWT

JSON Web Token (JWT) es un estándar abierto para el intercambio seguro de información en línea que se utiliza principalmente para dos propósitos: la autorización y la transferencia de datos.

Un objeto JSON compacto contiene la información de autenticación y proporciona la capacidad de verificar a los usuarios autorizados del servicio, cuando se aplica en aplicaciones web. En pocas palabras, ayuda a la aplicación a confirmar que el remitente de la información es quien dice ser.

JWT es un objeto autónomo en forma de cadena que consta de tres partes: encabezado, contenido y firma. El encabezado contiene la información sobre el token y cómo se genera la firma, y el contenido contiene los privilegios del usuario que son necesarios para concederle el permiso de acceso, y la firma valida al usuario.

El token puede ser firmado con una clave secreta que ayuda a validar el origen de los datos transferidos.

Cómo ONLYOFFICE utiliza los tokens de seguridad

En ONLYOFFICE, JWT asegura el flujo de datos entre el editor y el usuario. Ayuda a verificar a los usuarios que entran en las sesiones de edición en Docs e intentan realizar ciertas acciones en los documentos. Para cada solicitud HTTP desde y hacia el servidor de documentos de ONLYOFFICE, se genera un token y se añade a los parámetros.

Aquí, se generan diferentes JWTs para diferentes acciones del usuario. Aunque los tokens se firman con el mismo secreto en cada caso, la información que ayuda a autorizar la entrada es diferente. Por ejemplo, se crea un token distinto para abrir el editor, para insertar una imagen en el archivo, para abrir el historial de versiones del documento, etc.

Por ejemplo, para añadir una imagen PNG al archivo almacenado en www.example.com, se incluirán los siguientes parámetros en el token:

{
    "fileType": "png",
    "url": "https://example.com/url-to-example-image.png"
}

Y así es como se verá el token de muestra:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6InBuZyIsInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtaW1hZ2UucG5nIn0.FXuC3GUvPq3japwyzo4i-utUe3g1rfSDt1ytuK_VyCc

Para firmar el JWT, se utiliza un secreto personalizado en cada servicio de uso compartido donde se integra ONLYOFFICE Docs.

Dónde se recupera la clave secreta

En las versiones anteriores de ONLYOFFICE Docs, el secreto JWT tenía que ser generado por un administrador del servicio principal (por ejemplo, Nextcloud) y enviado al Servidor de Documentos de ONLYOFFICE manualmente a través de la configuración para habilitarlo.

A partir de la versión 7.2 JWT está activado por defecto. Cuando ONLYOFFICE Docs se instala y se lanza, un secreto aleatorio se genera automáticamente y sólo tiene que ser añadido en el lado de la aplicación principal.

Ojo: Si ya estás usando ONLYOFFICE Docs con JWT, la clave original permanecerá en tu instalación. La excepción es la instalación de Docker: si en el Servidor de Documentos instalado las variables env no están establecidas o los parámetros JWT no están definidos, un secreto aleatorio será generado después de la actualización.

Instalación en servidores Linux y Windows

Puedes obtener el secreto JWT por defecto del archivo local.json utilizando la siguiente ruta:

Para Linux: /etc/onlyoffice/documentserver/local.json

Para Windows: %ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json

Puedes encontrar el secreto en el parámetro services.CoAuthoring.secret.browser.string.

Instalación con Docker

Si ONLYOFFICE Docs está instalado con Docker, ejecuta el siguiente script para obtener el secreto:

sudo docker exec f00ad6e66a40 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

Para reemplazar el secreto por defecto con una clave personalizada, lee la documentación.

Las instrucciones individuales para cada método de instalación también estarán disponibles en la página de inicio de ONLYOFFICE Docs después de la instalación.

¿Dónde está disponible JWT?

JWT es compatible con casi todas las aplicaciones oficiales de integración de ONLYOFFICE:

  • Nextcloud
  • ownCloud
  • Alfresco
  • Moodle
  • Mattermost
  • Chamilo
  • HumHub
  • Confluence
  • Plone
  • Strapi
  • Liferay
  • Jira
  • Nuxeo
  • Redmine
  • WordPress

Puedes navegar por todas las integraciones disponibles en nuestro sitio web y encontrar guías de configuración de tokens en las páginas correspondientes de GitHub.

Si quieres crear una aplicación de integración de ONLYOFFICE para tu propia aplicación, es posible añadir soporte para los tokens de seguridad usando nuestras instrucciones de la API.