在使用 AAD 的 ASP.NET MVC 应用程序中使用目录角色进行授权

Using Directory Roles for authorization in ASP.NET MVC application using AAD

我正在开发 ASP.NET MVC 5 应用程序,它依赖于使用 Azure Active Directory 的多租户身份验证。我通过添加 AuthorizeAttribute 过滤器在全球范围内进行了授权设置。现在我希望该应用程序只能由属于特定 目录角色 的用户访问(具体来说是全局管理员和用户管理员)。执行此操作的最佳方法是什么?

主体中的角色仅包含特定于应用程序的角色。我希望身份声明之一能够证明标准目录角色。但唯一相关的声明是 "groups" 声明,它告诉我用户属于哪些目录角色和应用程序组。然后我需要查询每个组对象 ID 以查看其中一个是否是我想要允许的目录角色。

另外,有没有办法通过将其添加为过滤器来全局执行此操作?

Varun,在接下来的几周内,我们计划在令牌中添加一个新的声明,其中包含用户所属目录角色的众所周知的标识符。 Stay tuned 为此。

在那之前,最好的选择是在登录时查询图形 API,determine the directory roles the user belongs to,并在声明主体中注入角色类型的声明。这将启用授权属性过滤器。

希望对您有所帮助。