【发布时间】:2017-06-24 12:47:30
【问题描述】:
我们需要将 AzureAD 身份验证流程集成到我们现有的项目中。所以我在here 找到了示例代码。它基本上包含两个 Web 项目。一个 MVC 项目作为客户端和 Web API 作为服务器。
我们虽然使用来自 JWT 令牌的“upn”声明来唯一标识登录用户。我运行了示例代码并能够在 Azure AD 中对用户进行身份验证。当我在 jwt.io 检查从 AAD 获得的访问令牌时,声明部分不包含“upn”,但我能够使用ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn) 在客户端上检索“upn”。将此访问令牌添加为不记名授权标头并调用 Web api。在这里,我无法使用ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn) 检索“upn”声明。此声明的值为 null。我是否需要做任何额外的配置才能进入服务器端。到目前为止,我只能在客户端检索 upn。
【问题讨论】:
-
您需要展示您如何在 API 端配置身份验证。您获取的访问令牌是否适用于 API? (即其受众声明是否设置为 API 的应用程序 ID URI)
-
@juunas 是的,Audience 值是 API 的 AppID URI。正如我所说,它是从 Git 下载的示例项目。我刚刚更改了 Audience 和 TenantID 键的 web.config 值。
标签: asp.net-web-api jwt claims-based-identity azure-active-directory