【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?
问题描述
在App Service Authentication 中配置 Azure AD 注册的应用信息后,根据官方文档,可以让前端应用实现用户 AAD 登录,然后通过前端应用获取的Token,来访问后端的API应用。
前端用户登录 ====》 获取访问前端应用Token ====》调用后端API时候传递Token到后端服务 ====》 API 验证 Token ====》授权提供API数据
这一目的是为了实现前后端分离后,前端应用的权限也可以访问后端服务。在中国区的App Service中是否可以配置呢?
问题解答
是可以实现的。可以按照以下文档开启针对前端应用的身份验证和授权。教程:在 Azure 应用服务中对用户进行端到端身份验证和授权。
在配置过程中,需要的注意点有二:
1) 在操作“对应用服务进行配置,使之返回可用的访问令牌”时,因为中国区暂时没有Azure Resource Explorer门户,所以只能通过REST API的形式来配置。
替代的操作办法参考如下:
https://management.chinacloudapi.cn/subscriptions/<subscriptionid>/resourceGroups/< resourceGroups >/providers/microsoft.web/sites/<sitename>/config/authsettings/?api-version=2020-12-01
body 信息:
{
"properties": {
"additionalLoginParams": ["response_type=code id_token","resource=xxxxss-ssss5-43ssse-bsssse-xxxxxxxxxxxx"]
}
}
中国区无 Azure Resource Explorer。

2)在前端应用中向后端传递Token
在配置前端应用访问后端接口的代码部分:需要显示的传递Token。详细可借鉴:

参考资料
Authenticate and authorize users end-to-end in Azure App Service:https://docs.microsoft.com/en-us/azure/app-service/tutorial-auth-aad?pivots=platform-linux#call-api-securely-from-server-code
【Azure 应用服务】能否通过 Authentication 模块配置 Azure AD 保护 API 应用?的更多相关文章
- 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
问题描述 在Azure App Service上部署了站点,想要在网站的响应头中加一个字段(Cache-Control),并设置为固定值(Cache-Control:no-store) 效果类似于本地 ...
- 【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理
问题描述 通过Docker Desktop for Linux,配置Nginx镜像后,自定义nginx.conf文件,修改启动目录和对 /out 路径的反向代理到博客园的博文地址 (https://w ...
- 为 Azure 应用服务配置连续部署工作流
本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中完成的所有操作均符合1元试用条件. 本快速入门介绍了如何将应用服务 GitHub 集成以实现连续部署工作流.在本教程中 ...
- 【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
问题描述 总所周知,Azure App Service服务会默认提供一个 ***.chinacloudsites.cn为后缀的域名,但是该域名由上海蓝云网络科技有限公司备案,仅用于向其客户提供 Azu ...
- ASP.NET Core3.1使用IdentityServer4中间件系列随笔(二):创建API项目,配置IdentityServer保护API资源
配套源码:https://gitee.com/jardeng/IdentitySolution 接上一篇<ASP.NET Core3.1使用IdentityServer4中间件系列随笔(一):搭 ...
- 【Azure 应用服务】App Service中,为Java应用配置自定义错误页面,禁用DELETE, PUT方法
问题定义 使用Azure应用服务(App Service),部署Java应用,使用Tomcat容器,如何自定义错误页面呢?同时禁用DELETE, PUT方法 解决办法 如何自定义错误页面呢?需要在 J ...
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?
问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...
- 【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
问题描述 在上篇博文"[Azure 应用服务]App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)"中,实现了通过 HT ...
- 【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD登录并获取AccessToken -- cca.acquireTokenByCode(tokenRequest)
问题描述 在上一篇博文 "[Azure 应用服务]NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤"中, ...
随机推荐
- elementUI(datepicker)限制日日期的选择
指定起始日期,后选的将会受到先选的限制 参考地址 https://www.jianshu.com/p/c59c8ef6c500 实现方法不难,利用了 change 事件,动态改变 picker-opt ...
- 如何将数据库中的树结构表导出EXCEL
我们常常会遇到这样的需求,将数据库中父子结构的表数据导出作为表头 我们实现的开发中就遇到这样的需求:将所有用户的权限表导出,权限作为表头 思路:sql求出每一条权限数据应该跨的行数,在代码中填充这些数 ...
- c++ container容器(string,vector,map,queue,stack等等)
STL和c++标准库 标准模板库STL部分包含在C++标准库中的软件库. c++标准库:即以std::开头,但是部分编译器厂商也会把STL的内容放在std:: namespace里面 由于一个常见的误 ...
- 4G5G和上网带宽与下载速度的换算方法
前言 2020年5G越来越火热,而且运营商多次推出免费宽带升级,免费升级到100M,20M升级50M等等.很多人疑惑我们平时 的下载速度也就几百K或者有时候能上1M,但是就算升级到10M的宽带,也从来 ...
- Go语言的原子操作atomic
atomic 原子操作 Go中原子操作的支持 CompareAndSwap(CAS) Swap(交换) Add(增加或减少) Load(原子读取) Store(原子写入) 原子操作与互斥锁的区别 at ...
- 解决Edge浏览器提示“此网站已被人举报不安全”
今天下午微软旗下的 Microsoft Edge 浏览器将百度搜索的跳转域名 (*.baidu.com/link?url=*) 封杀,百度搜索首页可以打开,但搜索任何关键词点击搜索结果都会被拦截. 当 ...
- 知识图谱项目实战(一):瑞金医院MMC人工智能辅助构建知识图谱--初赛实体识别【1】
1.技术背景&赛题介绍: A Labeled Chinese Dataset for Diabetes中文糖尿病标注数据集详情请见. 数据集链接:瑞金医院MMC人工智能辅助构建知识数据源:知识 ...
- Python 检测PE所启用保护方式
Python 通过pywin32模块调用WindowsAPI接口,实现对特定进程加载模块的枚举输出并检测该PE程序模块所启用的保护方式,此处枚举输出的是当前正在运行进程所加载模块的DLL模块信息,需要 ...
- C# WinForm线程里操作控件
做winform程序,避免不了的要在线程里控制窗体上的控件,直接在子线程里操作控件会报错"线程间操作无效,从不是创建控件***的线程访问它". 解决方法: private void ...
- 关于JAVA泛型数组类型擦除引发的问题及解决方案
先看如下一个DEMO示例代码:(其中doBatchGet被子类重写了1次) public abstract class BaseDemoService<T> { public String ...