我已经使用Azure身份验证,并且可以使用style.css
属性like in the documentation限制对控制器的访问。到目前为止,我喜欢它。
但是,我需要让一些用户提升priveleges,我们通常会使用AD安全组。 “好极了!”,我想,“我只会使用[Authorize]
”,我可以重新开发应用程序!
嗯,我错了。两天后,我刚刚走了一圈。我得出的结论是,AAD没有提供角色声明,因此ClaimsPrincipal不包含角色,因此无法向authorize属性提供信息。
我看到很多关于此的旧信息(Azure移动应用程序是相当新的)并且它在水域中相当混乱。当前的解决方案是查询AD Graph API以获取角色信息吗?
或者,或许,编写一个自定义属性来调用[Authorize(Roles = "AD Security Group"]
端点来获取角色信息?
我很困惑!有人请指出我正确的方向吗?
答案 0 :(得分:2)
您需要做一些工作才能让AAD小组参与索赔。我wrote a blog关于此事。虽然它在Node中实现授权,但AAD端的配置是相同的。
就进入授权角色而言,Azure Mobile Apps Server SDK目前不会为您执行此操作。 (我认为这是一个好主意,所以请随意在our GitHub repository)
上提出问题如果您自己编写属性,我会使用GetAppServiceIdentityAsync<>()方法来获取声明 - 不要自己查询/.auth/me。