我已经使用了Azure身份验证,并且可以限制对使用[Authorize]属性就像文件里的的控制器的访问。到目前为止我喜欢它。
我将需要一些用户的提升priveleges,然而,我们通常会使用AD安全组。“太棒了!”,我想,“我只需要使用[Authorize(Roles = "AD Security Group"]”,我就可以重新开发这个应用了!
我错了。两天后,我就绕了一圈。我得出的结论是,角色声明不是由AAD提供的,因此ClaimsPrincipal不包含角色,因此不能向授权属性提供信息。
我看到了很多关于这方面的旧信息(Azure是非常新的),它在很大程度上混水摸鱼。当前的解决方案是查询API以获取角色信息吗?
或者编写一个自定义属性来调用/.auth/me端点来获取角色信息?
我太困惑了!谁能帮我指出正确的方向吗?
发布于 2016-05-03 16:54:29
你需要做一些工作才能让AAD小组参与到索赔中来。我写博客关于这件事。虽然它在Node中实现了授权,但AAD端的配置是相同的。
就将其纳入授权角色而言,Azure Mobile Apps Server SDK目前不为您执行此操作。(我认为这是个好主意,所以可以随意在我们的GitHub库上提交一个问题)
如果您自己编写属性,我将使用GetAppServiceIdentityAsync<>()方法来获取声明--不要自己查询/..auth/me。
https://stackoverflow.com/questions/36995840
复制相似问题