Azure AD RBAC的特定于应用程序的权限



Azure的RBAC工具和功能是否适合描述和执行特定于应用程序的用户权限?

我所看到的是Azure的RBAC功能似乎涉及到管理Azure资源:BLOB服务、存储帐户、应用程序服务等。

但是我没有看到Azure RBAC被用来管理应用程序(或域)特定权限的例子,比如"允许用户批准购买此小部件";或"允许用户将这些项目分类为Foo、Bar或bazs",或"允许用户仅从这些公司部门查看财务数据"。

我是否从根本上误解了Azure RBAC的工作原理,或者它用于管理什么?有没有人能指出一些Azure角色定义的例子,其中包括上面提到的权限,或者指出如何设置这些权限的文档?

我相信您正在寻找可以通过在AD中注册的应用程序中配置API权限来实现的应用程序特定权限。如果我的理解有误,请纠正我。所以API权限和角色分配的区别如下:

API权限:2类型。

  1. 委托权限适用于以登录用户身份访问web API的客户端应用程序,其访问权限应限制为您在下一步中选择的权限。

    委托权限在用户上下文下进行身份验证时使用,并在令牌的范围声明中返回。

  2. 应用程序权限用于服务或守护程序类型的应用程序,这些应用程序需要以自己的身份访问web API,而无需用户交互登录或同意。除非你已经为你的web API定义了应用程序角色,否则这个选项是禁用的。

    App权限在应用程序(服务主体)上下文中进行身份验证时使用,并在角色声明中返回。例如,如果您有一个web应用程序,您可以将其配置为允许用户访问,如果范围声明包含read,否则拒绝访问。或者仅当roles claim包含write时才授予应用程序写访问权限。

当你想在Access令牌中返回权限时,你应该配置API Permissions。当应用程序使用令牌时,它根据令牌中存在的权限做出授权决策。

角色分配:

RBAC是用于管理对Azure资源的访问的授权系统。使用RBAC时,管理员将权限授予角色,而不是单个用户或组。然后,管理员可以为不同的用户和组分配角色,以控制谁可以访问哪些内容和功能。

角色分配用于向Azure资源上的用户/服务主体分配权限。在这种情况下,授权是由Azure完成的,而不是由最终应用程序完成的,后者发生在API权限的情况下。

请参考以下文章,以获得详细的示例解释。

https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps

https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-how-applications-are-added

最新更新