gpt4 book ai didi

r - 如何让 Shiny-server 使用 Azure Active Directory

转载 作者:行者123 更新时间:2023-12-04 01:06:34 24 4
gpt4 key购买 nike

我正在使用 Azure Webapps for Containers 来托管 R Shiny-Server。我想使用 Azure Active Directory 对登录到应用程序的用户进行身份验证和授权。

我正在使用 rocker/shiny来自 dockerhub 的图像,并且图像可以轻松构建和运行。但是,当我打开 Active Directory 时,该应用程序不再工作。任何关于可能出错的提示和线索都会有很大帮助。

Working

Not working

最佳答案

我遇到了同样的“空”页面问题,因为在激活 AD 身份验证时,浏览器加载静态文件返回 HTTP 400。我在最新版本的 Shiny 服务器 (v1.5.12.933) 和 Shiny (1.4.0) 上的 Azure App Services 上的 docker 容器中有一个 Shiny 应用程序。

这意味着这里描述的问题https://community.rstudio.com/t/shiny-v1-3-known-regressions-and-serious-issues/28180/4我首先怀疑不是原因。

没有 AD 身份验证页面正确显示。负责 AD 身份验证的 Azure 代理会注入(inject)一些 HTTP header 和 cookie。我通过 tcpflow -p -c -i eth0 port 3838 在服务器端检查了完整的 HTTP 请求并查看了底层 R 库 httpuv它负责与 Shiny 服务器的 HTTP 连接。

在搜索此库中返回 HTTP 400 代码的位置时,我发现
https://github.com/rstudio/httpuv/blob/master/src/webapplication.cpp
和下面的代码片段

// Make sure that there's no message body.
if (pRequest->hasHeader("Content-Length") || pRequest->hasHeader("Transfer-Encoding")) {
return error_response(pRequest, 400);
}

而到达服务器的请求具有标题 Content-Length: 0如果 AD 身份验证关闭,则不存在。

我为 httpuv 创建了一个修复和 PR , 见问题 https://github.com/rstudio/httpuv/issues/247 .

只要它没有合并到他们的仓库中,您就可以使用它。

赶紧跑
R -e 'library(devtools); install_github("LHaferkamp/httpuv")'
在你的 Dockerfile

关于r - 如何让 Shiny-server 使用 Azure Active Directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797036/

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