Azure移动应用服务 - Cordova,带有C#后端,使用Azure AD。如何检查角色?

时间:2016-05-03 04:51:39

标签: azure-web-sites azure-mobile-services

我已经使用Azure身份验证,并且可以使用style.css属性like in the documentation限制对控制器的访问。到目前为止,我喜欢它。

但是,我需要让一些用户提升priveleges,我们通常会使用AD安全组。 “好极了!”,我想,“我只会使用[Authorize]”,我可以重新开发应用程序!

嗯,我错了。两天后,我刚刚走了一圈。我得出的结论是,AAD没有提供角色声明,因此ClaimsPrincipal不包含角色,因此无法向authorize属性提供信息。

我看到很多关于此的旧信息(Azure移动应用程序是相当新的)并且它在水域中相当混乱。当前的解决方案是查询AD Graph API以获取角色信息吗?

或者,或许,编写一个自定义属性来调用[Authorize(Roles = "AD Security Group"]端点来获取角色信息?

我很困惑!有人请指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您需要做一些工作才能让AAD小组参与索赔。我wrote a blog关于此事。虽然它在Node中实现授权,但AAD端的配置是相同的。

就进入授权角色而言,Azure Mobile Apps Server SDK目前不会为您执行此操作。 (我认为这是一个好主意,所以请随意在our GitHub repository

上提出问题

如果您自己编写属性,我会使用GetAppServiceIdentityAsync<>()方法来获取声明 - 不要自己查询/.auth/me。