肖恩的回答有点过时了。您现在可以配置 Azure AD,以便它将在 JWT 令牌中包含组或角色,以便将其包含在ClaimsPrincipal.Current.Claims
标准[Authorize(Roles = "yourRoleName")]
属性中以便正常工作。
这里是介绍帖。这基本上说你有两个选择:
使用组声明 - 您需要更改groupMembershipClaims
应用程序清单中的值,稍后在应用程序中您可以检查ClaimsPrincipal.Current.FindFirst("groups").Value
以查看组用户是什么(您只获得组 ID)。您可以编写自己的 Authorize 属性来使用它。更多信息
为您的应用程序定义角色,然后使用普通代码测试用户是否在角色中:
[PrincipalPermission(SecurityAction.Demand, Role = “yourRoleName”)]
[Authorize(Roles = “yourRoleName”)]
if (ClaimsPrincipal.Current.IsInRole(“yourRoleName”)) { //do something }
您需要在应用的清单中编辑角色。更多信息在这里和这里。需要在清单中设置的值在此处描述
真正奇怪的是,您不能从 Azure 网页为组分配多个角色。为此,您需要使用 azure graph api。
如果Users and Groups
在 Azure 门户中看不到选项卡,则可能需要 Azure AD 基本版或高级版。如果您正在使用免费的 azure 订阅,您可以使用免费的 Azure AD Premium 试用版来测试内容。