c# - 应用程序如何验证来自 Azure Active Directory 的经过身份验证的 token ?

标签 c# azure active-directory

我有一个应用程序位于 WAF(Web 应用程序防火墙)后面。

应用程序正在使用 Microsoft Active Directory 进行身份验证。

步骤如下

  1. 用户尝试使用浏览器访问应用程序。
  2. WAF 层发现 REQUEST 未经身份验证,因此将其转发到 Azure Active Directory
  3. AAD 显示登录页面,用户输入用户名/密码/MFA
  4. 现在来自 AAD 的 token 发送回浏览器,并将其发送到后端应用程序

现在的问题是,

  • 后端应用程序如何验证此 token ?它是否需要与 AAD 的出站连接,还是通过 WAF 和浏览器与 AAD 通信?
  • 我是否需要有 NSG 规则(出站)才能与 AAD 对话?

enter image description here

最佳答案

这取决于您使用的身份验证流程。

  • 对于 Authorization code flow ,您的应用程序需要与 AAD 通信以兑换访问 token 的授权代码并通过反向 channel 刷新 token 。因此,您需要允许连接到 AAD (login.microsoftonline.com)。 Authorization code flow diagram

  • 对于 Implicit grant flow ,它是浏览器通过前端 channel 直接从AAD获取访问 token 。因此,在这种情况下,您不需要在后端 WAF 中加入白名单。 Implicit grant flow diagram

关于c# - 应用程序如何验证来自 Azure Active Directory 的经过身份验证的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65249780/

相关文章:

c# - 在 Visual Studio 的工具箱上应用过滤器?

c# - 启动进程时出现错误 C0000142

带有 Docker 容器的 Azure

azure - 如何使用 terraform 将 AKS 主日志发送到 eventhub?

asp.net-mvc-4 - ASP.NET 事件目录搜索

c# - 手动键入 sql 以映射到 c# 对象,就像 .Include ("") 方法

c# - ILArrays 作为 BeginInvoke 委托(delegate)的输入参数

azure - 无法更改当前处于消费层的 API 管理的定价层

node.js - NodeJS - 使用 Active Directory 进行身份验证

windows - 有没有办法为 Git 服务器使用 Windows 身份验证(Active Directory)?