Azure AD-返回令牌SPA应用程序中的角色和组

时间:2020-08-12 18:19:55

标签: azure authentication .net-core azure-active-directory roles

按照本教程的介绍,我在.Net Core 3.1中使用了隐式授予流进行身份验证和Web Api创建了一个Angular应用程序:https://github.com/Azure-Samples/ms-identity-javascript-angular-spa-aspnetcore-webapi

问题是:我需要在Bearer令牌内返回登录用户的角色和/或组以授权我的API,但我不能这样做。

我将角色添加到了“应用程序注册清单” here中,在Token Configuration菜单中添加了声明“组”,并在我的企业应用程序配置中将"User assignment required?"设置为“是”。

>

即使使用所有这些配置,我也无法返回承载令牌中的角色/组声明。

身份验证返回的令牌示例:

  {
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0",
  "sub": "AAAAAAAAAAAAAAAAAAAAABTOBMzzWB5LS36oSmQMgyc",
  "aud": "ecb5e87f-6f34-4f05-8e8d-8d6149178926",
  "exp": 1597173984,
  "iat": 1597170084,
  "nbf": 1597170084,
  "name": "name",
  "preferred_username": "email@outlook.com",
  "oid": "00000000-0000-0000-fa54-d112egdce65a",
  "tid": "9188040d-6c67-4c5b-b112-36a304b643ad",
  "azp": "edeb4b7d-9cac-4f3b-a21d-ead77993689e",
  "scp": "access_as_user",
  "azpacr": "0",
  "aio": "DYNhHjG*PSY1ceuC11yaLYcLta8zh49iA!l2UCbCsH9QlaUkEHVQ4paQFRmb!qv7J6yTbAQItGWDgCW9UgUipz4Xnma*DOkFFDNIZ5lkffThD*ie91XMzZIoPhUPwNHOt5dLrw3VASE2WCvJfvDFOQk$"
}

我做错什么了吗?还有其他方法可以授权SPA应用程序中的登录用户,返回具有角色和组的令牌并将其发送到Web Api吗?

2 个答案:

答案 0 :(得分:0)

您应将应用程序角色添加到服务应用程序(TodoListAPI)的清单中,而不是客户端应用程序(TodoListSPA)

别忘了将应用角色分配给用户。

这应该能够解决您的问题。

答案 1 :(得分:0)

您好,您需要转到 azure ad -> 应用注册 -> 您的应用 -> 进行配置 -> 添加组声明 -> 然后选择安全组复选框。节省。然后注销重新登录,应该是在组下。