问题描述
我有两个 Azure Web 应用程序,一个是网站并充当前端,另一个是 API 并充当后端。我想为此解决方案添加身份验证,以便只有前端可以访问后端。为此,我在后端 Web 应用程序上配置了 AAD 身份验证,并使用 express 选项创建了一个新的 Azure AD 应用程序,该应用程序配置了正确的回复 URL、API 权限 (User.Read) 等。然后导航到后端时Web 应用 URL,我需要使用我的 Azure AD 凭据登录。
我需要采取哪些步骤来限制这种情况,以便我作为用户无法登录并且只有前端 Web 应用程序可以向后端 API 进行身份验证?
比如我可以在后端API的Azure AD应用上设置“授权客户端应用”。但是,我需要一个应用程序 ID 来添加授权客户端,我想为此使用前端 Web 应用程序的托管标识,而不是新的和附加的 Azure AD 应用程序。
知道怎么做吗?
解决方法
这很奇怪,如果仍然出现登录屏幕,则说明您的代码配置有问题,因为客户端凭据流不涉及用户交互。
我找到了一个有用的 sample 供您参考,此示例应用程序展示了如何在非交互式过程中使用 Microsoft 标识平台从受保护的 Web API 访问数据。它使用 OAuth 2 client credentials grant 获取访问令牌,然后用于调用 Web API。