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:
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