SharePoint Security Evolution
Microsoft SharePoint Services
2003 has evolved into Microsoft
Office SharePoint Server 2007, offering a much fuller, richer security toolset. Whereas SharePoint 2003 relied on
logon security backed by Active Directory
(AD), portal security, and list-level security,
SharePoint 2007 improves previously
existing security features while adding
auditing features, storage policies, and
secure collaboration products such as
Excel Services. Let's take a look at how
security has evolved in SharePoint, how
each version tackles authentication and
authorization, and how SharePoint 2007
will benefit your organization.
SharePoint 2003 Authentication
Let's start by taking a closer look at the
security features of Microsoft's SharePoint
2003 products and technologies. The
foundation of any secure product is the
ability to control access to secured materials—which essentially boils down to
digital identity and passwords. Because
SharePoint 2003 technologies rely on AD
to provide user-account validation, the
password policies of any SharePoint site
are basically the password policies of the
underlying AD network. As the Microsoft
SharePoint Products and Technologies
Resource Kit points out, password
policies need to take a host of recommendations into account, particularly
when you're considering the addition of
SharePoint technologies to a network.
These recommendations include minimum
password length, password complexity,
limits on consecutive password attempts,
prohibition of sharing passwords, and
smart card or biometric device usage.
What exactly does the reliance on AD mean in terms of user authentication
(verifying that users are who they claim to
be)? SharePoint 2003 offers two modes of operation: preexisting-account mode and
account-creation mode. In the preexisting-account mode (aka domain mode), an
AD account must exist before a user can
access a SharePoint site. In the accountcreation mode (selected during SharePoint
installation) you can have an AD account
automatically created each time you add a new SharePoint user. If you're unsure
which mode you're in, you can use the
included Stsadm.exe command-line tool
to find out.
In either case, the existence of this AD
account provides the authentication necessary to access SharePoint. SharePoint
validates the existence of the user in AD
either through NTLM or Kerberos protocols. To provide authorization, the system
compares the authenticated account with
a list of access-control information for the
SharePoint site itself. These authorization
lists are stored in Microsoft SQL Server
content databases and are modified from
within SharePoint. You can organize these
lists or groups at the user level, in site-level groups, or in multisite level groups.
(I've just stated that SharePoint relies
on AD to provide account validation, but
that's not 100 percent accurate. You can also use local Windows accounts.
However, if you don't use AD, you lose
the ability to pre-populate the SharePoint
profile database. And if any users have
personal sites, they won't be registered
for cross-farm synchronization in a server
farm environment. Because of these
severe restrictions, AD environments are
highly recommended.)
SharePoint 2003 Authorization
What does the reliance on AD mean in
terms of user authorization (validating
that users have permissions to access
a resource)? SharePoint 2003 authorization is based on groups of rights to which specified users or groups of users
are assigned. You can easily customize
security groups, but by default five security
groups ship with Windows SharePoint
Services:
- Administrator—Wields complete control over the Web site
- Web Designer—Controls the look and
feel of the Web site
- Contributor—Can add content to
existing Web Parts
- Reader—Has read-only access to
content in lists and document libraries
- Guest—Holds the lowest levels of permissions. This group is designed to give
read access to sub-portions of a site
without giving access to the entire site.
The rights fall into three general categories: list rights, site rights, and personal rights.
The system checks list rights to determine
whether a user is able to contribute to a
list, edit list items, manage columns in a
list, and so on. The system checks site
rights whenever a user attempts to create
a site, manage a site's users, change the look and feel of a site, and more.
The system checks personal rights
when a user tries to create or change
a personal list view and use private or personal Web Parts. Figure 1 shows the full list of available rights in
SharePoint 2003.
After you grasp how your
SharePoint system organizes its rights
into groups, you'll understand how to organize your users. It's possible
to individually manage each user's
permissions, but creating groups to
hold your users is the recommended
best practice. You have two options
for grouping your users: site groups
and cross-site groups. A site group is
a group of users available for assignment on that particular SharePoint
site. If your users are grouped in a
cross-site group, the system actually
creates that group at the top level for
the site collection, and it's available to
any site in that site collection.
Suppose your organization,
Contoso, has several departments,
such as Marketing, Executive,
Finance, and IT. If each of these
departments has its own site under
the top-level Contoso site, a user in
the Executive department might not
have access to documents stored by
the Finance department unless he or she
is explicitly granted those rights. However,
if the users for each department reside in cross-site groups, the manager of the
Finance department has to grant only the Executive cross-site group read access
to its portal, and all members of the team
can be admitted at once.
Site-Level Security
Now, you have groups of users and
groups of rights. What can you do with
these groups to secure the SharePoint
portal? SharePoint 2003 offers two levels
of security: site level and list level.
When you create a SharePoint site,
you—as the creator or owner—have a
choice about how to handle security. The
options are to inherit the permissions of
the parent site or to use unique permissions. If you decide to inherit the parent's
permissions, the security options flow
down to the new portal site and everyone
who has any level of access in the parent
site has the same level of access in the
new site. If you select unique permissions,
you are initially the only user given any
access to the new portal site. After the
site's creation, you can add new users or
groups of users to the site and can grant
specific permissions.
Suppose your Contoso organization
has an IT department. The IT department wants to grant employees the ability to track trouble tickets through their
SharePoint issue-tracking list. To that end, the IT department has created an IT
portal site off the main Contoso site. In
this fictional organization, every member of the domain has at least read access at
the main company site. When you created
the IT portal site, you did so with inherited
permissions; any
domain user has
the ability to connect to the IT portal
site and see the
data on the home
page, including the
issue-tracking list on
the IT portal site's
home page. Now,
the IT department
needs to have a
location at which it
can save IT-specific
information, such as
server passwords.
The IT department doesn't want
users to see that
this documentation exists, so it has created a new portal site with unique permissions. This PrivateIT portal site might
have only members of the IT department
as users. When non-IT users attempt to
access the PrivateIT portal site, they'll see
an error message stating that they don't
have permission to access that resource.
Optionally, you can have the system
prompt them with a message stating that
they can ask the administrator to grant
them access to the restricted portal.
List-Level Security
List-level security works similarly, but at the individual list level as opposed to the
site level. Consider again the example of
the public IT portal site with its issue-tracking list. Suppose the IT department wants
to give any user the ability to read items
in the list, but the department wants to
give members of the Managers cross-site
group the ability to add new issues and
edit existing issues. In the list's permissions
options, you can add users or groups and assign them various permissions. You
simply enter the list, click Modify Settings
and Columns, and click the Change permissions for this list link. Figure 2 shows
the most granular list of rights available for
assignment. You might notice the tantalizing Modify item-level security link in the left
pane. This link offers you only the ability to
toggle users' views from seeing and editing all entries in the list to seeing only their
own entries in the list.
This item-level permission is a hint of what
is to come in SharePoint 2007, which represents a major evolution in terms of authentication and authorization over that which
SharePoint 2003 offers. Choices are more
diverse, more granular, and more intuitive.
SharePoint 2007 Authentication
In SharePoint 2007, you not only have
the same Windows-integrated options
as before—you also have the ASP.NET provider model. Use of the ASP.NET provider model removes the need for AD or
Windows accounts and gives you new
options, such as forms authentication
against any store of user data (e.g., a
SQL Server database). You also have the
option to use Web-based single sign-on
(SSO) options in which the user is logged
on via a non-SharePoint logon form. A
familiar example of a Web-based SSO
option is Windows Live ID (formerly known
as .NET Passport). This authentication
evolution gives developers and administrators much greater flexibility while installing
and configuring SharePoint 2007.
SharePoint 2007 Authorization
The SharePoint authentication changes
are important, but they're not nearly as
big as the forthcoming authorization
improvements. In SharePoint 2003, users and administrators are concerned
with rights, but in
SharePoint 2007,
the term is permissions, and the
division between
groups of users
and groups of
permissions is
much more clearly
defined. People are
assigned to logical
groups, such as IT
managers, junior
finance employees, and executive
team members. Permissions are
assigned to logical groups, such as designers and readers, and the permissions associated
with those groups are clearly defined. In
SharePoint 2003, distinction is blurred. At
the site level, you might assign a person
to the Readers role, but at the list level,
the Readers group acts more like a rights
specification. In SharePoint 2003, this
dynamic leads to confusion among administrators: Which group of users is allowed
to do what in each site and in each list?
Another major security improvement
in SharePoint 2007 is the addition of finer-grained permissions. Now, not only
can you secure a site or list, you can also
secure a folder and an item in that list.
Therefore, you can use the same library
to store sensitive documents and publicly
available documents. To prevent unauthorized access attempts, SharePoint 2007
offers a security-trimmed interface. If a
user doesn't have permission to view a
document or menu item, that document
or menu selection doesn't even appear
to that user. The entire Site Actions menu
won't appear if the user doesn't have the
required permissions to use any of the
menu's elements.
SharePoint Groups are logical groupings or collections of people. Out of the
box, the software offers three groups:
Owners, Members, and Visitors. These
groups function like SharePoint 2003's
cross-site groups in that you can assign them anywhere in a site collection and
they will be henceforth available for use
anywhere in that site collection. These
groups let you scale permission assignments across large numbers of people.
The original concept of SharePoint site groups is extremely flexible, making it difficult to effectively organize users and roles. You can assign users to a site
group, and you can assign rights to the
site group. Then, by assigning the site
groups of users to those groups that
contain rights, you effectively create a role
by defining which users can do specific
actions. The new version addresses this
ambiguity in the definition and purpose of groups. In SharePoint 2007, the role-based concept of collections of permissions is now clearly defined as a permission level, which functions as a role. You
assign permissions to these permission levels, and you assign these permission
levels to SharePoint groups.
Groups are also now always defined
at the site-collection level, enforcing a
consistent naming convention within all
the sites of a site collection. All of this
reduces the potential for confusion.
Consider a hands-on example. In a
SharePoint portal, click the People and
Groups link in the Quick Nav bar, which Figure 3, shows. Click More to
view all your groups. By doing so, you
see that your site has only the default
groups available. You want to add two
new groups to represent your Contoso
IT department users and your Finance
department users. Click New, and select
New Group from the drop-down list. For
the IT department, fill out the form that
you see in Figure 4. Notice the
permission levels at the bottom of the
form. Before you go on to add a group
for the Finance department, create a new
security permissions level for the Finance
users. Back in the list of groups, click Site
Permissions to access the screen that Figure 5 shows. On this screen, you can
see the permission levels and groups to
which the Finance users are assigned,
and you can manage the many-to-many
relationship between groups and permission levels. You can see that the roles of
Read, Contribute, and Full Control (i.e.,
administration) exist, along with the new
SharePoint 2007 levels of Limited Access
(equivalent to SharePoint 2003's Guest
level) and Approver. To add a new permission level for your Finance team members,
click Settings, Permission Levels. A list
of available permissions will appear. Click Add a Permission Level to create a new
Finance user role. On the screen that Figure 6 shows, you can see how many
more permission options are available
in SharePoint 2007 than in SharePoint
2003. Select the permissions you want
(grant lots of list rights) and click Create.
Now, you have a new permission level for
Finance department employees. Go back
to your Permissions home page and add a
new group to contain your actual Finance
employees. When you do so, the added
Finance user permission group will appear
at the bottom of the New Group screen.
Now, you can add users to the Finance
group, and any user of the Finance group
will have the same permissions in any site
in the SharePoint site collection.
Now that you understand how to collect
users into groups and how to assign
the groups various permissions, you can
see how you’ll use these groups to secure
SharePoint 2007. Just as in SharePoint
2003, you can explicitly grant or deny
access to a site or a list, but you now
have the additional ability to secure individual
list items and document library folders.
So, a user might have access to a site
and a document library, but you can have
individual documents or folders to which
the user has no access.
Administrative Security
This has been a discussion of user-level and
site-level security in SharePoint 2003 and
SharePoint 2007. There are additional levels
of security available to SharePoint administrators,
who can also apply security at the
Shared Services level and at the Central
Administration level in SharePoint 2007.
Shared Services isn’t a new concept,
but it’s now much more apparent.
Essentially, Shared Services administration
means that the server-farm administrator
can delegate authorization for certain tasks
to other users. This capability is handy
when users make unwanted changes,
such as item deletions (and subsequent
Recycle Bin clearing). Now, with delegated
user authorization, the user doesn’t have
to go to the farm administrator for help.
The final possible level of security
configuration in a SharePoint 2007 installation
is at the Central Administration
level. There are a lot of new administration
features at this level, including security
policies—a set of permissions that apply
everywhere across the farm. These Grant
and Deny policies override all other permissions,
and you can configure them
per Web application and per Web zone.
Common examples of security policy
use include granting full read access to
auditors and denying all write access
to anyone in the Internet zone (i.e.,
Extranet). You can also set up the AD
service accounts at this level to prevent
unauthorized application behavior on the
network. You configure the application
pool accounts, the SharePoint service
(SPTimer and Admin Service) accounts,
and access to SQL Server at this level.
A Powerful Force
SharePoint 2007 is poised to greatly
improve the SharePoint end-user experience.
Thanks to a slicker interface and
features such as security trimming, the
user will see only the sites, lists, and documents
that they have permission to see.
More important, SharePoint 2007 will simplify
the life of the administrator, thanks to
cleanly organized users and roles defined
at one level, the ability to delegate activities
to others via Shared Services, and the
introduction of system-wide security policies.