(一)概述安全
SharePoint权限系统是整个SharePoint体系中一个比较重要的部分,权限系统主要分红两大部分:认证和受权。网站
认证主要解决的问题是判断登录者是否合法,以及他到底是哪个用户,SharePoint与此相关的对象包括用户和用户组。SharePoint支持多种身份认证方式,从最基本的Windows集成认证到各类表单认证,而且在SharePoint 2010中增长了基于声明(Claim Based)认证方式,以及一些相关服务,容许在同一个网站中使用多种认证方式。不过认证方式的设置不在本书的讨论范围以内。3d
受权主要解决的问题是判断用户在某个对象(如网站、列表等)上有什么样的权限,换句话说,用户在这个SharePoint网站上可以进行什么样的操做。SharePoint与此相关的对象包括权限、权限级别和权限分配。对象
在介绍和权限相关的对象模型以前,让咱们先来回顾一下SharePoint的受权体系。下面这张图表示了SharePoint中受权体系的结构和关系(这部份内容2010和2007没有本质区别):blog
从上图中能够看到,在SharePoint权限体系中,处在核心地位的是权限分配(Role Assignments),围绕着权限分配有三组对象:继承
一、范围(Scopes)接口
范围指定了在什么对象上分配权限。在SharePoint中,凡是可以分配权限的对象都是直接或间接继承了SPSecurableObject类,关于该类的方法和属性将在后文作详细介绍(在2007中,这些对象实现了ISecurableObject接口,不过实际上在2010中的SPSecurableObject类也是实现了这一接口的)。在SharePoint中,实现了该接口类包括SPWeb、SPList和SPListItem。也就是说,可以在SharePoint中分配权限的对象包括网站、列表、列表条目(固然也包括文档库中的文档,以及列表、文档库中的文件夹)。ip
默认状况下,SharePoint的权限分配在范围上是有继承关系的。子网站的权限分配与父网站相同,列表的权限分配与其所在网站相同,条目和文档的权限分配与其所在列表和文档库相同,若是包含文件夹的话,文件夹内的条目/文档的权限分配与该文件夹相同。不过,这种继承关系是容许用户打破的(在权限设置页面中,点击“中止继承权限”),在打破继承关系以后,对其父对象进行的任何权限分配上的修改都再也不影响到结束继承的子对象;而子对象也能够在任什么时候候选择从新继承父对象的权限分配——这固然也就意味着子对象自己的权限分配设置都会被销毁,并按照父对象上的设置从新分配权限。文档
二、用户令牌(User Token)get
在SharePoint中,能够被分配权限的用户包括普通用户、SharePoint用户组和AD安全组(至关于ASP.NET Membership中的“角色”)。所以在分配权限的时候,管理员就能够有多种选择(假设用户使用AD进行身份认证):
(1) 直接给某个用户分配权限;
(2) 给某个SharePoint用户组分配权限,并将须要分配权限的用户根据权限不一样加入到不一样的用户组中(在图3-18所示的SharePoint权限分配的界面中,能够很明显地看到这两种权限分配的方式);
(3) 在AD中将用户加到安全组中,以后把安全组加入到SharePoint中,并分配权限;
(4)将包含了用户的安全组加入到SharePoint用户组中。
在通常的SharePoint项目中,不建议直接为用户分配权限,这样会形成往后权限管理中的混乱和麻烦,因此推荐使用方法(2)至(4)。可是在一些地方,只能将权限设置给具体的用户(如网站集管理员)。
三、权限控制列表(ACL)
SharePoint中的权限控制分为两个层次:权限(Permission)和权限级别(Role Definition)。
权限是指具体的用户行为,例如建立列表条目、查看列表条目、管理网站、建立子网站、审批条目等等。
而权限级别是指按照具体应用所组织起来的一组权限,例如读取、仅查看、参与讨论、彻底控制等等,每种权限级别都包括了相同或不一样的权限组合。从图3-17中能够看到,在SharePoint中,权限的分配只能透过权限级别来完成。
权限级别是定义在网站中的,默认状况下,子网站的权限级别与父网站定义相同,并继承父网站的定义。固然管理员也能够选择结束掉这种继承关系,其情形与结束权限分配的继承关系相似。不过须要说明的是,若是须要打破权限级别的继承关系,其前提条件就是要先打破权限分配的继承关系。
综上所述,在SharePoint中的受权体系能够概括性地归纳为:在某个对象上,给某个用户(或用户组)分配某一组权限。