配置身份验证 (Office SharePoint Server)

本章内容:

身份验证是指验证客户端身份的过程,验证通常由指定的颁发机构来执行。网站身份验证有助于确定正在尝试访问网站资源的用户是否是一个经过身份验证的实体。身份验证应用程序从请求访问网站资源的用户处获得凭据。凭据可以是各种形式的标识,例如用户名和密码。身份验证应用程序尝试向身份验证机构验证凭据。如果凭据有效,则认为提交凭据的用户通过了身份验证。

Office SharePoint Server 身份验证

若要确定要使用的最适当 Office SharePoint Server 身份验证机制,请考虑以下问题:

  • 若要使用 Windows 身份验证机制,您需要一个环境,该环境支持可由受信任的机构进行验证的用户帐户。

  • 如果使用 Windows 身份验证机制,操作系统将执行用户凭据管理任务。如果使用非 Windows 身份验证提供程序(例如表单身份验证),您必须规划和实现一个凭据管理系统,并确定将用户凭据存储在何处。

  • 您可能需要实现一个模拟/委派模型,该模型可在各层之间传递用户的操作系统级别安全性上下文。这样,操作系统将能模拟用户并将用户的安全性上下文委派给下一个下游子系统。

Microsoft Office SharePoint Server 是一种分布式应用程序,它在逻辑上划分为三层:前端 Web 服务器层、应用程序服务器层和后端数据库层。每一层都是一个受信任的子系统,并且可能需要身份验证才能访问每一层。凭据验证需要身份验证提供程序。身份验证提供程序是支持特定身份验证机制的软件组件。Office SharePoint Server 2007 身份验证基于 ASP.NET 身份验证模型构建,并且包括三个身份验证提供程序:

  • Windows 身份验证提供程序

  • 表单身份验证提供程序

  • Web SSO 身份验证提供程序

您可以使用 Active Directory 目录服务进行身份验证,也可设计自己的环境以依据其他数据存储(例如 Microsoft SQL Server 数据库、轻型目录访问协议 (LDAP) 目录或具有 ASP.NET 2.0 成员资格提供程序的任何其他目录)验证用户凭据。成员资格提供程序指定将要使用的数据存储的类型。默认的 ASP.NET 2.0 成员资格提供程序使用 SQL Server 数据库。Office SharePoint Server 2007 包括 LDAP v3 成员资格提供程序,而 ASP.NET 2.0 包括 SQL Server 成员资格提供程序。

您也可以部署多个身份验证提供程序以便能够,举例来说,通过使用 Windows 身份验证进行 Intranet 访问,并通过使用表单身份验证进行外部访问。使用多个身份验证提供程序时需要使用多个 Web 应用程序。每个 Web 应用程序必须有指定区域和单一身份验证提供程序。

身份验证提供程序用于依据存储在 Active Directory、SQL Server 数据库或非 Active Directory LDAP 目录服务(例如 NDS)中的用户凭据和组凭据进行身份验证。有关 ASP.NET 成员资格提供程序的详细信息,请参阅配置 ASP.NET 应用程序以使用成员资格 (https://go.microsoft.com/fwlink/?linkid=87014&clcid=0x804)。

Windows 身份验证提供程序

Windows 身份验证提供程序支持以下身份验证方法:

  • 匿名身份验证

    使用匿名身份验证,用户可以在网站的公共区域内查找资源,而无需提供身份验证凭据。Internet Information Services (IIS) 创建“IUSR_计算机名”帐户来验证匿名用户以响应对 Web 内容的请求。“IUSR_计算机名”帐户(其中 计算机名 是运行 IIS 的服务器的名称)为用户提供根据 IUSR 帐户的上下文对资源进行匿名访问的权限。可以重置匿名用户访问权限以使用任何有效的 Windows 帐户。在独立环境中,“IUSR_计算机名”帐户位于本地服务器上。如果该服务器是域控制器,则将为域定义“IUSR_计算机名”帐户。默认情况下,当您创建新的 Web 应用程序时,将禁用匿名访问。这样可以提高安全性,原因是在 IIS 拒绝匿名访问请求之后才能处理这些匿名请求(如果已禁用匿名访问)。

  • 基本身份验证

    基本身份验证需要以前分配的 Windows 帐户凭据以便提供用户访问权限。在 HTTP 事务过程中发出请求时,基本身份验证允许 Web 浏览器提供凭据。因为用户凭据没有针对网络传输经过加密,而是通过网络以纯文本形式发送,所以建议通过安全的 HTTP 连接使用基本身份验证。若要使用基本身份验证,应启用安全套接字层 (SSL) 加密。

  • 摘要式身份验证

    摘要式身份验证提供与基本身份验证相同的功能,但其安全性更高。用户凭据经过了加密,而不是以纯文本形式通过网络发送。用户凭据是以 MD5 哈希的形式发送的,在此形式中无法解密原来的用户名和密码。摘要式身份验证使用质询/响应协议,此协议要求身份验证请求程序提供有效的凭据以响应服务器发出的质询。若要向服务器进行身份验证,客户端必须在响应中提供一个包含共享机密密码字符串的 MD5 哈希。Internet 工程任务组 (IETF) RFC 1321(http://www.ietf.org(该链接可能指向英文页面)) 中详细描述了 MD5 哈希算法。

    若要使用摘要式身份验证,请注意下列要求:

    • 用户和 IIS 服务器必须是相同域的成员或被相同域所信任。

    • 用户必须将有效的 Windows 用户帐户存储在域控制器上的 Active Directory 中。

    • 域必须使用 Microsoft Windows Server 2003 域控制器。

    • 必须将 IISSuba.dll 文件安装在域控制器上。在 Windows Server 2003 安装过程中将自动复制此文件。

  • 集成 Windows 身份验证

    可以使用 NTLM 或受约束的 Kerberos 委派来实现集成 Windows 身份验证。受约束的 Kerberos 委派是最安全的身份验证方法。集成 Windows 身份验证适合于在用户具有 Windows 域帐户的 Intranet 环境中使用。在集成 Windows 身份验证中,浏览器将尝试使用域登录中当前用户的凭据,如果尝试不成功,则会提示用户输入用户名和密码。如果使用集成 Windows 身份验证,则不会将用户的密码传送到服务器。如果用户已作为域用户登录到本地计算机,当用户访问该域中的网络计算机时,将不必再次进行身份验证。

  • Kerberos 身份验证

    此方法适用于在 Microsoft Windows 2000 Server 和 Windows 更高版本上运行 Active Directory 的服务器。Kerberos 是一种支持票证身份验证的安全协议。Kerberos 身份验证服务器授予票证来响应包含有效用户凭据的客户端计算机身份验证请求。然后,客户端计算机使用该票证来访问网络资源。若要启用 Kerberos 身份验证,客户端和服务器计算机必须通过受信任的连接连接到域密钥发行中心 (KDC)。客户端和服务器计算机还必须能够访问 Active Directory。有关配置虚拟服务器以使用 Kerberos 身份验证的详细信息,请参阅 Microsoft 知识库文章 832769:如何将 Windows SharePoint Services 虚拟服务器配置为使用 Kerberos 身份验证以及如何从 Kerberos 身份验证切换回 NTLM 身份验证 (https://go.microsoft.com/fwlink/?linkid=115572&clcid=0x804)。

  • 受约束的 Kerberos 委派

    受约束的身份验证是多个应用层之间最安全的通信配置。您可以使用受约束的委派在多个应用层之间传递原始调用者的标识:例如,从 Web 服务器传递到应用程序服务器,再传递到数据库服务器。受约束的 Kerberos 委派还是从应用程序服务器访问后端数据源的最安全的配置。模拟可以使线程在拥有该线程的进程所在上下文之外的安全性上下文中运行。在前端 Web 服务器和应用程序服务器运行于不同计算机上的大多数服务器场部署中,模拟将需要受约束的 Kerberos 委派。

  • 模拟和 Kerberos 委派

    Kerberos 委派使已验证的实体能够模拟同一林内用户或计算机的凭据。启用了模拟后,模拟实体将能够使用凭据代表被模拟的用户或计算机执行任务。

    在模拟过程中,ASP.NET 应用程序可通过使用另一个已验证实体的凭据运行。默认情况下,ASP.NET 模拟处于禁用状态。如果为 ASP.NET 应用程序启用了模拟,则该应用程序将使用 IIS 传递到 ASP.NET 的存取令牌的凭据运行。该令牌可以是已验证用户令牌(例如已登录 Windows 用户的令牌),也可以是 IIS 为匿名用户提供的令牌(通常为“IUSR_计算机名”标识)。

    启用了模拟后,只有应用程序代码才会依据被模拟用户的上下文运行。将会编译应用程序,并使用 ASP.NET 进程的标识加载配置信息。

    有关模拟的详细信息,请参阅 ASP.NET 模拟 (https://go.microsoft.com/fwlink/?linkid=115573&clcid=0x804)。

  • NTLM 身份验证

    此方法适用于未在域控制器上运行 Active Directory 的 Windows 服务器。对于从不支持 Kerberos 身份验证的客户端计算机接收身份验证请求的网络,需要使用 NTLM 身份验证。NTLM 是一种安全协议,它支持对用户凭据加密和在网络上传输用户凭据。NTLM 的基础是:在通过网络发送用户名和密码之前对用户名和密码进行加密。在服务器从不支持 Kerberos 身份验证的客户端计算机接收请求的网络中,将需要使用 NTLM 身份验证。NTLM 是 Windows NT Server 和 Windows 2000 Server 工作组环境以及许多 Active Directory 部署中使用的身份验证协议。在必须对 Windows NT 系统进行验证的混合 Windows 2000 Active Directory 域环境中,将使用 NTLM。将 Windows 2000 Server 转换为不存在下级 Windows NT 域控制器的本机模式时,将禁用 NTLM。Kerberos 随后将成为企业的默认身份验证协议。

表单身份验证提供程序

表单身份验证提供程序支持根据存储在 Active Directory、数据库(例如 SQL Server 数据库)或 LDAP 数据存储(如 Novell eDirectory、Novell Directory Services (NDS) 或 Sun ONE)中的凭据进行身份验证。表单身份验证使用户能够基于从登录表单输入的验证凭据进行身份验证。未通过验证的请求将重定向到登录页,用户必须在该页中提供有效凭据并提交表单。如果可以对请求进行验证,系统会发布一个 Cookie,其中包含用于重新创建后续请求的标识的密钥。

Web 单一登录 (SSO) 身份验证提供程序

Web SSO 也称为联合身份验证或委派身份验证,因为它支持跨网络边界的安全通信。

SSO 是一种只需成功验证一次用户凭据即可访问多个安全资源的身份验证方法。可以采用几种不同的方式实现 SSO 身份验证。Web SSO 身份验证使一个组织中经过验证的用户能够访问另一个组织中的 Web 应用程序,从而支持跨网络边界的安全通信。Active Directory 联合身份验证服务 (ADFS) 支持 Web SSO。在 ADFS 方案中,两个组织可以创建联合身份验证信任关系,借助这种关系,一个组织中的用户能够访问由另一个组织控制的基于 Web 的应用程序。有关使用 ADFS 来配置 Web SSO 身份验证的信息,请参阅使用 ADFS 配置 Web SSO 身份验证 (Office SharePoint Server)。有关如何使用 Stsadm 命令行工具执行此过程的信息,请参阅 身份验证:Stsadm 操作 (Office SharePoint Server)

下载此书籍

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007