asp.net-mvc – 如何通过MVC Azure AD身份验证从AD获取角色?

我设置了MVC 4应用程序,并在我们的Azure AD服务器上添加了身份验证,如下所述: http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx

身份验证按预期工作.但是,我没有认任何角色.应该创建几个AD组,我想使用它们通过MVC中的[Authorize]属性来限制应用程序.

我真的找不到一个好的地方,甚至开始搞清楚这一点.任何人都可以给我一个大纲或指向我一个很好的教程吗?

我应该提一下,我不是Azure帐户的管理员,因此如果需要进行任何设置,我需要告诉管理员该怎么做.

解决方法

首先,Azure AD返回的令牌当前不包含角色或组的声明,因此您需要从Graph API获取它们.其次,Graph API返回的Azure AD中的角色不一定用于ISV / LoB应用程序,通常您应该使用安全组进行授权.要执行授权,您应该使用Graph API中的checkMemberGroups或getMemberGroups操作,这些操作是可传递的并且对此有效.

如果您按顺序查看以下资源,我认为您的问题将得到解答.您将学习如何对Graph进行身份验证,调用它,以及如何配置应用程序以使用组操作的结果来执行授权:

> Using the Graph API to Query Windows Azure AD – 这是您完成Web SSO之后的第二个演练.
> Authorization with Windows Azure Active Directory
> MVC Sample App for Azure AD Graph
> Blog post describing checkMemberGroups and getMemberGroups
> How do I get role and group membership claims for users signing in via Windows Azure AD? – 关于身份验证方法和管理用户/组的UI,这个过时了,但它仍然有用.请特别注意自定义ClaimsAuthenticationManager部分,它可以让您了解如何尽早将角色/组数据注入ClaimsPrincipal对象,以便可以在[Authorize]属性或其他授权逻辑中使用它.

相关文章

ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的...
在之前的ASP.NET是如何在IIS下工作的这篇文章中介绍了ASP.NE...
这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...