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

标签 azure azure-active-directory

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

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

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

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

最佳答案

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

API 权限: 2 种类型。

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

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

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

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

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

角色分配:

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

关于azure - Azure AD RBAC 的应用程序特定权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65727429/

相关文章:

c# - 在 C# 中更快地调用 PowerShell cmdlet

azure - 通过 PowerShell 检索 Azure AD 应用程序的 "API Permissions"

c# - ASP.Net Web Api响应未经授权的访问

c# - 可执行文件可以作为 blob 触发的 Azure 函数的一部分运行吗?

Azure functionapp 发布在 'Syncing triggers...' 上失败

azure - 是否可以在 Azure VIP 交换期间更改连接字符串

asp.net-core - 如何在 Azure Web Apps 中将 redirect_uri 协议(protocol)设置为 HTTPS

azure - 在 Azure 权限的 IAM 中找不到集合管理员角色

node.js - 使用 Azure AD 登录我的 Node.js 应用程序后出现隐秘的 "client does not exist"错误

c# - 如何使用 LINQ 使用 Azure AD 图形 API 客户端库 2.0 查找具有特定许可证的 Azure AD 用户