How to share a dashboard and still keep your data secure?
By Front Analytics - January 18, 2018
There are several off the shelf dashboarding tools that make it easy for business intelligence and communicating business insights. At Front Analytics we use Shiny from Rstudio as a cost effective and easy to customize solution.
ShinyProxy as an alternative to Shiny Server Pro
ShinyProxy takes all the functionality of Shiny and provides a nice, open source set of features comparable to Shiny Server Pro. It utilizes Docker as a backend for serving shiny applications and creates isolated containers for each user session. This containerized approach provides out of the box scalability and security for shiny applications. ShinyProxy provides several options for providing user authentication, including LDAP and Keycloak, which addresses a major pain point with the open source version of Shiny Server.
Users are presented with a single sign on page. After signing in with credentials the user is presented with links to the Shiny applications only they have access to. Once a link is clicked, there is a momentary delay as a new Docker container is initialized to serve the application (this delay is minimal, typically less than 5 seconds).
Each shiny application served by Shiny Proxy is defined using a Dockerfile and committed as a Docker image. Using Docker as a backend comes with several benefits. For instance, it’s straightforward to have Shiny applications that depend on different versions of R packages or different versions of R entirely. The configuration file for ShinyProxy defines the name shown for each shiny application, the Docker image used to serve that application, user permissions, and a host of other options.
ShinyProxy is currently running on the Walden Server and can be accessed at walden.frontanalytics.com:8181. There are two users set up right now, jack and jeff. Both users have the password of password. Logging in as one of the two users demonstrates how the landing page only provides access to apps the given user has access to (jeff only has access to a single application, while jack has access to 3).
ShinyProxy is under active development and has a vibrant community of supporters built up around it. It is a viable way of creating a secure and authenticated environment for Shiny applications. It can be especially powerful as a central hub for Shiny applications accessed by multiple users from multiple organizations given the way in which authentication is natively handled.