Scope/Role/Group 基于访问控制

Scope/Role/Group Based Access Control

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

最受欢迎的两个:

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

我认为范围和 roles/groups 之间最显着的区别是 决定允许客户端做什么。

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

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

通常在应用程序中使用基于角色或组的访问来确定用户可以做什么。