АБНАЎЛЕННЕ 12/18/07: Глядзіце артыкул Пола Liebrand для некаторых тэхнічных наступстваў выдаліць яго, ці змены назвы групы па змаўчанні (гл. яго каментар ніжэй, а).
Агляд:
SharePoint security is easy to configure and manage. Аднак, it has proven to be difficult for some first-time administrators to really wrap their hands around it. Not only that, I have seen some administrators come to a perfect understanding on Monday only to have lost it by Friday because they didn’t have to do any configuration in the intervening time. (Я прызнаюся, што гэтую праблему самастойна). This blog entry hopefully provides a useful SharePoint security primer and points towards some security configuration best practices.
Важнае заўвага:
This description is based on out of the box SharePoint security. My personal experience is oriented around MOSS so there may be some MOSS specific stuff here, but I believe it’s accurate for WSS. I hope that anyone seeing any errors or omissions will point that out in comments or напішыце мне. I’ll make corrections post haste.
Асновы:
For the purposes of this overview, there are four fundamental aspects to security: users/groups, securable objects, permission levels and inheritance.
Users and Groups break down to:
- Individual users: Pulled from active directory or created directly in SharePoint.
- Groups: Mapped directly from active directory or created in SharePoint. Groups are a collection of users. Groups are global in a site collection. They are never "tied" to a specific securable object.
Securable objects break down to at least:
- Sites
- Бібліятэкі дакументаў
- Individual items in lists and document libraries
- Folders
- Various BDC settings.
There other securable objects, but you get the picture.
Permission levels: A bundle of granular / low level access rights that include such things as create/read/delete entries in lists.
Inheritance: By default entities inherit security settings from their containing object. Sub-sites inherit permission from their parent. Document libraries inherit from their site. So on and so forth.
Users and groups relate to securable objects via permission levels and inheritance.
The Most Important Security Rules To Understand, Ever 🙂 :
- Groups are simply collections of users.
- Groups are global within a site collection (I.E. there is no such thing as a group defined at a site level).
- Group name not withstanding, groups do not, in and of themselves, have any particular level of security.
- Groups have security in the context of a specific securable object.
- You may assign different permission levels to the same group for every securable object.
- Web application policies trump all of this (гл. ніжэй).
Адміністратары бяспекі губляюцца ў моры груп і карыстальнікаў, спісы могуць заўсёды спадзявацца на гэтыя аксіёмы, каб кіраваць і разумець іх налады бяспекі.
Найбольш распаўсюджаныя памылкі:
- Імёны груп ілжыва прадугледжвае дазвол: З скрынкі, SharePoint defines a set of groups whose names imply an inherent level of security. Consider the group "Contributor". One unfamiliar with SharePoint security may well look at that name and assume that any member of that group can "contribute" to any site/list/library in the portal. That may be true but not because the group’s name happens to be "contributor". This is only true out of the box because the group has been provided a permission level that enables them to add/edit/delete content at the root site. Through inheritance, the "contributors" group may also add/edit/delete content at every sub-site. One can "break" the inheritance chain and change the permission level of a sub-site such that members of the so-called "Contributor" group cannot contribute at all, but only read (напрыклад). This would not be a good idea, відавочна, since it would be very confusing.
- Groups are not defined at a site level. It’s easy to be confused by the user interface. Microsoft provides a convenient link to user/group management via every site’s "People and Groups" спасылка. It’s easy to believe that when I’m at site "xyzzy" and I create a group through xyzzy’s People and Groups link that I’ve just created a group that only exists at xyzzy. That is not the case. I’ve actually created a group for the whole site collection.
- Групы сяброўства не залежыць ад сайта (I.E. яна ўсюды аднолькавая група выкарыстоўваецца): Consider the group "Owner" і ў двух месцах, "HR" and "Logistics". It would be normal to think that two separate individuals would own those sites — an HR owner and a Logistics owner. The user interface makes it easy for a security administrator to mishandle this scenario. If I didn’t know better, Я мог бы звяртацца да груп людзей і спасылкі праз сайт HR, select the "Owners" group and add my HR owner to that group. A month later, Logistics comes on line. I access People and Groups from the Logistics site, add pull up the "Owners" group. I see the HR owner there and remove her, thinking that I’m removing her from Owners at the Logistics site. На самай справе, I’m removing her from the global Owners group. Hilarity ensues.
- Будучы не ў стане назваць групы, заснаваныя на канкрэтнай ролі: The "Approvers" group is a perfect example. What can members of this group approve? Where can they approve it? Do I really want people Logistics department to be able to approve HR documents? Of course not. Always name groups based on their role within the organization. This will reduce the risk that the group is assigned an inappropriate permission level for a particular securable object. Name groups based on their intended role. In the previous HR/Logistics scenario, Я бы стварыў дзве новыя групы: "HR Owners" and "Logistics Owners" і прызначыць разумныя ўзроўні дазволаў для кожнага і мінімальную суму, неабходную для тых карыстальнікаў, каб зрабіць іх працу.
Іншыя карысныя спасылкі:
- Вэб-дадатак палітыкі Гоча: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!255.entry
- Clearinghouse for SharePoint security: http://www.sharepointsecurity.com/
- Links from Joel Oleson: http://blogs.msdn.com/joelo/archive/2007/08/23/sharepoint-security-and-compliance-resources.aspx
If you’ve made it this far:
Please let me know your thoughts via the comments or email me. If you know other good references, please do the same!