(一)概述安全
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中的受權體系能夠概括性地歸納爲:在某個對象上,給某個用戶(或用戶組)分配某一組權限。