授权和身份验证

上次修改时间: 2010年4月20日

适用范围: SharePoint Foundation 2010

Microsoft SharePoint Foundation 支持网站、列表、列表文件夹或库文件夹以及项级别上的用户访问安全性。所有级别上的安全管理均基于角色,这样可为跨 SharePoint Foundation 平台的统一安全管理提供基于角色的一致用户界面和对象模型,从而为对象分配权限。因此,列表级别、文件夹级别或项级别的安全性可实现与网站级别安全性相同的用户模型,从而能够通过网站更方便地管理用户权限和组权限。SharePoint Foundation 还支持对包含在列表和文档库中的文件夹和项的唯一权限。

授权是指 SharePoint Foundation 通过确定哪些用户可以对给定对象执行特定操作,来为网站、列表、文件夹或项提供安全性的过程。授权过程假定用户已经过身份验证,它是指 SharePoint Foundation 以其为依据标识当前用户的过程。SharePoint Foundation 未实现自己的系统来进行身份验证或身份管理,而是仅依赖外部系统(Windows 身份验证或非 Windows 身份验证)。

SharePoint Foundation 支持以下类型的身份验证:

  • **Windows 身份验证:**所有 Microsoft Internet Information Services (IIS) 和 Windows 身份验证集成选项,包括 Basic、Digest、Certificates、Windows NT LAN Manager (NTLM) 和 Kerberos。Windows 身份验证允许 IIS 对 SharePoint Foundation 执行身份验证。

    有关使用 Windows 声明模式登录到 SharePoint 的信息,请参阅传入声明:登录到 SharePoint

    重要注释重要信息

    有关挂起模拟的信息,请参阅避免挂起调用用户模拟

  • **ASP.NET 表单:**一种非 Windows 身份管理系统,该系统使用基于 Microsoft ASP.NET 表单的可插入验证系统。该模式允许 SharePoint Foundation 使用包括外部定义的组或角色在内的多种身份管理系统,如轻型目录访问协议 (LDAP) 和轻型数据库身份管理系统。表单身份验证允许 ASP.NET 对 SharePoint Foundation 执行身份验证,通常涉及重定向到登录页。在 SharePoint Foundation 中,ASP.NET 表单仅在声明身份验证下受支持。表单提供程序必须注册到为声明配置的 Web 应用程序。有关使用 ASP.NET 成员资格和角色被动登录来登录到 SharePoint 的信息,请参阅传入声明:登录到 SharePoint

备注

SharePoint Foundation 不支持使用区分大小写的成员资格提供程序。它对数据库中的所有用户使用不区分大小写的 SQL 存储,而不考虑成员资格提供程序。

基于声明的标识和身份验证

基于声明的标识是 SharePoint Foundation 和 Microsoft SharePoint Server 2010 中的标识模型,它包括如下功能:基于 Windows 系统和非基于 Windows 系统的用户身份验证、多种身份验证类型、更强的实时身份验证、更广泛的主体类型以及应用程序之间的用户标识委派。

当用户登录到 SharePoint Foundation 和 SharePoint Server 2010 时,将对用户的令牌进行验证并使用它登录到 SharePoint。用户的令牌是由声明提供程序颁发的安全令牌。在 SharePoint Foundation 和 SharePoint Server 2010 中有五种受支持的登录或访问模式:

  • Windows 经典模式登录

  • Windows 声明模式登录

  • SAML 被动登录模式

  • ASP.NET 成员资格和角色被动登录

  • 匿名访问

备注

有关登录到 SharePoint 和不同登录模式的详细信息,请参阅传入声明:登录到 SharePoint

当您构建声明感知应用程序时,用户会以一组声明的形式向您的应用程序提供标识。其中一个声明可以是用户名,另一个可以是电子邮件地址。此处的思路是外部标识系统配置为向您的应用程序提供它需要的有关提出每个请求的用户的所有信息,以及保证您的应用程序收到的标识数据来自可信源的加密保证。

在该模型下,单一登录更容易实现,并且您的应用程序不再负责执行下列任务:

  • 对用户进行身份验证

  • 存储用户帐户和密码

  • 调用企业目录以查找用户标识详细信息

  • 与来自其他平台或公司的标识系统集成

在该模型下,您的应用程序基于用户提供的声明做出与标识相关的决定。这可以是各方面的决定 — 从使用用户名字的简单应用程序个性化,到授权用户访问应用程序中更高价值的功能和资源。

备注

有关基于声明的标识和声明提供程序的详细信息,请参阅基于声明的标识概述和概念声明提供程序

基于表单的身份验证

在 SharePoint Foundation 中,基于表单的身份验证通过实现成员资格提供程序和角色管理器来提供自定义身份管理,前者定义用于标识各个用户并对其进行身份验证的接口,而后者定义将各个用户分组到逻辑组或角色的接口。在 SharePoint Foundation 中,成员资格提供程序必须实现必需的 System.Web.Security.Membership.ValidateUser 方法。给定用户名后,角色提供程序系统将返回该用户所属的角色列表。

成员身份提供程序负责使用 System.Web.Security.Membership.ValidateUser 方法(现在,在 SharePoint Foundation 中是必需的)验证凭据信息。然而,实际用户令牌是通过安全令牌服务 (STS) 创建的。STS 根据成员资格提供程序验证的用户名以及与用户名相关联的由成员资格提供程序提供的组成员资格集创建用户令牌。

备注

有关 STS 的详细信息,请参阅基于声明的标识概述和概念

角色管理器是可选的。如果自定义身份验证系统不支持组,则无需使用角色管理器。SharePoint Foundation 在每个 URL 区域 (SPUrlZone) 支持一个成员资格提供程序和一个角色管理器。ASP.NET 表单角色没有与其关联的固有权限,而是由 SharePoint Foundation 通过其策略和授权向表单角色分配权限。在 SharePoint Foundation 中,基于表单的身份验证与基于声明的标识模型集成。如果需要其他扩充以绕过每个 URL 区域具有一个角色提供程序的限制,可以依赖声明提供程序。

备注

有关基于声明的标识和声明提供程序的详细信息,请参阅基于声明的标识概述和概念声明提供程序

在 ASP.NET 成员资格和角色被动登录中,登录通过将客户端重定向到承载 ASP.NET 登录控件的网页来执行。创建表示用户标识的标识对象后,SharePoint Foundation 2010 会将它转换为 ClaimsIdentity 对象(它表示用户基于声明的表示形式)。

备注

有关登录到 SharePoint 的详细信息,请参阅传入声明:登录到 SharePoint

SharePoint Foundation 使用标准的 ASP.NET 2.0 角色提供程序接口来收集有关当前用户的组信息。对于身份验证而言,角色和组的意义是相同的,都是一种将用户分组到逻辑集中以进行授权的方式。每个 ASP.NET 角色均被 SharePoint Foundation 视为一个域组。

有关由 ASP.NET 提供的可插入验证框架的信息,请参阅 New Security Features in ASP.NET 2.0

备注

有关基于表单的身份验证的详细信息,请参阅 Forms Authentication in SharePoint Products and Technologies (Part 1): Introduction

请参阅

概念

SharePoint 基于声明的标识