配置基于 Kerberos 身份验证的网站以进行爬网

本文内容:

解决方案先决条件

解决方案 1 的步骤概述

部署解决方案 1(将新网站配置为使用 Kerberos)

解决方案 2 的步骤概述

部署解决方案 2(将现有网站配置为使用 Kerberos)

Kerberos 身份验证提供比 NTLM 更高的安全性,这是 Microsoft Office SharePoint Server 2007 Web 应用程序的默认身份验证机制。但是,请注意,如果将使用 Kerberos 身份验证的网站配置为使用非标准端口,则索引服务器的索引组件(有时称为爬网程序)将无法对这些网站进行爬网。非标准端口是除 TCP 端口 80 (HTTP) 和 SSL 端口 443 (HTTPS) 以外的任何端口号。

Web 应用程序区域的轮询顺序会影响爬网。爬网程序始终首先轮询默认区域。如果此区域使用 Kerberos 身份验证但没有使用 TCP 端口 80 或 SSL 端口 443,则爬网程序将不尝试通过使用轮询顺序中的下一个区域来执行身份验证,并且不会对 Web 应用程序的任何内容进行爬网。这意味着在搜索查询的结果中将不会对内容进行索引或不会返回内容。有关轮询顺序如何与爬网程序一起工作的详细信息,请参阅规划身份验证方法 (Office SharePoint Server) 中的“规划身份验证以便对内容进行爬网”部分。

本文适用于独立服务器和服务器场的 Office SharePoint Server 2007 部署。本文提供了两种解决方案,一种用于对在默认区域中使用 Kerberos 身份验证的网站进行爬网,另一种用于对在默认区域中使用 NTLM 身份验证并在另一个区域中使用 Kerberos 身份验证的网站进行爬网。无论使用哪种解决方案,访问使用 Kerberos 身份验证的 Web 应用程序的最终用户都能够获得搜索查询的结果。以下是这两种解决方案:

  • 解决方案 1:创建在默认区域中使用 Kerberos 身份验证的 Web 应用程序并将其配置为使用标准端口。这是首选解决方案,因为通过使用 Kerberos 进行身份验证的用户无需在其网站的 URL 中指定端口号。如果无法部署此解决方案,请使用解决方案 2。

  • 解决方案 2:创建使用 NTLM 身份验证的 Web 应用程序,并扩展该 Web 应用程序以在第二个区域中使用 Kerberos 身份验证。利用此方法,爬网程序可以通过使用 NTLM 身份验证对默认区域中的内容进行爬网。如果无法对标准端口使用 Kerberos 身份验证,请部署此解决方案。

解决方案先决条件

这些解决方案中包含的过程需要下列类型的管理员:

  • 域名系统 (DNS) 管理员

  • 服务器管理员

  • 搜索服务管理员

  • 服务器场管理员

  • Internet Information Services (IIS) 管理员

其他要求包括:

这些解决方案假定以下几点:

解决方案 1 的步骤概述

  1. 创建使用 Kerberos 身份验证的 Web 应用程序。

  2. 向新的 Web 应用程序分配端口 80 或端口 443。

  3. 在 Active Directory 中创建 SPN。

  4. 确认成功浏览到 Web 应用程序。

  5. 确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别。

  6. 确认正确的搜索爬网行为。

  7. 确认搜索查询返回正确结果。

  8. 向最终用户发布 URL。

部署解决方案 1

创建使用 Kerberos 身份验证的 Web 应用程序

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

  2. 单击“应用程序管理”选项卡。

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

  4. 在“创建或扩展 Web 应用程序”页上,单击“新建 Web 应用程序”。

  5. 在“新建 Web 应用程序”页上,在“IIS 网站”部分中,接受默认设置“新建 IIS 网站”,然后在“说明”框中为该网站键入一个名称。

  6. 在“端口”框中,键入 80 或 443。如果使用端口 443,则还必须选择“使用 SSL”。

  7. 为网站指定 IIS 主机标头。

    有关使用 IIS 主机标头为网站配置 SSL 的详细信息,请参阅配置 SSL 主机标头 (IIS 6.0)(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=111285&clcid=0x804)。

  8. 在“安全性配置”部分中,选择“协商(Kerberos)”。

  9. 在“应用程序池”部分中,接受默认设置“新建应用程序池”,然后为新应用程序池指定安全帐户。

  10. 单击“确定”。

  11. 重新启动 IIS。

    若要重新启动 IIS,请在命令提示符下,键入以下命令,然后按 Enter:

    Iisreset /restart /noforce

  12. 关闭命令提示符。

  13. 更新 DNS/WINS 以将 IIS 主机标头解析为 Web 前端服务器的 IP 地址。

在 Active Directory 中创建 SPN

  • 使用 Windows Server 2003 支持工具中的 Setspn.exe 工具,为配置为使用 Kerberos 身份验证的 Web 应用程序创建两个 SPN。一个 SPN 应使用该 Web 应用程序的 NetBIOS 名称,而另一个 SPN 应使用该 Web 应用程序的 DNS 完全限定的域名 (FQDN)。使用的语法如下:

    Setspn.exe -A HTTP/ServerName AdDomain/UserName

    其中 HTTP 是服务类别;ServerName 是 NetBIOS 名称或 FQDN;AdDomain 是 Active Directory 域;UserName 是 Web 应用程序的应用程序池的标识。

    下面的示例演示当为 Web 应用程序配置的主机标头是 server1.contoso.com 时 SPN 的显示外观。

    • NetBIOS SPN:HTTP/server1

    • FQDN SPN:HTTP/server1.contoso.com

确认已通过使用 Kerberos 身份验证成功浏览到 Web 应用程序

  1. 登录到服务器场所在的域中的一台计算机。确保此计算机不是服务器场中的前端 Web 服务器。

    Important重要说明:

    不要直接在承载使用了 Kerberos 身份验证的网站的任一计算机上验证 Kerberos 身份验证行为是否正确,而应在域中某一台单独的计算机上验证此行为。

  2. 在另一台计算机上打开 Web 浏览器并浏览到 Web 应用程序的 URL。

    应显示基于 Kerberos 身份验证的 Web 应用程序的主页。有关确认使用 Kerberos 身份验证访问 Web 应用程序的详细信息,请参阅配置 Kerberos 身份验证 (Office SharePoint Server) 中的“确认通过使用 Kerberos 身份验证成功访问 Web 应用程序”部分。

确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别

  • 若要使爬网程序能够通过 Web 应用程序的身份验证,则必须向爬网程序授予针对该 Web 应用程序的读取权限级别或更高权限级别。否则,爬网操作将失败。请确保满足下列条件之一:

    • 已存在一个爬网规则来指定已被授予针对 Web 应用程序的读取权限级别或更高权限级别的域帐户。

    • 分配给默认内容访问帐户的域帐户已被授予针对 Web 应用程序的读取权限级别或更高权限级别。

    有关爬网规则和默认内容访问帐户的信息,请参阅配置爬网程序进行验证的方式 (Office SharePoint Server 2007)

确认正确的搜索爬网行为

  1. 在“共享服务管理”页上的“搜索”部分中,单击“搜索设置”。

  2. 在“配置搜索设置”页上的“爬网设置”部分中,单击“内容源和爬网计划”。

    备注

    默认情况下,当服务器场管理员创建或扩展 Web 应用程序时,该 Web 应用程序的 URL 将会自动添加到默认内容源。默认情况下,此内容源称为“本地 Office SharePoint Server 网站”。您可以使用默认内容源来对新的 Web 应用程序执行完全爬网,不过这样做的同时还会对该内容源中指定的其他所有 Web 应用程序进行爬网。由于必须对新内容源执行完全爬网,因此使用默认内容源对内容进行爬网需要很长时间才能完成,具体取决于进行爬网的内容量。请考虑创建新内容源来对新的 Web 应用程序进行爬网,以避免对默认内容源中的所有内容进行爬网。如果您选择这样做,则首先需要从默认内容源中删除 Web 应用程序的 URL。有关创建内容源的信息,请参阅添加内容源以对 SharePoint 网站、网站、文件共享或 Microsoft Exchange 公用文件夹进行爬网 (Office SharePoint Server)

  3. 在“管理内容源”页上,指向要爬网的内容源,单击出现的箭头,然后单击出现的菜单上的“启动完全爬网”。

    备注

    在此步骤中,所选内容源的“状态”列中的值会变为“正在完全爬网”。但是,当完成爬网时,该页上的“状态”列中的值不会自动更改。若要更新“状态”列,则必须通过单击“刷新”来刷新“管理内容源”页。

  4. 等待爬网完成。如果爬网失败并返回“拒绝访问”错误,则可能是因为内容访问帐户无权访问内容源或 Kerberos 身份验证失败。由于只有完成了对基于 Kerberos 身份验证的 Web 应用程序的完全爬网后才可以确认搜索查询返回正确结果,因此您必须更正此错误才能继续操作。有关内容访问帐户的详细信息,请参阅确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别。

确认搜索查询返回正确结果

  1. 登录到服务器场所在的域中的一台计算机。确保此计算机不是服务器场中的前端 Web 服务器。

  2. 在该计算机上打开 Web 浏览器,浏览到已对其进行爬网的 Web 应用程序的首要网站。

  3. 当显示主页上时,请选择“此网站”搜索范围。

  4. 在“搜索”字段中键入关键字,然后按 Enter。

    提示

    使用网站中已存在的关键字。

  5. 确认已为 Web 应用程序返回搜索查询结果。如果未返回搜索查询结果,请确认以下内容:

    • 已键入的关键字为 Web 应用程序中存在的字词。

    • 索引正确运行。

    • Office SharePoint Server 搜索服务正在索引和查询服务器上运行。

    • 如果索引服务器还不是查询服务器,请确认从索引服务器到查询服务器的搜索传播工作正常。

  6. 向最终用户发布基于 Kerberos 身份验证的 Web 应用程序的 URL。

解决方案 2 的步骤概述

  1. 创建使用 NTLM 身份验证(默认身份验证方法)的 Web 应用程序。

  2. 在默认区域上扩展配置为使用 NTLM 身份验证的新 Web 应用程序,并配置一个不同的区域以使用 Kerberos 身份验证。

  3. 自行选择使 IIS 分配随机端口或提供非标准端口,并针对 Kerberos 身份验证配置已扩展 Web 应用程序的区域。

  4. 为配置为使用 Kerberos 身份验证的区域创建 SPN 以包括端口号,并配置浏览器。

  5. 确认通过使用 Kerberos 身份验证成功浏览到已扩展的 Web 应用程序。

  6. 确认通过使用 NTLM 身份验证成功浏览到 Web 应用程序。

  7. 确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别。

  8. 确认正确的搜索爬网行为。

  9. 确认搜索查询返回正确结果。

  10. 向最终用户发布使用 Kerberos 身份验证的 Web 应用程序的 URL。确保该 URL 包含端口号。

部署解决方案 2

创建使用 NTLM 身份验证的 Web 应用程序

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

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

  3. 在“创建或扩展 Web 应用程序”页上,单击“新建 Web 应用程序”。

  4. 在“新建 Web 应用程序”页上,在“IIS 网站”部分中,接受默认设置“新建 IIS 网站”,然后在“说明”框中为该网站键入一个名称。

  5. 在“端口”框中,执行下列操作之一:

    • 键入 80 或 443。如果使用端口 443,则还必须选择“使用 SSL”。

    • 键入一个非标准端口号或者使 IIS 分配一个非标准端口号。

  6. 为网站指定 IIS 主机标头。

    有关通过使用 IIS 主机标头为网站配置 SSL 的详细信息,请参阅配置 SSL 主机标头 (IIS 6.0)(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=111285&clcid=0x804)。

  7. 在“安全性配置”部分中,接受默认设置“NTLM”。

  8. 在“应用程序池”部分中,接受默认设置“新建应用程序池”,然后为新应用程序池指定安全帐户。

  9. 单击“确定”。

  10. 重新启动 IIS。

    若要重新启动 IIS,请在命令提示符下,键入以下命令,然后按 Enter:

    Iisreset /restart /noforce

  11. 关闭命令提示符。

  12. 更新 DNS/WINS 以将 IIS 主机标头解析为 Web 前端服务器的 IP 地址。

扩展 Web 应用程序以使用 Kerberos 身份验证。

  1. 在“创建或扩展 Web 应用程序”页上,单击“扩展现有 Web 应用程序”。

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

  3. 在“选择 Web 应用程序”页上,单击刚创建的 Web 应用程序。

  4. 在“IIS 网站”部分中,为已扩展的 Web 应用程序配置设置。

  5. 在“说明”框中,可以选择为已扩展的 Web 应用程序键入说明。

  6. 执行下列操作之一:

    1. 在“端口”框中,键入要使用的端口号。

    2. 使 IIS 分配一个随机端口号。

  7. 在“安全性配置”部分中,选择“协商(Kerberos)”。

  8. 在“负载平衡的 URL”部分中,选择要使用的区域,如 Intranet。

  9. 单击“确定”。

  10. 重新启动 IIS。

    若要重新启动 IIS,请在命令提示符下,键入以下命令,然后按 Enter:

    Iisreset /restart /noforce

    在服务器场中的所有前端 Web 服务器上执行该过程。

  11. 关闭命令提示符。

在 Active Directory 中创建 SPN 并配置浏览器

  1. 使用 Windows Server 2003 支持工具中的 Setspn.exe 工具来为 Web 应用程序创建两个 SPN。使用的语法如下:

    Setspn.exe -A HTTP/ServerName:Port AdDomain/UserName

    其中 HTTP 是服务类;ServerName 是 NetBIOS 名称或 FQDN;Port 是分配给已扩展 Web 应用程序的非标准端口或随机端口;AdDomain 是 Active Directory 域;UserName 是已扩展 Web 应用程序的应用程序池的标识。

  2. 如果将 Internet Explorer 用作浏览器,请对其进行配置以识别 SPN 中的端口号。有关配置 Internet Explorer 以包括 SPN 中的端口号的信息,请参阅知识库文章 908209 (https://go.microsoft.com/fwlink/?linkid=99681&clcid=0x804)。

确认已通过使用 Kerberos 身份验证成功浏览到 Web 应用程序

  1. 登录到服务器场所在的域中的一台计算机。

    Important重要说明:

    不要直接在承载使用了 Kerberos 身份验证的网站的任一计算机上验证 Kerberos 身份验证行为是否正确,而应在域中某一台单独的计算机上验证此行为。

  2. 在另一台计算机上打开 Web 浏览器,并浏览到配置为使用 Kerberos 身份验证的区域中的 Web 应用程序的 URL。

    应显示基于 Kerberos 身份验证的 Web 应用程序的主页。有关确认使用 Kerberos 身份验证访问 Web 应用程序的详细信息,请参阅配置 Kerberos 身份验证 (Office SharePoint Server) 中的“确认通过使用 Kerberos 身份验证成功访问 Web 应用程序”部分。

确认通过使用 NTLM 身份验证成功浏览到 Web 应用程序

  1. 登录到服务器场所在的域中的一台计算机。

    Note

    不要直接在承载所浏览网站的任一计算机上验证 NTLM 身份验证行为是否正确,而应在域中的其他计算机上验证此行为。

  2. 在另一台计算机上打开 Web 浏览器,并浏览到配置为使用 NTLM 身份验证的区域中的 Web 应用程序的 URL。

  3. 此时应显示基于 NTLM 身份验证的 Web 应用程序的主页。如果您看不到该主页,请调查并更正该错误。

确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别

  • 若要使爬网程序能够通过 Web 应用程序的身份验证,则必须向爬网程序授予针对该 Web 应用程序的读取权限级别或更高权限级别。否则,爬网操作将失败。请确保满足下列条件之一:

    • 已存在一个爬网规则来指定已被授予针对 Web 应用程序的读取权限级别或更高权限级别的域帐户。

    • 已向指定为默认内容访问帐户的域帐户授予了针对 Web 应用程序的读取权限级别或更高权限级别。

    有关爬网规则和默认内容访问帐户的信息,请参阅配置爬网程序进行验证的方式 (Office SharePoint Server 2007)

确认正确的搜索爬网行为

  1. 在“共享服务管理”页上的“搜索”部分中,单击“搜索设置”。

  2. 在“配置搜索设置”页上的“爬网设置”部分中,单击“内容源和爬网计划”。

  3. 在“管理内容源”页上,指向包含之前创建的 NTLM Web 应用程序的 URL 的内容源,单击出现的箭头,然后单击出现的菜单上的“启动完全爬网”。

    备注

    在此步骤中,所选内容源的“状态”列中的值会变为“正在完全爬网”。但是,当完成爬网时,该页上的“状态”列中的值不会自动更改。若要更新“状态”列,则必须通过单击“刷新”来刷新“管理内容源”页。

    等待爬网完成,然后查看有关所爬网的内容源的爬网日志以验证爬网是否失败并返回“拒绝访问”错误。如果爬网失败并返回“拒绝访问”错误,则爬网程序使用的内容访问帐户可能无权访问 Web 应用程序中的网站。由于只有完成了基于 Kerberos 身份验证的 Web 应用程序的完全爬网后才可以确认搜索查询返回正确结果,因此您必须更正此错误才能转到下一步。有关内容访问帐户的详细信息,请参阅本节前面的确保向爬网程序授予了针对 Web 应用程序的读取权限级别或更高权限级别部分。

确认搜索查询返回正确结果

  1. 登录到服务器场所在的域中的一台计算机。确保此计算机不是服务器场中的前端 Web 服务器。

  2. 在该计算机上打开 Web 浏览器,浏览到已对其进行爬网的 Web 应用程序的首要网站。

  3. 当显示主页上时,请选择“此网站”搜索范围。

  4. 在“搜索”字段中键入搜索关键字,然后按 Enter。

    提示

    使用网站中已存在的关键字。

  5. 确认已为 Web 应用程序返回搜索查询结果。如果未返回搜索查询结果,请确认以下内容:

    • 已键入的关键字为 Web 应用程序中存在的字词。

    • 查看有关所爬网的内容源的爬网日志以确保索引正确运行。

    • Office SharePoint Server 搜索服务正在索引和查询服务器上运行。

    • 如果索引服务器还不是查询服务器,请确认从索引服务器到查询服务器的搜索传播工作正常。

  6. 向最终用户发布基于 Kerberos 身份验证的 Web 应用程序的 URL 并确保该 URL 包含端口号。

另请参见

其他资源

Joel Oleson 的博客 SharePoint Land(该链接可能指向英文页面)