新增功能:安全性增强功能
上次修改时间: 2010年4月14日
适用范围: SharePoint Foundation 2010
本文内容
基于声明的标识和身份验证
自动密码更改和管理帐户
有效权限 API
Secure Store Service
Microsoft SharePoint Foundation 和 Microsoft SharePoint Server 2010 继续增加和增强 Windows SharePoint Services 3.0 和 Microsoft Office SharePoint Server 2007 中的安全功能。本主题总结了有关 SharePoint Foundation 和 SharePoint Server 2010 中的安全性的新增功能和增强功能。
基于声明的标识和身份验证
基于声明的标识是 SharePoint Foundation 和 SharePoint Server 2010 中的标识模型,它包括如下功能:基于 Windows 系统和非基于 Windows 系统的用户身份验证、多种身份验证类型、更强的实时身份验证、更广泛的主体类型以及应用程序之间的用户标识委派。
当用户登录到 SharePoint Foundation 和 SharePoint Server 2010 时,将对用户的令牌进行验证并使用它登录到 SharePoint。用户的令牌是由声明提供程序颁发的安全令牌。在 SharePoint Foundation 和 SharePoint Server 2010 中有五种受支持的登录或访问模式:
Windows 经典模式登录
Windows 声明模式登录
SAML 被动登录模式
ASP.NET 成员资格和角色被动登录
匿名访问
备注
SAML 被动登录描述登录过程。当 Web 应用程序的登录配置为接受来自受信任登录提供程序的令牌时,这种类型的登录称为 SAML 被动登录。受信任登录提供程序是 SharePoint 信任的外部(即 SharePoint 的外部)STS。有关登录到 SharePoint 和不同登录模式的详细信息,请参阅传入声明:登录到 SharePoint。
当您构建声明感知应用程序时,用户会以一组声明的形式向您的应用程序提供标识。其中一个声明可以是用户名,另一个可以是电子邮件地址。此处的思路是外部标识系统配置为向您的应用程序提供它需要的有关提出每个请求的用户的所有信息,以及保证您的应用程序收到的标识数据来自可信源的加密保证。
在该模型下,单一登录更容易实现,并且您的应用程序不再负责执行下列任务:
对用户进行身份验证
存储用户帐户和密码
调用企业目录以查找用户标识详细信息
与来自其他平台或公司的标识系统集成
在该模型下,您的应用程序基于用户提供的声明做出与标识相关的决定。这可以是各方面的决定 — 从使用用户名字的简单应用程序个性化,到授权用户访问应用程序中更高价值的功能和资源。
有关基于声明的标识和声明提供程序的详细信息,请参阅基于声明的标识概述和概念和声明提供程序。
转换为声明安全令牌的 ASP.NET 成员资格用户令牌
在 SharePoint Foundation 中,ASP.NET 成员资格提供程序必须实现必需的 System.Web.Security.Membership.ValidateUser 方法。给定用户名后,角色提供程序系统将返回该用户所属的角色列表。成员资格提供程序负责使用 System.Web.Security.Membership.ValidateUser 方法(现在,在 SharePoint Foundation 中是必需的)验证凭据信息。
然而,实际用户令牌是通过 SharePoint Foundation 安全令牌服务 (STS) 创建的。SharePoint Foundation STS 根据成员身份提供程序验证的用户名以及与用户名相关联的由成员资格提供程序提供的组成员资格集创建声明安全令牌。
备注
有关 STS 的详细信息,请参阅基于声明的标识概述和概念。有关登录到 SharePoint 的详细信息,请参阅传入声明:登录到 SharePoint。
自动密码更改和管理帐户
通过 SharePoint Foundation 新增的自动密码更改功能,您无需在多个帐户、服务和 Web 应用程序中执行手动密码更新任务即可更新和部署密码。这样,在 SharePoint Foundation 中管理密码更加简单了。可以使用自动密码更改功能确定密码是否即将到期并使用从密码学角度来讲非常强大的长随机字符串重置密码。
可以使用管理帐户来实现自动密码更改功能。SharePoint Foundation 中的管理帐户提高了安全性并且确保了应用程序隔离。
有关管理帐户 API 的详细信息,请参阅:
有效权限 API
在 Windows SharePoint Services 3.0 中,很难获取用户对可保护对象(如 SPWeb、SPList、SPListItem 等)的有效权限。一段时间后,网站的权限设置可能会变得非常复杂,特别是很多对象不从父项继承权限(唯一范围)时。管理员很难确定特定用户的有效权限以及用户如何获取对特定对象的权限。SharePoint Foundation 引入了一个名为"检查权限"的新功能区命令以及一组有效权限 API,通过这些 API 可以快速枚举特定范围内特定用户的所有角色分配。
SPSecurableObject 类公开了一个新 GetUserEffectivePermissionsInfo() 方法。此方法检索的对象提供有关指定用户在当前范围内具有的有效权限以及在此范围内与该用户相关的角色分配的详细信息。如果提供的用户所属的策略标记为"帐户作为系统帐户运行",则此方法在权限掩码中不包含 Web 应用程序安全策略信息。已被授予 EnumeratePermissions 权限的用户可以使用此方法。有关 EnumeratePermissions 的详细信息,请参阅 SPBasePermissions 枚举。
SPSecurableObject 类还公开了一个新 GetUserEffectivePermissions() 方法。对于当前范围,此方法返回表示用户的有效权限掩码的 SPBasePermissions 对象。
SPWeb 类具有名为 GetWebsAndListsWithUniquePermissions() 的新方法,网站集管理员可以使用此方法检索本身具有唯一权限或者所含项目具有唯一权限的 Web 和列表的集合。
该 API 的行为如下:它从起始 URL 中返回具有唯一安全范围(发生"角色继承中断")的容器(例如 SPWeb 或 SPList)的 URL 列表,包括本身不具有唯一安全范围但所含的一个或多个子项目具有唯一安全范围的所有容器。
SPList 类具有一个新 GetItemsWithUniquePermissions() 方法,网站集管理员可以使用此方法检索具有唯一权限的所有列表项。
有关这些 API 的详细信息,请参阅 Microsoft.SharePoint。
备注
本主题仅重点介绍新 API 的一部分,并未列出添加到 SharePoint Foundation 中的与安全性相关的所有新 API。
Secure Store Service
Secure Store Service 取代了 Microsoft Office SharePoint Server 2007 的单一登录功能。Secure Store Service 是一项服务,提供凭据(如帐户名和密码)的存储和映射功能。通过该服务,您可以安全地存储提供凭据的数据,在连接到外部系统以及将凭据与特定实体或实体组相关联时需要这些凭据。解决方案尝试向外部系统(当前用户在其中被识别为不同用户或具有不同的身份验证帐户)进行身份验证的情况很常见。在这种情况下,Secure Store Service 可用于存储和映射外部系统所需的用户凭据。您可以配置 Secure Store Service,以便多个用户可以使用外部系统上的单组凭据访问该外部系统。
有关 Secure Store Service 的详细信息,请参阅 Secure Store Service。