NewsRoom

Shinymanager : sécurisez simplement vos applications R Shiny

R&D 1 mars 2020

Contrôler les utilisateurs, gérer les droits en fonction des profils… le package shinymanager développé par Datastorm est un outil simple et robuste pour administrer vos applications R Shiny.

Le développement d’une application Shiny est devenu une étape quasi inévitable de la plupart des projets de data science. En effet, la richesse de l’écosystème R, notamment sur les outils de visualisation grâce à l’excellent package htmlwidgets, couplée à la puissance et la simplicité de Shiny, permet de développer rapidement une application web à destination des utilisateurs « métier ». Cependant, la question de la sécurisation de l’accès à ces données et ces résultats se pose rapidement : comment contrôler les utilisateurs et gérer les droits, qui peuvent varier en fonction des profils ?

Une alternative gratuite et simple d’utilisation

Bien évidemment, des outils existent déjà sur le marché comme le déploiement sur la plateforme shinyapps.io, l’utilisation de shiny-server pro ou RSConnect ou encore l’utilisation de shinyproxy. Mais toutes ces solutions présentent des inconvénients :

  • Achat d’une licence amenant l’authentification pour les produits RStudio
  • Installation et configuration plus complexe côté serveur

Shinymanager a donc été pensé et développé pour amener une solution alternative, gratuite, et simple d’utilisation pour administrer des applications Shiny.

Shinymanager propose deux modes de fonctionnement :

  • L’utilisation directe d’une table contenant les informations de connexion.
  • L’utilisation d’une base de données SQLite chiffrée. Ce choix préférentiel permet notamment par la suite d’administrer la base des utilisateurs et d’accéder aux logs d’utilisation.

Les + de shinymanager :

  • Simplicité d’utilisation
  • Customisation de l’interface / support multilingue (actuellement français, anglais et portugais)
  • Déconnexion automatique / expiration des droits d’accès
  • Base de données chiffrée
  • Console d’administration (Ajout, modification, suppression des utilisateurs / Gestion des mots de passe (politique, réinitialisation) / Logs d’usage)

Sécurité

Shinymanager utilise des requêtes http couplées à des tokens sha256 temporaires afin de garantir l’accès à l’application. En complément, la base de données d’authentification est cryptée à l’aide d’openssl et d’une clé de chiffrement. Le code source web de l’application étant également protégé.
Le package shinymanager a été développé par Datastorm en collaboration avec dreamRs.

Shinymanager sur Github :
https://github.com/datastorm-open/shinymanager
Documentation :
https://datastorm-open.github.io/shinymanager/