首页 > 解决方案 > Azure AD - 在令牌 SPA 应用程序中返回角色和组

问题描述

我按照本教程在 .Net Core 3.1 中创建了一个带有隐式授权流的 Angular 应用程序和一个 Web Api:https ://github.com/Azure-Samples/ms-identity-javascript-angular-spa-aspnetcore-webapi

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

我在此处将角色添加到应用注册清单中,在令牌配置菜单中添加了声明“组”并设置“需要用户分配?” 在我的企业应用程序配置中是的。

即使使用所有这些配置,我也无法在不记名令牌中返回角色/组声明。

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

  {
  "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?

标签: azureauthentication.net-coreazure-active-directoryroles

解决方案


嗨,您需要转到 azure 广告 -> 应用注册 -> 您的应用 -> 采用配置 -> 添加组声明 -> 然后选择安全组复选框。节省。然后注销再次登录,应该在组下。


推荐阅读