我好像很久之前就说要写一篇专门介绍新的SharePoint权限系统的博客文章……今天就给大家尽量详细的介绍一把,我也争取把这个“补习班”系列继续下去……
说到权限控制,其实包含了这样几个内容:“谁”对“什么内容”有“什么权限”。
在SharePoint里,“谁”用“User Token”来代表,“什么内容”其实就是权限控制范围“Scope”,而“什么权限”(权限级别,Role Definitions)则是一组对网站内容的具体操作(比如,读取、新建、修改、管理等等)。
看看这张图:
“谁”对“什么内容”有“什么权限”(User Token):
AD 里的用户或用户组(当然也可以是你自己定义的membership provider中的用户或用户组)都可以加入到SharePoint中作为一个使用权限的实体,即上图中的“Users”。而SharePoint中的 “组”(即上图中的“Groups”),并不是你在AD中的安全组,它仅仅是SharePoint为方便权限的批量设置而定义的一个快捷方式。所以你可以 把AD里的用户和安全组通通加到某个SharePoint组里,统一设置SharePoint权限。
“谁”对“什么内容”有“什么权限”(Scopes):
SharePoint中,可以被单独赋予权限控制的范围为:网站、列表(文档库)、文件夹、列表条目(文档)。可以看到,最细的粒度是达到了条目级,也就是说,在一个列表(或文档库)里,不同的文件夹、不同的列表条目(或文档)可以被赋予不同的权限。
“谁”对“什么内容”有“什么权限”(Role Definitions):
在 WSSv3中,我们不能直接把某一个或几个权限(Rights,即读取、新建、修改等等)直接分配出去,而必须先经由“Role Definitions”的组合。这个“Role Definitions”其实就是我们在网站中可以管理的“权限级别”。SharePoint内置了“读者”、“讨论参与者”、“网站设计者”等几个权限 级别,每个级别都包含了一组权限,管理员也可以对某个网站设置自定制化的权限级别。
Role Assignments
“Role Assignments”是用来把“权限级别”、“User Token”和“权限作用范围(Scope)”关联起来的对象模型,即把“谁”、“什么内容”和“什么权限”关联起来。在通过浏览器操作 SharePoint的时候是看不到这个对象的,但它隐藏在了管理员的设置权限操作里。
所以,其实在SharePoint中,角色(Role)包含两个内容,一个是权限级别(Role Definition),另一个是权限分配(Role Assignment)。
角色分配继承
Role Assignments是可以沿权限范围继承的,比如网站可以继承父网站的权限分配,列表可以继承网站的,列表条目可以继承文件夹或列表的,这种继承关系可以被断开,并设置新的独立权限设置,也可以由独立设置恢复为继承关系。
权限级别继承
权限级别是可以在网站之间继承的,一个网站可以继承顶级网站的权限级别设置,也可以断开继承,编辑其自己的权限级别。
这样讲了半天,也不知道大家能不能看懂,最后举个简单的例子说明:
一个叫“陈曦”的用户对“部门日历”有“讨论参与者”的权限,其中“讨论参与者”包含了“添加列表条目的权限”。