gpt4 book ai didi

shiny - R Shiny - R Shiny 服务器开源的 WebSEAL 身份验证

转载 作者:行者123 更新时间:2023-12-01 08:18:12 27 4
gpt4 key购买 nike

据我了解,Shiny Server 的开源版本不支持身份验证。

我们有一个环境使用 WebSEAL 代理服务来验证用户并将他们的访问引导到 Web 应用程序。

我们希望向经过身份验证的用户公开 Shinyapp,其内容取决于用户组成员身份。 WebSEAL 能够在 HTTP header 中设置 iv_useriv_group 变量以通过联结传递到 shinyapp,但开源 Shiny Server 似乎无法访问它们(即通过 session$clientData 对象)。

我想知道是否有人为开源 Shiny Server 应用程序找到一种方法来访问 HTTP header 以确定用户和组。

最佳答案

如果您只想访问 HTTP header ,UI 可以是一个函数,该函数接受实现 Rook specification 的请求对象的单个参数。 .

library(shiny)

ui <- function(request) {
print(as.list(request))
# get HTTP headers like request$HTTP_HEADER_NAME (all caps)

fluidPage(
tags$pre(
paste(capture.output(as.list(request)), collapse = "\n")
)
)
}

server <- function(input, output) {
}

shinyApp(ui, server)

根据 HTTP header 提供不同页面的一种方法可能是这样的 -

unauthorizedPage <- function() {
"Unauthorized"
}

memberPage <- function() {
fluidPage(
"Member page"
)
}

ui <- function(request) {
# serve memberPage() if request contains header `iv_group: member`
# otherwise serve unauthorizedPage()
if (!identical(request$HTTP_IV_GROUP, "member"))
return(unauthorizedPage())

memberPage()
}

server <- function(input, output) {
}

shinyApp(ui, server)

关于shiny - R Shiny - R Shiny 服务器开源的 WebSEAL 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48651824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com