asp.net MVC 网站的 Azure Active Directory 用户组标识



我实际上正在制作一个网站,在 asp.net MVC中,可以通过Azure Active Directory帐户登录访问女巫。这部分效果很好。但是现在,我想根据登录者创建角色,以便他们可以访问不同的内容。

我在我的 azure 活动目录中为管理员创建了一个组,我尝试了这个解决方案,但它并没有很好地工作:

if (principal.Claims.Any(x => x.Type == "groups" && x.Value == "id of the admin group")){ give admin rights}

有人知道更好的解决方案还是我的有什么问题?

提前谢谢。

我假设你已经创建了一个你正在使用的Azure AD"应用程序"。

诀窍是您需要修改应用程序的"清单"以允许您查询组。

门户中没有用于此目的的 UI,只需下载清单,进行更改,然后上传即可。充其量是笨拙的。

您要找到键"组成员资格声明"并将其设置为"安全组"。如果将其设置为全部,则还将获得电子邮件组。这里的问题是,您将获得所有用户组以及这些组所属的所有组的列表。在一家大公司,这可能很多!

接下来,您必须回电以获取组信息,这意味着获取令牌。

如果你在Visual Studio中生成了MVC应用,并告诉它你想使用Azure AD,它会粘在大部分管道中,但模板中存在一个错误。当它尝试保留令牌时,它将始终检索列表中的第一个令牌,而不是最新的令牌。这意味着您的演示今天有效,但明天失败...

可以在 ADAL 库中搜索信息以获取详细信息。我建议阅读 Vittorio Bertocci 的 Azure Active Directory for Web Applications 的现代身份验证,以真正了解其工作原理。

您可以参考一些教程 https://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-configure、https://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-manage-access-powershell/帮助您管理访问权限。

将角色分配给用户/组/应用...

如果您有任何问题,请保持联系。

最新更新