knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Esta viñeta proporciona un tutorial paso a paso sobre cómo asegurar una aplicación Shiny utilizando la autenticación de Google a través del paquete R tapLock. tapLock simplifica la integración de OpenID Connect y OAuth 2.0 en aplicaciones Shiny, asegurando una robusta seguridad con un esfuerzo mínimo de codificación.
Antes de proceder, asegúrate de tener lo siguiente: - Un conocimiento básico de R y Shiny. - Una aplicación Shiny lista para ser desplegada. - Acceso a Google Developer Console para las credenciales OAuth. - (Opcional) Un servidor con HTTPS habilitado.
Instala tapLock desde GitHub usando el paquete pak
:
install.packages("tapLock")
Authorized JavaScript origins
en la URL de tu aplicación Shiny.Authorized redirect URIs
en la URL de tu aplicación Shiny con
el sufijo /login
.client_id
y el client_secret
.Carga tapLock y configura la autenticación:
library(taplock) auth_config <- new_openid_config( provider = "google", client_id = Sys.getenv("GOOGLE_CLIENT_ID"), client_secret = Sys.getenv("GOOGLE_CLIENT_SECRET"), app_url = Sys.getenv("SHINY_APP_URL") )
Reemplaza GOOGLE_CLIENT_ID
, GOOGLE_CLIENT_SECRET
, y SHINY_APP_URL
con tus credenciales reales y la URL de tu aplicación en tus variables de entorno.
Modifica tu aplicación Shiny para usar sso_shiny_app
:
library(shiny) library(tapLock) # Configuración de autenticación auth_config <- new_openid_config( provider = "google", client_id = Sys.getenv("GOOGLE_CLIENT_ID"), client_secret = Sys.getenv("GOOGLE_CLIENT_SECRET"), app_url = Sys.getenv("SHINY_APP_URL") ) # UI ui <- fluidPage( tags$h1("Bienvenido a la Aplicación Shiny Segura"), textOutput("userInfo") ) # Server server <- function(input, output, session) { output$userInfo <- renderText({ user_email <- get_token_field(token(), "email") glue::glue("Conectado como: {user_email}") }) } # Asegurar aplicación Shiny con tapLock sso_shiny_app(auth_config, ui, server)
Despliega tu aplicación Shiny como lo harías normalmente. El paquete tapLock maneja el proceso de autenticación. Recomendamos desplegar tu aplicación con una solución como Shiny Server (Open Source o Pro) o con faucet. Soluciones como Posit Connect ya incluyen autenticación y no requieren tapLock.
Siguiendo estos pasos, has asegurado con éxito tu aplicación Shiny con autenticación de Google utilizando tapLock. Esto asegura que solo los usuarios autenticados puedan acceder a tu aplicación, mejorando su seguridad y privacidad.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.