【问题标题】:Scope/Role/Group Based Access Control基于范围/角色/组的访问控制
【发布时间】:2016-03-28 17:39:43
【问题描述】:

我正在使用 Azure Active Directory,并试图了解here 中描述的三种访问控制类型。每种方法的优缺点是什么,你什么时候使用它们:

  • 使用清单的oauth2Permissions 部分进行基于范围的访问控制,我可以在其中添加读取和写入权限,如下所示:

    { "adminConsentDescription": "代表登录用户允许应用程序读取 MyApi。", "adminConsentDisplayName": "MyApi 的读取权限", “id”:“56d944c0-f3aa-4f80-9472-9c1414383abf”, “已启用”:真, “类型”:“用户”, "userConsentDescription": "允许应用程序代表您对 MyApi 进行读取访问。", "userConsentDisplayName": "MyApi 的读取权限", “价值”:“read_my_api” }, { "adminConsentDescription": "允许应用程序代表登录用户对 MyApi 进行写访问。", "adminConsentDisplayName": "MyApi 的写入权限", “id”:“6d66a2bd-c8c7-4ee0-aef4-9424b51b4967”, “已启用”:真, “类型”:“用户”, "userConsentDescription": "允许应用程序代表您对 MyApi 进行写访问。", "userConsentDisplayName": "MyApi 的写入权限", “价值”:“write_my_api” }
  • 基于角色的访问控制 (RBAC) - 使用我的清单的 appRoles 部分。

  • 使用清单的groupMembershipClaims 部分进行基于组的访问控制。

【问题讨论】:

    标签: azure oauth oauth-2.0 azure-active-directory access-control


    【解决方案1】:

    我认为范围和角色/组之间最显着的区别是决定了允许客户做什么。

    • 资源范围由资源所有者(用户)通过同意屏幕授予应用程序。例如,客户端应用程序可以发布到我的时间线或查看我的朋友列表。
    • 用户角色和组由 Azure AD 目录的管理员分配。例如,用户可以提交费用报告或用户可以批准费用报告。

    当外部应用程序想要通过公开的 API 访问用户数据时,通常会使用范围。它们决定客户端应用程序可以做什么。

    基于角色或组的访问权限通常在应用程序中用于确定用户可以执行的操作。

    【讨论】:

      【解决方案2】:

      两个最受欢迎的:

      • 基于角色的访问控制 - 您正在为应用程序配置(在 Azure 门户内)中的用户或组分配角色。然后在代码中,您可以使用这些角色授权用户访问应用程序的某些部分。你可以这样做:if (User.IsInRole("SuperAdmin")) {...}
      • 使用 groupMembershipClaims 的基于组的访问控制 - 类似,但您要检查用户是否属于特定组

      【讨论】:

        猜你喜欢
        • 2010-09-11
        • 2013-08-28
        • 2013-05-08
        • 1970-01-01
        • 2011-03-18
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多