La sécurité dans un R Brillante Application
Je veux publier une R Brillante application web (http://www.rstudio.com/shiny/) sur le web, mais je veux le mot de passe protéger de sorte que seules les personnes ayant des informations d'identification peuvent voir ce que j'ai publié. Quelle est la meilleure façon de le faire ?
- Il est une alternative open source maintenant déployer Brillant apps: shinyproxy.io Il semble en charge LDAP hors de la boîte.
- J'ai suivi ce tutoriel pour l'utilisation d'apache en tant que gardien: r-bloggers.com/password-protect-shiny-apps. Vous devez lire tous les 4 tutoriel pages soigneusement. Aussi, il m'a aidé à utiliser le
sanitize_errors=false;
dans le brillant-serveur.fichier conf. - Voici un tutoriel (de moi) avec une installation de Docker projet: pawamoy.github.io/2018/03/15/django-auth-serveur-pour-brillant. Il utilise NginX et auth-demande de module.
Vous devez vous connecter pour publier un commentaire.
Cela pourrait être un peu tard, mais je vais répondre, de toute façon. Si vous avez déjà eu une solution, pouvez vous s'il vous plaît le partager avec nous?
Mon objectif principal était très simple. J'ai eu une version de travail de la brillante application sur mon ordinateur portable. J'ai utilisé pour le faire fonctionner comme mentionné ci-dessous, le tout pour tester en local.
Puis vint le moment où nous avons dû mettre cela sur une instance Amazon EC2.
Au premier abord, ma tentative a été directement proxy apache à port 8100 sur lequel mon application serait de les écouter. Mais cela ne fonctionne pas bien, car il apparaît que l'exécution du serveur de cette manière utilise les sockets raw où, comme à l'aide d'un brillant serveur tombe en arrière à l'aide sock.js d'où la communication est maintenant sur HTTP à la place.
Donc téléchargé le brillant-application serveur sur notre instance EC2 en suivant les instructions ici: https://github.com/rstudio/shiny-server
Btw, si les instructions vous recommandons d'installer node.js à partir de la source si vous utilisez une RHEL exemple, cela a fonctionné assez bien pour moi en allant le yum install façon. Vous avez ces instructions ici.
À la suite de la node.js brillant-installation du serveur & installation, édité mon conf Apache (Ubuntu et RHEL appel de la conf différemment. Donc modifier celui que vous avez). Ajout d'un hôte virtuel pour le service de mes demandes. Et comme vous pouvez le remarquer, en outre, masqué avec un Apache de Base digest Authentification avec le serveur Apache Emplacement de la directive.
En dehors de cela aussi édité les brillant-serveur conf pour écouter de la demande de 127.0.0.1 seulement (localhost seulement). Donc, à mon brillant-serveur j'ai le texte suivant:
Btw, vous n'en aurez pas besoin si vous êtes dans un environnement Amazon EC2 que vous pouvez utiliser à la sécurité-groupe paramètre dans votre tableau de bord EC2 à faire de même. Je l'ai fait de toute façon comme une bonne mesure.
Cela, pour l'instant, c'est assez que nous étions à la recherche de quelque chose de très rapide & simple.
Maintenant désespérément en attente pour le génial RShiny les gens à fournir auth comme une partie de l'édition d'entreprise face.
Espère que cette aide.
Cela peut être un peu la fin de l'OP, mais il peut être utile pour votre cas d'utilisation:
https://auth0.com/blog/2015/09/24/adding-authentication-to-shiny-open-source-edition/
Il est semblable à la Rohith réponse, mais il utilise Auth0 au lieu de cela, ce qui vous permet plus d'options d'authentification (Comme une connexion, les Comptes Google, Active directory, LDAP, et un gros etc)
Disclaimer: je travaille à Auth0, nous utilisons Brillant en interne avec cette configuration et il fonctionne très bien.
Un peu plus tard, mais j'ai trouvé une autre option à l'aide de ngnix comme un proxy:
Ce guide a été terminé en suivant partiellement cette directive: https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy
Sur une Ubuntu 14.04:
Ce:
XX: Port de la nginx sera à l'écoute de
YY: Port que le brillant serveur utilise
À l'aide de ce tutoriel, j'ai ajouté un mot de passe d'authentification pour le serveur nginx: https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04
Configurer le brillant ou le processus de brillant serveur pour n'écouter que sur localhost (127.0.0.1)
Cela peut être considéré comme un
HTTP
exigence plutôt que d'unShiny
fonctionnalité. Si oui, on peut le voir dans la première mise en œuvre d'une authentification HTTP, et une fois que les informations sont vérifiées, vous pouvez rediriger vers votre Brillant URL d'application.Voici un post de blog qui explique la configuration de l'authentification simple pour Apache Tomcat.
Aussi, prendre un coup d'oeil à cet article de la mise en scène dans IIS
De la recherche ou sur le Web pour l'authentification de base devrait vous donner quelques liens utiles et vous rapprocher.
À ce moment là, il n'est pas un simple moyen pour ce faire. Cependant, nous allons publier une version commerciale de Brillant Serveur dans un avenir proche. Nous allons faire une version bêta dans les prochains mois et la version officielle avant la fin de l'année. Cela permet d'inclure la possibilité d'avoir le mot de passe d'authentification pour votre Brillante Apps. En outre, Brillant Serveur Pro fonctionnalités autour de la sécurité, l'authentification, l'évolutivité, surveillance de serveur, et de soutien à la prime.
Un autre endroit que vous pourriez être en mesure d'obtenir de la rétroaction est la Brillant Liste De Diffusion. Il y a beaucoup d'utilisateurs actifs qui pourraient avoir quelques idées. Sinon, si vous souhaitez nous contacter directement à ce sujet, vous pouvez envoyer un email à [email protected] et je vais vous répondre.
Mieux,
Josh
Chef De Produit - RStudio