很多身份管理实现除了使用组外,也会使用角色。它们有何不同?到目前为止,我还没有发现分离这两者的必要性的令人信服的用例。我读过的所有解释都很模糊。
您能否给出一个需要同时拥有角色和组的好例子?
很多身份管理实现除了使用组外,也会使用角色。它们有何不同?到目前为止,我还没有发现分离这两者的必要性的令人信服的用例。我读过的所有解释都很模糊。
您能否给出一个需要同时拥有角色和组的好例子?
角色是一组权限。
群组是一组人。
假设您有两个使用应用程序(A1)的人群(G1,G2),其中有两种类型的用户:管理员和只读用户。
您可以创建一个在A1上的管理员角色,定义其权限并将此角色授予G1。如果G2也需要这些权限,您不必逐个授予它们,只需向G2提供您为G1创建的相同角色即可。
人员 - 组 - 角色
示例:
如果创建了新的角色(例如review_leave_requests),则可以将其添加到需要该角色的所有组中。在仅具备角色的系统中,为所有需要该角色的人员添加该角色可能是一项繁琐的任务。
WindowsPrincipal.IsInRole(string role)
文档说明:“确定当前主体是否属于指定名称的Windows用户组。”我假设这意味着Windows是上述描述的一个例外?!? - Mr Moose所有评论中缺少的一个重要事实是,您可以将角色分配给个别用户,而不仅仅是组。
以下是一个使用案例: 一位大学物理教授在特定课程或一组课程中拥有“成绩测试”角色(也称为权限或特权)。然而,他决定休学一年,并希望另一位教师(或者可能是几位教师 - 一个组),即他的替代者,在同一组课程上拥有相同的角色(特权)。请注意,替代教师可能属于不同的用户组。管理员可以轻松地将相关角色分配给个别用户或用户组。 当然,在终身教授回来后,管理员可以撤销这些角色(特权)。
从系统角度来看,我们只关心用户(或一组用户)允许执行哪些方法。在执行受限制的方法之前,我们通过调用其他通常返回布尔值的方法来检查用户角色。
我们在应用程序实现方面的倾向是关注组和用户之间的关联,而不是实际的组。我见过一些实现方式(并且在早期也有过这样做的罪行),只检查组的名称。
这显然有些问题,因为每个应用程序都将定义其自己的权限,导致在系统中提高权限并不一致。
角色与角色具有明确的关联,并且这些关联会在一个中央位置进行更改。这变得更加一致,并可以由管理员为所有应用程序进行管理。
从概念上讲,组和角色的想法可以互换,但在实现上,这可能难以管理。
以下是更多信息: