【问题标题】:Application-specific permissions with Azure AD RBACAzure AD RBAC 的应用程序特定权限
【发布时间】:2021-01-14 21:53:27
【问题描述】:

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

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

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

我是否从根本上误解了 Azure RBAC 的工作原理,或者它用于管理什么?谁能指出包含上述权限的 Azure 角色定义示例,或者指出我如何设置这些权限的文档?

【问题讨论】:

  • 你在app-secific permission,网络应用程序中的app 是什么意思?广告应用?
  • “应用程序”是指在 Web 应用程序或 API 中具体化的抽象业务逻辑。问我问题的另一种方法是:实现业务逻辑权限的正确方法是什么(与 Azure 或 Azure AD 级别的权限如“读取此 blob 存储容器”相反)?

标签: azure azure-active-directory


【解决方案1】:

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

API 权限: 2 种类型。

  1. 委派权限适用于以登录用户身份访问 Web API 的客户端应用,其访问权限应仅限于您在下一步中选择的权限。

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

  2. 应用程序权限适用于需要以自身身份访问 Web API 的服务或守护程序类型应用程序,无需用户交互登录或同意。除非您为 Web API 定义了应用程序角色,否则此选项将被禁用。

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

当您想在访问令牌中返回权限时,您应该配置 API 权限。当应用程序使用令牌时,它会根据令牌中存在的权限做出授权决定。

角色分配:

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

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

请参考以下文章以获取详细的示例说明。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2022-10-01
    • 2020-04-27
    相关资源
    最近更新 更多