Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Developpeur R-Shiny
    Inscrit en
    février 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Developpeur R-Shiny

    Informations forums :
    Inscription : février 2019
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Authentification sur Shiny (R) / Contenus différents

    Bonjour à tous,

    Je souhaiterais savoir (dans un contexte entreprise) s'il existait des fonctions dans R-Shiny permettant d'avoir accès à différents contenus d'une même application via un processus d'authentification.

    Par exemple, soit A un manager, B un salarié.
    - Processus d'authentification (login, mot de passe)
    - Processus de vérification permettant d'identifier si l'utilisateur est un A ou un B.
    - Si A, alors contenu de l'application "fourni"
    Sinon B, alors application au contenu "léger"

    Quelque chose de ce style : https://appsilon.com/user-authentica...dmin-packages/.




    Par ailleurs, si les utilisateurs sont définis (username, password) dans le corps du code R (je reprends l'exemple du site ci-dessus) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    demo_users <- list(
      list(
        username = "user1", 
        password= "pass1", 
        roles = list("basic", "admin")
      ),
      list(
        username = "user2", 
        password = "pass2", 
        roles = list("basic")
      )
    )
     
    ui <- shinyUI(fluidPage(
      div(class = "container", style = "padding: 4em",
        login_screen_ui('login_screen'),
        uiOutput("authorized_content")
      )
    ))
     
    server <- shinyServer(function(input, output) {
      users <- initialize_users(demo_users)
      callModule(login_screen, 'login_screen', users)
     
      output$authorized_content <- renderUI({
        if (!is.null(users$user()) {
          ... # application content
        }
      })
    })
    Est-il possible de sécuriser l'application app.R (d'un mot de passe) pour ne pas que les utilisateurs aient accès au contenu du code R (et donc des identifiants/mots de passes) mais lancer tout de même l'application ?

    Je sais que shinyapps.io (et certainement d'autres type ShinyServer) propose un service d'authentification + héberge l'application mais les données étant confidentielles, nous utilisons notre propre serveur et donc chaque utilisateur a R-Studio d'installé sur ses machines.

    En espérant avoir été clair,
    Merci d'avance

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    juin 2010
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : juin 2010
    Messages : 881
    Points : 2 613
    Points
    2 613

    Par défaut

    Bonjour,

    Il y a 2 problématiques ici : afficher dans l'appli des éléments selon certaines conditions (par exemple profil utilisateur) et gérer l'authentification d'une application Shiny.

    Pour l'aspect authentification ça va dépendre principalement des contraintes de votre SI.
    Pour héberger une application Shiny vous pouvez très bien vous passer de shinyapps.io et avoir votre propre "Shiny Server" installé sur votre propre serveur (pas de problème de confidentialité ici du coup). Il existe plusieurs versions de "Shiny Server" : la version "Pro" (et payante) dispose de fonctions de gestion de l'authentification, la version "Open Source" (et gratuite) n'en dispose pas. Cependant, avec la version "Shiny Server Open Source", il est tout à fait possible d'ajouter une authentification à son application Shiny (il existe divers techno/solutions pour cela, le choix dépendra des besoins et contraintes, par exemple : NGINX, Firebase, LDAP, ...).

    Egalement gros warning : il ne faut absolument pas définir les users et passwords dans le code R en dur

    Sinon, pour l'aspect affichage conditionnel, il est possible dans une application Shiny d'accéder aux informations de session utilisateur (par exemple via session$clientData) et d'afficher du contenu différent selon des conditions ensuite.

    En espérant que ces premiers éléments vous apportent des pistes, n'hésitez pas à affiner les questions sinon


    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2006, 00h21
  2. Réponses: 2
    Dernier message: 06/02/2006, 10h28
  3. Acess2k3: Bande noire sur zone de liste différente
    Par uloaccess dans le forum Access
    Réponses: 5
    Dernier message: 28/10/2005, 18h57
  4. [VB.NET] Authentification sur serveur mail ?
    Par Webman dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/05/2004, 20h24
  5. [C#] Authentification sur les fichiers Pdf
    Par ensisoft dans le forum ASP.NET
    Réponses: 14
    Dernier message: 04/05/2004, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo