应用程序如何验证来自 Azure Active Directory 的经过身份验证的令牌?

How does application validate the authenticated token from Azure Active Directory?

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

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

步骤如下

  1. 用户尝试使用浏览器访问应用程序。
  2. WAF 层看到 REQUEST 未通过身份验证,因此将其转发到 Azure Active Directory
  3. AAD 显示登录页面,用户输入 username/password/MFA
  4. 现在令牌从 AAD 发送回浏览器,它将被发送到后端应用程序

现在的问题是,

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

  • 对于 Authorization code flow,您的应用程序需要与 AAD 通信以通过后台通道兑换访问令牌和刷新令牌的授权代码。因此,您需要允许连接到 AAD (login.microsoftonline.com)。

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

我已经使用 NSG 中的 service tag 功能解决了这个问题。后端应用程序需要能够访问 AAD 才能验证访问令牌。

我添加了带有目的地 Service Tag Azure Active Directory 的出站规则,如下所示。

这是link:https://docs.microsoft.com/en-us/azure/virtual-network/service-tags-overview