准备对使用表单身份验证的以主机命名的网站进行爬网

本文内容:

  • 解决方案先决条件

  • 解决方案简要概述

  • 部署解决方案

将 Web 应用程序配置为使用以主机命名的网站时,Web 托管者对于默认区域通常使用表单身份验证。搜索服务器的索引组件(有时称为爬网程序)不能对以常规方式部署的以主机命名的 Web 网站进行爬网,原因如下:

  • 爬网程序不能使用表单身份验证进行身份验证。

  • 主机命名网站不允许搜索服务器的索引组件通过按轮询顺序使用另一个区域来进行身份验证。

有关轮询顺序如何与不以主机命名的网站协同工作的详细信息,请参阅规划身份验证方法 (Windows SharePoint Services) 中的“规划身份验证以便对内容进行爬网”部分。

本文介绍如何在 Windows SharePoint Services 3.0 中创建解决方案,以使爬网程序可以对以主机命名的网站进行爬网。解决方案的组成部分包括:

  • 为 Web 应用程序创建两个区域。

  • 将来自最终用户的请求发送至默认区域,该区域是为表单身份验证配置的。

  • 将来自 Intranet 用户和爬网程序的请求直接发送至 Intranet 区域,该区域是为 NTLM 身份验证配置的。

解决方案先决条件

此解决方案中包括的过程需要以下类型的管理员:

  • 域名系统 (DNS) 管理员

  • 服务器管理员

  • 服务器场管理员

其他要求包括:

  • 两台 DNS 服务器:一台 DNS 服务器面向 Internet,一台 DNS 服务器面向 Intranet。

  • 两个静态 IP 地址:一个来自面向 Internet 的 DNS 服务器,另一个静态 IP 地址来自面向 Intranet 的 DNS 服务器。这两个 IP 地址必须与相同的网站名称相关联。

本解决方案假定有以下情况:

  • 服务器管理员或者同时以这两个静态 IP 地址配置服务器场中所有前端 Web 服务器上单独的网络接口卡 (NIC) ,或者将这两个静态 IP 地址同时添加到一个 NIC。

  • 将用于 Web 应用程序的搜索服务器正在运行中。

  • 没有其他 Web 应用程序使用端口 80。

    备注

    尽管通过使用不同的端口(只要两个区域都使用相同的端口)也可以实施此解决方案,但通常都使用端口 80,以使最终用户在其以主机命名的网站的 URL 中看不到端口号。

  • 在环境中已经实施了表单身份验证。请注意,可以使用若干不同的身份验证提供程序实施表单身份验证。用于实施表单身份验证的身份验证提供程序决定了存储用户帐户的位置。

解决方案简要概述

下图显示此解决方案的简要概述。

具有表单身份验证并以主机命名的网站

此解决方案需要两台 DNS 服务器。每台 DNS 服务器都将相同的主机名映射为一个不同的静态 IP 地址。这通常称为拆分 DNS 环境。面向 Internet 的 DNS 服务器将以主机命名的网站的 URL 解析为 Web 应用程序的默认区域。最终用户使用此区域访问使用表单身份验证的网站。面向 Intranet 的 DNS 服务器将此相同 URL 解析为映射到 Web 应用程序的 Intranet 区域的 IP 地址。Intranet 用户和爬网程序使用此区域访问使用 NTLM 身份验证的网站。

由于通过扩展 Web 应用程序创建新区域时,Windows SharePoint Services 3.0 会为该区域创建 Internet Information Services (IIS) 网站,因此可以采用这种映射。服务器管理员可以使用 IIS 管理器将静态 IP 地址直接映射到 IIS 网站,该 IIS 网站与特定 Web 应用程序的特定区域相关联。

简要步骤

下表介绍此解决方案的简要步骤。

  1. 服务器场管理员使用管理中心网站在端口 80 上创建 Web 应用程序,但不向其分配主机标头。

  2. 服务器场管理员将此 Web 应用程序的默认区域配置为使用表单身份验证。

  3. 服务器管理员将自定义 XML 元素添加到适当的 Web.config 文件,以指定用于表单身份验证的身份验证提供程序的名称。

  4. 服务器管理员创建名为 stsadm.exe.config 的文件,以使 Stsadm 命令行实用工具可以确定如何找到要用于表单身份验证的身份验证提供程序。

  5. 服务器场管理员扩展 Web 应用程序,指定主机标头名,然后在 Intranet 区域上指定 NTLM 身份验证。

  6. DNS 管理员在 DNS 中将网站名称映射为静态 IP 地址。

  7. 服务器管理员使用 IIS 管理器执行以下操作:

    • 将来自面向 Internet 的 DNS 服务器的静态 IP 地址映射到与 Web 应用程序的默认区域(即使用表单身份验证的区域)关联的 IIS 网站。

    • 将来自面向 Intranet 的 DNS 服务器的静态 IP 地址映射到与 Web 应用程序的 Intranet 区域(即使用 NTLM 身份验证的区域)相关的 IIS 网站,并移除在第 5 步中分配给此网站的 IIS 主机标头。

  8. 服务器管理员使用 Stsadm 命令行实用工具创建基于主机标头的网站集。

    备注

    必须使用 Stsadm 命令行实用工具为基于主机标头的网站集指定所需的 URL。

  9. 服务器场管理员可以授予 Web 应用程序的使用权限,网站集管理员可以授予网站集的使用权限。

部署解决方案

按列出的顺序使用以下步骤,以部署本文前面介绍过的解决方案。

创建 Web 应用程序

  1. 单击“开始”,依次指向“所有程序”和“管理工具”,然后单击“SharePoint 3.0 管理中心”。

  2. 在“管理中心”主页的顶部链接栏上单击“应用程序管理”。

  3. 在“应用程序管理”页上的“SharePoint Web 应用程序管理”部分中单击“创建或扩展 Web 应用程序”。

  4. 在“创建或扩展 Web 应用程序”页上的“添加 SharePoint Web 应用程序”部分中单击“新建 Web 应用程序”。

  5. 在“新建 Web 应用程序”页的“IIS 网站”部分中,可以配置新 Web 应用程序的设置。

    1. 接受默认设置,“新建 IIS 网站”,然后在“说明”框中键入网站的名称。

    2. 在“端口”框中键入 80。

    3. 确保“主机标头”框为空。

  6. 在“应用程序池”部分中选择“使用现有应用程序池”,或接受默认设置“新建应用程序池”。如果要新建应用程序池,则请指定对该新应用程序池使用的安全帐户。

  7. 在“搜索服务器”部分中,从“选择 Windows SharePoint Services 搜索服务器”列表中选择要用于对此 Web 应用程序进行索引的搜索服务器。

  8. 单击“确定”。

对服务器场中的所有前端 Web 服务器执行以下步骤。

重新启动 IIS

  1. 单击“开始”,然后单击“运行”。

  2. 在“运行”对话框中的“打开”框中键入 cmd,然后单击“确定”。

  3. 在命令窗口中键入以下命令,然后按 Enter:

    iisreset /noforce

  4. 关闭命令提示符窗口。

执行下列步骤,将 Web 应用程序配置为使用表单身份验证。

将默认区域配置为使用表单身份验证

  1. 在管理中心主页上单击“应用程序管理”。

  2. 在“应用程序管理”页上的“应用程序安全性”部分中单击“验证提供程序”。

  3. 在“验证提供程序”页上的“区域”列中单击“默认”。

  4. 在“编辑验证”页上的“验证类型”部分中选择“表单”。

  5. 在“成员资格提供程序名称”部分的“成员资格提供程序名称”框中键入成员资格提供程序的名称。

  6. 根据需要,在“角色管理器名称”部分的“角色管理器名称”框中键入角色管理器的名称。

  7. 单击“保存”。

将配置设置添加到适用的 Web.config 文件

服务器管理员必须向本文前面所创建的 Web 应用程序的默认区域的 Web.config 文件以及管理中心网站的 Web.config 文件添加 XML 元素。此 XML 元素必须指定身份验证提供程序的名称,根据需要还可以指定有关组织用于表单身份验证的身份验证提供程序的其他信息。

请注意,此 XML 元素的内容(甚至元素本身的名称)将因组织而异。有关构建此必要 XML 元素的详细信息,请参阅身份验证示例 (Windows SharePoint Services)

构建必要的 XML 元素之后,必须将其添加到服务器场中相应服务器上的相应 Web.config 文件。在场中每台运行 Windows SharePoint Services Web 应用程序服务的服务器上,将必要的 XML 元素添加到与 Web 应用程序的默认区域关联的 IIS 网站的 Web.config 文件。在服务器场中每台运行管理中心服务的服务器上,将必要的 XML 元素添加到管理中心网站的 Web.config 文件。

备注

服务器场管理员可以使用管理中心的“服务器上的服务”页来确定哪些服务器正在运行这些服务。

将自定义 XML 元素添加到运行 Windows SharePoint Services Web 应用程序服务的服务器

  1. 登录到服务器场中运行 Windows SharePoint Services Web 应用程序服务的服务器。

  2. 单击“开始”,然后单击“运行”。在“运行”对话框中键入 inetmgr,然后单击“确定”。

  3. 在 IIS 管理器的控制台树中展开“本地计算机”节点,然后展开“网站”。

  4. 右键单击与以前创建的 Web 应用程序的默认区域关联的网站,然后单击“浏览”。

  5. 在“名称”列中右键单击“web.config”,选择“打开”,然后使用 ASCII 文本编辑器(如记事本)打开文件。

  6. 紧接着 </configSections> 元素插入名为 <connectionStrings> 的自定义 XML 元素。

  7. 如果要插入可选的 <membership> 或 <roleManager> 元素,则必须将这些元素插入到 <system.web> 元素中。

  8. 保存并关闭 Web.config 文件。

  9. 在场中运行 Windows SharePoint Services Web 应用程序服务的任何其他服务器上重复步骤 1 至 7。

您必须是 Administrators 组的成员才能执行以下过程。

将自定义 XML 元素添加到运行管理中心服务的服务器

  1. 登录到服务器场中运行管理中心服务的服务器。

  2. 单击“开始”,然后单击“运行”。在“运行”对话框中键入 inetmgr,然后单击“确定”。

  3. 在 IIS 管理器的控制台树中展开“本地计算机”节点,然后展开“网站”。

  4. 右键单击管理中心网站,然后单击“浏览”。默认情况下,此网站名为“SharePoint 管理中心 v3”。

  5. 在“名称”列中右键单击“web.config”,单击“打开”,然后使用 ASCII 文本编辑器(如记事本)打开文件。

  6. 紧接着 </configSections> 元素插入名为 <connectionStrings> 的自定义 XML 元素。

  7. 如果要使用自定义 <membership> 或 <roleManager> 元素,则必须将这些元素插入在 <system.web> 元素中。

  8. 保存并关闭 Web.config 文件。

  9. 在场中运行管理中心服务的任何其他服务器上重复步骤 1 至 7。

使用以下过程创建名为 stsadm.exe.config 的文件。此文件必须包含添加到 Web.config 文件的相同 XML 元素。此文件使 Stsadm 命令行实用工具可以确定如何找到要使用的身份验证提供程序。

创建 stsadm.exe.config 文件

  1. 打开 ASCII 文本编辑器(如记事本),并添加以下文本:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration>
    <system.web>
    </system.web>
    </configuration>
    
  2. 将上一步中添加到 Web.config 文件的名为 <connectionStrings> 的相同自定义 XML 元素插入在 <configuration> 标记之后。

  3. 如果要使用自定义 <membership> 或 <roleManager> 元素,则必须将这些元素插入在 <system.web> 元素中。

  4. 保存文件,并将其命名为 stsadm.exe.config。

  5. 必须确保正在使用的文本编辑器不向文件名添加 .txt 扩展名。如果发生这种情况,请在继续下一步之前移除 .txt 扩展名。

  6. 将 stsadm.exe.config 文件复制到场中每台服务器上的以下文件夹,服务器场管理员可能从该文件夹中使用 stsadm.exe 实用工具:

    系统驱动器:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN

    我们建议将此文件复制到服务器场中的每台服务器上。

扩展 Web 应用程序

使用以下过程扩展 Web 应用程序,以创建使用 NTLM 身份验证的新区域。

扩展 Web 应用程序

  1. 在管理中心主页上单击“应用程序管理”。

  2. 在“应用程序管理”页上的“SharePoint Web 应用程序管理”部分中单击“创建或扩展 Web 应用程序”。

  3. 在“创建或扩展 Web 应用程序”页上的“添加 SharePoint Web 应用程序”部分中单击“扩展现有 Web 应用程序”。

  4. 在“将 Web 应用程序扩展到其他 IIS 网站”页上“Web 应用程序”部分中的“Web 应用程序”菜单上,单击“更改 Web 应用程序”。

  5. 在“选择 Web 应用程序”页上,从列表中选择要扩展的 Web 应用程序。

  6. 在“IIS 网站”部分中执行以下操作:

    1. 在“说明”框中键入新网站的说明。

    2. 在“端口”框中键入 80。

    3. 在“主机标头”框中键入主机标头名。

  7. 在“安全性配置”部分中确保选中“NTLM”。

  8. 在“负载平衡的 URL”部分中选择要使用的区域(本示例中为“Intranet”)。

    备注

    面向 Intranet 的 DNS 服务器必须能够将此负载平衡的 URL 解析为静态 IP 地址(分配给配置为使用 NTLM 身份验证的网站)。

  9. 单击“确定”。

对服务器场中的所有前端 Web 服务器执行以下步骤。

重新启动 IIS

  1. 单击“开始”,然后单击“运行”。

  2. 在“运行”对话框的“打开”框中键入 cmd,然后单击“确定”。

  3. 在命令提示符下键入以下内容,然后按 Enter。

    iisreset /noforce

  4. 关闭命令提示符窗口。

将网站名称映射到 DNS 中的静态 IP 地址

主机命名网站使服务器场管理员能够选择要在 URL 中使用的网站名称。请注意,名称(即 URL)在域中必须唯一。面向 Internet 的 DNS 的管理员必须将服务器场管理员所选择的网站名称映射为相应的静态 IP 地址。在后面的步骤中,服务器管理员会将此静态 IP 地址映射到被配置为使用 Web 应用程序所使用的默认区域的 IIS 网站。

同样,面向 Intranet 的 DNS 的管理员必须将此相同的网站名称映射为不同的静态 IP 地址。在后面的步骤中,服务器管理员会将此静态 IP 地址映射到被配置为使用 Web 应用程序所使用的 Intranet 区域的 IIS 网站。此外,此 DNS 管理员还必须将服务器场管理员在扩展 Web 应用程序时所使用的主机标头名映射为此静态 IP 地址。尽管在后面的步骤中将移除此主机名,但爬网程序使用此主机名访问 Intranet 区域上的 Web 应用程序。

服务器管理员必须在服务器场中的每台前端 Web 服务器上执行以下步骤。

将静态 IP 地址映射到网站

  1. 单击“开始”,依次指向“所有程序”和“管理工具”,然后单击“Internet 信息服务(IIS)管理器”。

  2. 在控制台树中展开“本地计算机”节点,展开“网站”,右键单击为表单身份验证配置的网站,然后单击“属性”。

  3. 在“属性”对话框中“网站”选项卡上的“网站标识”部分中,从“IP 地址”列表中选择要映射到面向客户的网站的 IP 地址。

  4. 单击“确定”关闭“属性”对话框。

  5. 在控制台树中右键单击为 NTLM 身份验证配置的网站,然后单击“属性”。

  6. 在“属性”对话框中“网站”选项卡上的“网站标识”部分中单击“高级”。

  7. 在“高级网站标识”对话框的“此网站的多个标识”部分中,选择包含为使用 NTLM 身份验证的网站配置的主机标头名称的行,然后单击“编辑”。

  8. 在“添加/编辑网站标识”对话框中,从“IP 地址”列表中选择要映射到使用 NTLM 身份验证的网站的 IP 地址。

  9. 在“主机头值”框中记下主机标头名称。这是您分配给配置为 NTLM 身份验证的网站的主机头名称。下一个过程中将需要使用此名称。

  10. 在“主机头值”框中删除主机标头名称,然后单击“确定”。

  11. 单击“确定”关闭“高级网站标识”对话框。

  12. 单击“确定”关闭“属性”对话框。

  13. 关闭 IIS 管理器。

使用以下过程为 Web 应用程序创建网站集。您必须是服务器管理员才能执行以下步骤。

为 Web 应用程序创建网站集

  1. 单击“开始”,然后单击“运行”。

  2. 在“运行”对话框中的“打开”框中键入 cmd,然后单击“确定”。

  3. 浏览到以下文件夹:

    系统驱动器:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN

    其中系统驱动器是安装 Windows SharePoint Services 3.0 的驱动器。

  4. 在命令窗口中键入以下命令,然后按 Enter:

    stsadm.exe -o createsite -url http://<HostNamedSiteAddress>

    -ownerlogin <ProviderName:UserName> -owneremail <username@example.com>

    -hostheaderwebapplicationurl http://<WebApplicationUrl>

下表介绍上一个过程的步骤 4 中使用的变量。

变量 说明

HostNamedSiteAddress

服务器场管理员选择的 URL,以使用户访问网站集的首要网站。DNS 管理员将此名称映射到用于访问 Web 应用程序的默认区域的 IP 地址。

ProviderName:UserName

基于主机标头的网站集的主要所有者。

username@example.com

网站集所有者的电子邮件地址。

WebApplicationUrl

Web 应用程序的默认区域上的 URL。可以在管理中心的“Web 应用程序列表”页上找到此地址。

授予用户权限

必须向用户授予对网站的适当权限,然后这些用户才能访问已创建的 Web 应用程序上的网站。如果要在 Web 应用程序级管理安全性,则服务器场管理员可以创建策略以授予对 Web 应用程序的使用权限。此外,如果要在网站集级别和更低级别管理权限,则网站集管理员可以将用户添加到相应的 SharePoint 组。

有关使用策略授予用户权限的信息,请参阅帮助系统中的“通过策略管理权限”。有关在网站集和更低级别管理权限的详细信息,请参阅规划网站和内容安全性 (Windows SharePoint Services)

下载书籍

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

如需查看可下载书籍的完整列表,请参阅 有关 Windows SharePoint Services 3.0 的可下载内容