【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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!