Qu’est-ce que JWT et comment cette technologie protège vos documents

27 septembre 2022By Dasha

Il existe des moyens de protéger activement les fichiers – en utilisant le chiffrement, les filigranes, les autorisations d’accès restrictives. Mais la sécurité des documents ne s’arrête pas là. Lisez ce billet pour découvrir JWT, un important outil de protection d’accès activé par défaut dans ONLYOFFICE depuis la version 7.2.

What is JWT and how this technology protects your documents

Qu’est-ce que JWT ?

JSON Web Token (JWT, prononcé comme /dʒɒt/) est un standard ouvert pour l’échange sécurisé d’informations en ligne utilisé principalement à deux fins : l’autorisation et le transfert de données.

Un objet JSON compact contient les informations d’authentification et permet de vérifier les utilisateurs légitimes du service, lorsqu’il est appliqué dans des applications web. En bref, il aide l’application à confirmer que l’expéditeur de l’information est bien celui qu’il prétend être.

JWT est un jeton autonome sous forme de chaîne de caractères qui se compose de trois parties : l’en-tête (header), la charge utile (payload) et la signature. L’en-tête contient les informations sur le jeton et la façon dont la signature est générée, la charge utile contient les déclarations sur l’utilisateur nécessaires pour lui accorder l’autorisation d’accès et la signature valide l’utilisateur.

Le jeton peut être signé avec une clé secrète qui permet de valider l’origine des données transférées.

Comment ONLYOFFICE utilise les jetons de sécurité ?

Dans ONLYOFFICE, JWT sécurise le flux de données entre l’éditeur et l’utilisateur. Il permet de vérifier les utilisateurs qui entrent dans les sessions d’édition dans Docs et tentent d’effectuer certaines actions dans les documents. Pour chaque requête HTTP depuis et vers ONLYOFFICE Document server, un jeton est généré et ajouté aux paramètres.

Ici, différents JWT sont générés pour différentes actions de l’utilisateur. Bien que les jetons soient signés avec le même secret dans chaque cas, les informations qui permettent d’autoriser l’entrée sont différentes. Par exemple, un jeton distinct est créé pour ouvrir l’éditeur, pour insérer une image dans le fichier, pour ouvrir l’historique des versions du document, etc.

Pour instant, pour ajouter une image PNG au fichier hébergé sur www.example.com, les paramètres suivants seront inclus dans le jeton :

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

Le jeton type ressemblera à ceci :

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmaWxlVHlwZSI6InBuZyIsInVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vdXJsLXRvLWV4YW1wbGUtaW1hZ2UucG5nIn0.FXuC3GUvPq3japwyzo4i-utUe3g1rfSDt1ytuK_VyCc

Pour signer le JWT, un secret personnalisé est utilisé dans chaque service de partage où ONLYOFFICE Docs est intégré.

Où trouver la clé secrète ?

Dans les versions précédentes de ONLYOFFICE Docs, le secret JWT devait être généré par un administrateur du service hôte (i.e. Nextcloud) et soumis à ONLYOFFICE Document Server manuellement via les paramètres pour l’activer.

À partir de la version 7.2, JWT est activé par défaut. Lorsque ONLYOFFICE Docs est installé et lancé, un secret aléatoire est automatiquement généré et il suffit de l’ajouter du côté de l’application hôte.

Note : Si vous utilisez déjà ONLYOFFICE Docs avec JWT, la clé originale restera dans votre installation. L’exception est l’installation Docker : si dans le serveur de documents installé les variables env ne sont pas définies ou les paramètres JWT ne sont pas définis, un secret aléatoire sera généré après la mise à jour.

Installation de serveurs Linux et Windows

Vous pouvez obtenir le secret JWT par défaut à partir du fichier local.json en utilisant le chemin suivant :

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

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

Vous pouvez trouver le secret dans le paramètre services.CoAuthoring.secret.browser.string.

Installation Docker

Si ONLYOFFICE Docs est installé à l’aide de Docker, exécutez le script suivant pour obtenir le secret :

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

Pour remplacer le secret par défaut par une clé personnalisée, lisez la documentation.

Des instructions individuelles pour chaque méthode d’installation seront également disponibles sur la page de démarrage.

Où est disponible JWT ?

JWT est pris en charge dans presque toutes les applications d’intégration officielles de ONLYOFFICE:

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

Vous pouvez consulter toutes les intégrations disponibles sur notre site web et trouver des guides de configuration des jetons sur les pages GitHub correspondantes.

Si vous souhaitez créer une application d’intégration ONLYOFFICE pour votre propre application, il est possible d’ajouter la prise en charge des jetons de sécurité en utilisant nos instructions API.