【问题标题】:MVC Azure AD Authorization RolesMVC Azure AD 授权角色
【发布时间】:2015-01-09 15:21:55
【问题描述】:

我在 MVC 中使用 [Authorize] 属性时遇到问题。

以下是采取的步骤:

  1. 创建名为 TestAD1 的 Azure Active Directory
  2. 在 AD 中插入多个用户
  3. 创建一个名为TestGroup1的组
  4. 使用 Visual Studio 2013 创建一个以Windows Authentication 作为身份验证方法的 MVC 项目
  5. 在控制器方法上方插入[Authorize]
  6. 发布网站
  7. 在 azure 门户中配置网站以使用 azure Active Directory 作为身份验证

这些步骤工作正常,一切都像预期的那样问题是当我将授权属性更改为:

[Authorize(Roles=@"TestAD1\TestGroup1")]

我总是收到“您无权查看此目录或页面。”

我知道以下解决方案,但它不符合我的项目需求: * 写我自己的RoleProvider * 使用 web.config 管理权限

【问题讨论】:

  • 我不相信在角色中翻译的安全组带有 AD 租户名称,就像在正常 Windows 身份验证中一样。将您的属性更改为[Authorize(Roles="TestGroup1")],然后重试。此外,如果您要部署到 Cloud,请不要设置 Windows Authentication
  • 您好 astaykov,感谢您的回复,我尝试了不同的 Roles="***" 组合,但都不起作用,我应该在云中使用哪种身份验证?

标签: asp.net-mvc-4 azure authorization azure-web-app-service azure-active-directory


【解决方案1】:

Luka,我们最近为 Azure AD 集成应用程序启用了角色声明。在此处获取详细信息:http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/。这是一个 ASP.NET Web 应用程序,它使用 Azure AD 应用角色通过 [Authorize] 属性执行授权:https://github.com/dushyantgill/VipSwapper/tree/master/TrainingPoint

Regd 您当前的设置,Azure AD 中的安全组名称不会作为角色声明传输。 Windows 身份验证也无法将云服务的身份验证与 Azure AD 挂钩。

希望这会有所帮助。

如果您遇到困难,请告诉我。

【讨论】:

  • 为什么应用使用自定义授权属性?为什么你不能只使用内置的[Authorize(Roles = "")] 呢?
猜你喜欢
  • 1970-01-01
  • 2020-10-19
  • 2014-05-08
  • 2018-11-14
  • 2010-10-21
  • 2023-01-21
  • 1970-01-01
  • 2021-09-04
  • 2017-09-16
相关资源
最近更新 更多