ShinyProxy is a novel, open source platform to deploy Shiny apps for the enterprise or larger organizations.
Secured Embedding of Shiny Apps
Since version 2.0.1 ShinyProxy provides a REST API to manage (launch, shut down) Shiny apps and consume the content programmatically inside broader web applications or portals. This allows to cleanly separate the responsiblity for the Shiny apps (data science teams) and those broader applications (IT teams) while still achieving seamless integration between the two from the user’s perspective. With this release we go one step further and support the industry standard to protect REST APIs, namely OAuth 2.0.
In practice this means the following: when users of the portal log on, they typically authenticate with an OAuth2 provider (e.g. Auth0). This then allows the web application to access the ShinyProxy API on their behalf and launch the Shiny apps over the ShinyProxy API. We leave out the details on authorization codes and access tokens, but the core message is that you can now embed Shiny apps in virtually any other web application in a secure way. If you want an actual example, please head to our Github page with ShinyProxy configuration examples, where a sample Node.js application is made available to demonstrate the full scenario.
More generally, users are deploying ShinyProxy on a wide array of cloud platforms and using a great variety of authentication technologies. A lot of the experience gained can now be found in updated documentation with additional examples on e.g. AWS Cognito (here) or Microsoft Azure AD B2C (here), next to Google and Auth0 (here). These production deployments also called for more extensive documentation on logging with ShinyProxy and at that level we also introduced a new setting
logging.requestdump to enable full request dump for advanced debugging. Then, for user convenience we introduced user-friendly URLs to access an app either via the standard ShinyProxy interface (
/app/<app-name>) or directly (
/app_direct/<app-name>) if needed.
Don’t hesitate to send in questions or suggestions and have fun with ShinyProxy!