如何使用 Owin/Open ID Connect 添加额外的 Azure AD 属性作为声明

How to add additional Azure AD Attributes as Claims with Owin/Open ID Connect

我想将其他 Azure AD 属性作为声明添加到由 "out-of-the-box" ASP.NET MVC 模板(即 app.UseOpenIdConnectAuthentication(...)

创建的 ClaimsPrincipal

我尝试在 SecurityTokenValidated 通知中实现类似的功能,如 this article 所示,但我 运行 似乎有点鸡生蛋还是蛋生鸡的问题我的场景:

我需要调用图形 API 来获取声明的其他用户属性,但我还没有(我不认为)在这个过程中的这个点上的令牌能够调用 API.

似乎我在这里遗漏了一些明显的东西。

这里有很多解决方案,但有两个很突出:

  1. 在 securitytokenvalidated 中,您确实有一个令牌,该令牌发送到您的应用程序以用于登录目的。您可以在 onbehalfof 流中使用它来获取图形的令牌,并在该通知中直接使用它。您可以参考示例 here,它适用于网络 API 但概念相同
  2. 您可以将您的应用配置为使用自己的应用程序身份访问图形。那么你可以随时得到那个令牌。参见 here