我设置了MVC 4应用程序,并在我们的Azure AD服务器上添加了身份验证,如下所述:
http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx
身份验证按预期工作.但是,我没有默认任何角色.应该创建几个AD组,我想使用它们通过MVC中的[Authorize]属性来限制应用程序.
我真的找不到一个好的地方,甚至开始搞清楚这一点.任何人都可以给我一个大纲或指向我一个很好的教程吗?
解决方法
首先,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]属性或其他授权逻辑中使用它.