如何在Azure App Services部署集成Azure Active Directory的R Shiny应用?
部署R Shiny应用到Azure App Service并集成Azure AD认证流程
一、先把Shiny应用准备好
- 确认你的应用代码完整:要有
app.R(或者拆分的ui.R+server.R),所有依赖的R包、本地数据文件都放在项目根目录里。 - 锁定依赖版本:在R Studio里运行
renv::init(),生成renv.lock文件,避免部署时因为版本差异出问题。 - 根目录建个空的
requirements.txt文件——App Service的R运行时基于Python环境,这个文件是必填项,不用填内容也行。
二、创建Azure App Service实例
- 登录Azure门户,搜索「Web App」新建实例:
- 选好订阅和资源组,给应用起个全局唯一的名字。
- 发布方式选「代码」,运行时堆栈挑你使用的R版本(比如R 4.2),操作系统选Linux(对R的支持更稳定)。
- 定价层按需选择,测试用免费层即可。
- 实例创建完成后,进入「配置」>「通用设置」,把启动命令改成:
R -e "shiny::runApp('/home/site/wwwroot', host='0.0.0.0', port=80)"——告诉App Service如何启动你的Shiny应用。
三、把应用部署到App Service
方式1:本地Git推送
- 进入App Service的「部署中心」,选择「本地Git」作为部署源,复制生成的Git地址。
- 在本地项目根目录里,先初始化Git(未初始化过的话):
git init,然后执行git add .、git commit -m "首次部署"。 - 添加Azure远程仓库:
git remote add azure <刚才复制的Git URL>,最后执行git push azure master——推送完成后App Service会自动构建并运行应用。
方式2:Azure CLI一键部署
- 安装Azure CLI并登录:
az login。 - 转到本地项目根目录,运行命令:
az webapp up --name <你的App Service名称> --resource-group <你的资源组名> --runtime "R:4.2"——这条命令会自动打包代码并部署到指定的App Service。
四、集成Azure AD认证
- 回到App Service的门户页面,点击「Authentication」(认证)选项卡。
- 点击「添加身份提供者」,选择「Microsoft」。
- 配置身份提供者:
- 选择「创建新的Azure AD应用」,给它起个名字(和App Service同名即可)。
- 重定向URI会自动填充为
https://<你的App Service名>.azurewebsites.net/.auth/login/aad/callback,直接确认即可。 - 权限保持默认,有特殊需求再额外添加。
- 调整认证规则:
- 「未认证时的操作」选择「登录」,这样用户访问应用时会直接跳转到AAD登录页面。
- 可以设置受保护路径,默认是整个应用,也可以指定部分路径需要认证。
- 保存设置,等待几分钟让配置生效。
五、验证效果
- 打开你的App Service地址:
https://<你的App Service名>.azurewebsites.net,应该会自动跳转到Azure AD登录界面,使用授权的账号登录后就能正常使用Shiny应用了。 - 测试应用的各项功能,确认所有依赖包都已正确安装并运行正常。
内容的提问来源于stack exchange,提问作者alif shaikh
相关产品推荐
相关产品推荐

