【问题标题】:How to configure Azure Web App to Web App authentication?如何配置 Azure Web App 到 Web App 身份验证?
【发布时间】:2021-02-03 08:43:06
【问题描述】:

我有两个 Azure Web 应用程序,一个是网站并充当前端,另一个是 API 并充当后端。我想为此解决方案添加身份验证,以便只有前端可以访问后端。为此,我使用 express 选项在后端 Web 应用程序上配置了 AAD 身份验证,该选项创建了一个配置有正确回复 URL、API 权限 (User.Read) 等的新 Azure AD 应用程序。然后导航到后端Web 应用 URL,我需要使用我的 Azure AD 凭据登录。

我需要采取哪些步骤来限制这种情况,以使我作为用户无法登录,并且只有前端 Web 应用可以向后端 API 进行身份验证?

例如,我可以在后端 API 的 Azure AD 应用程序上设置“授权客户端应用程序”。但是,我需要一个应用程序 ID 来添加授权客户端,并且我想为此使用前端 Web 应用程序的托管标识,而不是新的和额外的 Azure AD 应用程序。

知道怎么做吗?

【问题讨论】:

  • 我之前回答过类似的问题,供您参考。 stackoverflow.com/questions/65934246/…
  • 嗨@CarlZhao,感谢您的参考。我已将前端应用程序的应用程序 ID 添加到后端的“授权客户端应用程序”中。我还向后端应用程序添加了一个应用程序角色,并通过我的前端应用程序中的 API 权限添加了该角色。我是否也需要更新我的 C# 代码?当我导航到前端 URL 时,当前端尝试访问后端应用程序的 API 时,我仍然会看到一个登录屏幕。
  • 这很奇怪,它应该不再提示您登录。我找到了一个合适的示例,您可以看看它是否对您有帮助。 github.com/Azure-Samples/active-directory-dotnetcore-daemon-v2
  • 如果我的回答对您有帮助,您可以接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为已填充。)。这可能对其他社区有益成员。谢谢。

标签: azure azure-active-directory azure-web-app-service azure-authentication


【解决方案1】:

这很奇怪,如果仍然出现登录屏幕,则说明您的代码配置有问题,因为客户端凭据流不涉及用户交互。

我找到了一个有用的sample 供您参考,此示例应用程序展示了如何使用 Microsoft 身份平台在非交互式过程中从受保护的 Web API 访问数据。它使用OAuth 2 client credentials grant 获取访问令牌,然后用于调用Web API。

【讨论】:

  • 您好,卡尔,感谢您的参考。我已经关注了它,它的工作率为 50%。当我在 Postman 中执行请求以获取访问令牌并在对 API 的调用中使用它时,它可以工作。在 Azure Web App 上,授权/身份验证通过快速设置启用。但是,当我添加授权属性和HttpContext.ValidateAppRole("access_as_application"); 代码时,我在通过 Postman 调用 API 时收到 401,响应中没有提供其他信息。当我在 jwt.io 检查时,我的客户端应用程序在其令牌中具有正确的角色。知道有什么问题吗?
  • @Ronald 401 错误意味着你的 token 的 audience 与你的 api 不匹配。你是如何设置scope的?你可以使用 jwt.io 来解析你的访问令牌并提供截图吗?
猜你喜欢
  • 2018-07-12
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 2017-03-20
  • 2021-01-16
  • 1970-01-01
  • 2011-10-27
  • 2021-07-05
相关资源
最近更新 更多