适用于: SharePoint Server 2010
上一次修改主题: 2017-01-18
在第一个方案中,您将配置两个 SharePoint Server 2010 Web 应用程序使用 Kerberos 协议对传入客户端请求进行身份验证。出于演示目的,将一个 Web 应用程序配置为使用标准端口 (80/443),另一个将使用非默认端口 (5555)。该方案将用作以后所有方案的基础,这些方案假定下面的活动已经完成。
重要
必须通过 Kerberos 身份验证配置使用经典 Windows 身份验证的 Web 应用程序,以确保这些方案按预期方式工作。某些方案中可以使用 Windows 声明身份验证,但可能不会产生下面的方案中详述的结果。
备注
如果要在 Windows Server 2008 上安装,可能需要为 Kerberos 身份验证安装以下修补程序:
使用 AES 算法时,运行 Windows Server 2008 或 Windows Vista 的计算机上的 Kerberos 身份验证失败,并出现错误代码 0X80090302 或 0x8009030f (https://support.microsoft.com/kb/969083/zh-cn)
在本方案中,您将执行以下操作:
配置两个具有默认区域的 Web 应用程序,这些应用程序使用 Kerberos 协议进行身份验证
创建两个测试网站集,在每个 Web 应用程序中各创建一个
验证 Web 应用程序的 IIS 配置
验证客户端是否可以向 Web 应用程序进行身份验证并确保使用 Kerberos 协议进行身份验证
配置 RSS 查看器 Web 部件以便在本地和远程 Web 应用程序中显示 RSS 源
对每个 Web 应用程序进行爬网并测试在每个测试网站集中搜索内容
配置清单
| 配置区域 | 说明 |
|---|---|
DNS |
为 Web 应用程序网络负载平衡 (NLB) 虚拟 IP (VIP) 注册 DNS A 记录 |
Active Directory |
为 Web 应用程序的 IIS 应用程序池创建服务帐户 在为 Web 应用程序的 IIS 应用程序池创建的服务帐户上为 Web 应用程序注册服务主体名称 (SPN) 为服务帐户配置 Kerberos 约束委派 |
SharePoint Web App |
创建 SharePoint Server 托管帐户 创建 SharePoint Search Service 应用程序 创建 SharePoint Web 应用程序 |
IIS |
验证是否已启用 Kerberos 身份验证 验证是否已禁用内核模式身份验证 为 SSL 安装证书 |
Windows 7 客户端 |
确保 Web 应用程序 URL 位于 Intranet 区域中,或位于配置为自动通过集成 Windows 身份验证进行身份验证的区域中 |
防火墙配置 |
打开防火墙端口以允许默认和非默认端口上的 HTTP 流量 确保客户端可以连接到 Active Directory 上的 Kerberos 端口 |
测试浏览器身份验证 |
验证身份验证在浏览器中是否正常工作 验证 Web 服务器的安全事件日志中的登录信息 使用第三方工具确认 Kerberos 身份验证的配置是否正确 |
测试 SharePoint Server 搜索索引和查询 |
验证是否可从索引服务器进行浏览器访问 上载示例内容并执行爬网 测试搜索 |
测试 WFE 委派 |
在每个网站集上配置 RSS 源的源位置 将 RSS 查看器 Web 部件添加到每个网站集的主页中 |
分步配置说明
配置 DNS
为您所在环境中的 Web 应用程序配置 DNS。在本例中,有 2 个 Web 应用程序,分别为 http://portal 和 http://teams:5555,它们均解析到同一 NLB VIP (192.168.24.140/24)
有关如何配置 DNS 的常规信息,请参阅管理 DNS 记录(该链接可能指向英文页面)。
SharePoint Server Web 应用程序
http://portal — 为门户 Web 应用程序配置新的 DNS A 记录。在本例中,我们将宿主“portal”配置为解析到负载平衡 VIP。
.jpg)
http://teams:5555 — 为工作组的 Web 应用程序配置新的 DNS A 记录
.jpg)
备注
在具有多个使用主机标头和单独的专用服务帐户运行的 Web 应用程序的环境中,若要成功进行 Kerberos 身份验证,必须确保 DNS 条目是 A 记录而不是 CNAME 别名,这一点很重要。有关对支持 Kerberos 的 Web 应用程序使用 CNAME 的已知问题的说明,请参阅 Kerberos 配置的已知问题 (SharePoint Server 2010)。
配置 Active Directory
接下来,您将为所在环境中的 Web 应用程序配置 Active Directory 帐户。作为最佳实践,应将每个 Web 应用程序配置为使用其各自的安全性上下文(应用程序池标识)在其各自的 IIS 应用程序池中运行。
SharePoint Service 应用程序服务帐户
在本例中,有两个 SharePoint Server Web 应用程序,它们使用其各自的应用程序池标识在两个单独的 IIS 应用程序池中运行。
| Web 应用程序(默认区域) | IIS 应用程序池标识 |
|---|---|
vmlab\svcPortal10App |
|
vmlab\ svcTeams10App |
服务主体名称 (SPN)
对于每个服务帐户,分别配置一组映射至分配给每个 Web 应用程序的 DNS 主机名的服务主体名称。
使用 Windows Server 2008 中的命令行工具 SetSPN 配置新的服务主体名称。有关如何使用 SetSPN 的完整说明,请参阅 Setspn(该链接可能指向英文页面)。若要了解 Windows Server 2008 中的 SetSPN 改进,请参阅关怀、分享和成长!Windows Server 2008 上 SETSPN.EXE 中的新功能(该链接可能指向英文页面)。
所有 SharePoint Server Web 应用程序均使用以下 SPN 格式,而与端口号无关:
HTTP/<DNS 主机名>
HTTP/<DNS FQDN>
示例:
HTTP/portal
HTTP/portal.vmlab.local
对于运行在非默认端口(80/443 之外的端口)上的 Web 应用程序,请注册带有端口号的其他 SPN:
HTTP/<DNS 主机名>:<端口>
HTTP/<DNS FQDN>:<端口>
示例:
HTTP/teams:5555
HTTP/teams.vmlab.local:5555
备注
有关为什么建议为运行在非默认端口(80、443)上的 HTTP 服务配置带和不带端口号的 SPN 的说明,请参阅附录。从技术上讲,引用运行在非默认端口上的 HTTP 服务的正确方式是在 SPN 中包括端口号,但由于附录中所述的已知问题,我们同样需要配置不带端口的 SPN。请注意,在本例中,“teams”Web 应用程序的 SPN 不带端口并不意味着将使用默认端口(80、443)访问服务。
在本例中,我们为在上一步骤中创建的两个帐户配置了以下服务主体名称:
| DNS 主机 | IIS 应用程序池标识 | 服务主体名称 |
|---|---|---|
Portal.vmlab.local |
vmlab\svcPortal10App |
HTTP/portal HTTP/portal.vmlab.local |
Teams.vmlab.local |
vmlab\ svcTeams10App |
HTTP/Teams HTTP/Teams.vmlab.local HTTP/Teams:5555 HTTP/Teams.vmlab.local:5555 |
为创建服务主体名称,我们执行了下列命令:
SetSPN -S HTTP/Portal vmlab\svcportal10App
SetSPN -S HTTP/Portal.vmlab.local vmlab\svcportal10App
SetSPN -S HTTP/Teams vmlab\svcTeams10App
SetSPN -S HTTP/Teams.vmlab.local vmlab\ svcTeams10App
SetSPN -S HTTP/Teams:5555 vmlab\ svcTeams10App
SetSPN -S HTTP/Teams.vmlab.local:5555 vmlab\ svcTeams10App
重要
不要使用 HTTPS 配置服务主体名称,即使 Web 应用程序使用 SSL 也是如此。
在示例中,我们使用了 Windows Server 2008 中引入的新命令行开关 -S 来检查 SPN 是否存在,然后再在帐户上创建 SPN。如果 SPN 已存在,则不会创建新 SPN,并且您会看到错误消息。
如果发现重复的 SPN,您必须解决该问题,方法是对 Web 应用程序使用其他 DNS 名称,并据此更改 SPN,或者从发现现有 SPN 的帐户中删除该 SPN。
重要
在删除现有 SPN 之前,请确保不再需要它,否则可能会破坏您所在环境中其他应用程序的 Kerberos 身份验证。
服务主体名称和 SSL
对于 http Web 应用程序,通常会混淆 Kerberos 服务主体名称和 URL,因为 SPN 和 URI 格式在语法上非常类似,但必须理解它们是截然不同的两个概念,这一点很重要。Kerberos 服务主体名称用于标识服务,当该服务是 http 应用程序时,服务方案是“HTTP”,而无论是否通过 SSL 访问该服务。这意味着,即使您使用“https://someapp”访问 Web 应用程序,也不会并且不应使用 HTTPS 配置服务主体名称(例如“HTTPS/someapp”)。
为计算机和服务帐户配置 Kerberos 约束委派
根据具体方案,SharePoint Server 2010 中的某些功能可能需要约束委派才能正常运行。例如,如果 RSS 查看器 Web 部件配置为显示经过身份验证的源位置中的 RSS 源,则它将需要委派才能使用源位置中的源。在其他情形下,可能需要配置约束委派才能允许服务应用程序(例如 Excel Services)将客户端的标识委派给后端系统。
在该方案中,我们将配置 Kerberos 约束委派以允许 RSS 查看器 Web 部件从远程 Web 应用程序读取受保护的本地 RSS 源和受保护的远程 RSS 源。在后面的方案中,我们将为其他 SharePoint Server 2010 服务应用程序配置 Kerberos 约束委派。
下面的图表从概念上描述了将在该方案中配置的内容:
.jpg)
我们有两个 Web 应用程序,每个应用程序都有各自的网站集以及一个承载两个 RSS 查看器 Web 部件的网站页。每个 Web 应用程序均具有一个配置为使用 Kerberos 身份验证的默认区域,因此来自这些网站的所有源都需要身份验证。在每个网站中,将一个 RSS 查看器配置为读取列表中的本地 RSS 源,将另一个配置为读取远程网站中的身份验证源。
为实现这一目的,应将 Kerberos 约束委派配置为允许 IIS 应用程序池服务帐户之间的委派。下面的图表从概念上描述了所需的约束委派路径:
.jpg)
请注意,我们通过服务名称标识 Web 应用程序,而服务名称使用分配给 IIS 应用程序池的标识的服务主体名称 (SPN)。必须允许处理请求的服务帐户将客户端标识委派给指定的服务。总而言之,我们需配置以下约束委派路径:
| 主体类型 | 主体名称 | 委派给服务 |
|---|---|---|
用户 |
svcPortal10App |
HTTP/Portal HTTP/Portal.vmlab.local HTTP/Teams HTTP/Teams.vmlab.local HTTP/Teams:5555 HTTP/Teams.vmlab.local:5555 |
用户 |
svcTeams10App |
HTTP/Portal HTTP/Portal.vmlab.local HTTP/Teams HTTP/Teams.vmlab.local HTTP/Teams:5555 HTTP/Teams.vmlab.local:5555 |
备注
配置从服务到其自身的委派看起来似乎是多余的,例如委派到门户服务应用程序的门户服务帐户,但是如果有多台服务器在运行该服务,则必须这样做。这是为了解决一台服务器可能需要委派到另一台运行同一服务的服务器的情形;例如,WFE 通过 RSS 查看器处理将本地 Web 应用程序用作数据源的请求。根据服务器场拓扑和配置的不同,RSS 请求可能由另一台需要委派才能正确运行的服务器提供服务。
要配置委派,您可以使用 Active Directory 用户和计算机管理单元。右键单击每个服务帐户并打开属性对话框。在对话框中,您将看到一个委派选项卡(请注意,仅当为对象分配了 SPN 时,才会显示该选项卡;默认情况下计算机具有 SPN)。在委派选项卡上,选择“仅信任此用户作为指定服务的委派”,然后选择“使用任意的身份验证协议”。
单击“添加”按钮添加将允许用户(服务帐户)委派到的服务。要选择 SPN,可以查找 SPN 应用到的对象。在本例中,我们尝试委派到 HTTP 服务,这意味着我们要搜索在上一步中向其分配 SPN 的 IIS 应用程序池的服务帐户。
在“选择用户或计算机”对话框中,单击“用户和计算机”,搜索 IIS 应用程序池服务帐户(在本例中为 vmlab\svcPortal10App 和 vmlab\svcTeams10App),然后单击“确定”。
系统随后会提示您按服务主体名称选择分配给对象的服务。
在“添加服务”对话框中,单击“全选”,然后单击“确定”。请注意,在返回到委派对话框时,您不会实际看到选择的所有 SPN。若要查看所有 SPN,请选中左下角的“已展开”复选框。
对您所在环境中需要委派的每个服务帐户执行这些步骤。在本例中这是服务帐户列表
配置 SharePoint Server
配置 Active Directory 和 DNS 后,即可在 SharePoint Server 2010 服务器场中创建 Web 应用程序。本文假定此时 SharePoint Server 安装已完成,并且配置了服务器场拓扑和支持基础结构(例如负载平衡)。有关如何安装和配置 SharePoint 场的详细信息,请参阅部署 SharePoint Server 2010。
配置托管服务帐户
在创建 Web 应用程序之前,请将在之前步骤中创建的服务帐户配置为 SharePoint Server 中的托管服务帐户。提前这样做可以在创建 Web 应用程序时跳过此步骤。
配置管理帐户
在 SharePoint 管理中心中,单击“安全”。
在“一般安全性”下,单击“配置管理帐户”:
单击“注册管理帐户”并为每个服务帐户创建一个管理帐户。在本例中,我们创建了五个托管服务帐户:
帐户 用途 VMLAB\svcSP10Search
SharePoint Search Service 帐户
VMLAB\svcSearchAdmin
SharePoint 搜索管理服务帐户
VMLAB\svcSearchQuery
SharePoint 搜索查询服务帐户
VMLAB\svcPortal10App
门户 Web 应用程序 IIS 应用程序池帐户
VMLAB\svcTeams10App
工作组 Web 应用程序 IIS 应用程序池帐户
备注
SharePoint Server 2010 中的管理帐户与 Windows Server 2008 R2 Active Directory 中的托管服务帐户不同。
创建 SharePoint Server 搜索服务应用程序
在本例中,我们将配置 SharePoint Server 搜索服务应用程序,以确保新创建的 Web 应用程序可以成功爬网和搜索。新建一个 SharePoint Server 搜索 Web 应用程序并在应用程序服务器上放置搜索、查询和管理服务,在此示例中为 vmSP10App01。有关如何配置 Search Service 应用程序的详细说明,请参阅循序渐进:设置 Search Service 应用程序(该链接可能指向英文页面)。
备注
仅出于演示目的,才将所有 Search Service 放在一台应用程序服务器上。有关 SharePoint Server 2010 搜索拓扑选项和最佳实践的完整说明不在本文档的讨论范围之内。
创建 Web 应用程序
浏览到管理中心并导航至“应用程序管理”部分中的“管理 Web 应用程序”。在工具栏中,选择“新建”,并创建 Web 应用程序。确保配置了以下内容:
选择“经典模式身份验证”。
为每个 Web 应用程序配置端口和主机标头。
选择“协商”作为身份验证提供程序。
在应用程序池下,选择“新建应用程序池”并选择在上一步中创建的管理帐户。
在本例中,使用以下设置创建了两个 Web 应用程序:
| 设置 | http://Portal Web 应用程序 | http://Teams Web 应用程序 |
|---|---|---|
身份验证 |
经典模式 |
经典模式 |
IIS 网站 |
名称:SharePoint – 门户 – 80 端口:80 主机标头:门户 |
名称:SharePoint – 工作组 – 5555 端口:80 主机标头:工作组 |
安全配置 |
身份验证提供程序:协商 允许匿名访问:否 使用安全套接字层:否 |
身份验证提供程序:协商 允许匿名访问:否 使用安全套接字层:否 |
公用 URL |
http://Portal:80 |
http://Teams:5555 |
应用程序池 |
名称:SharePoint – Portal80 安全帐户:vmlab\svcPortal10App |
名称:SharePoint – Teams5555 安全帐户:vmlab\svcTeams10App |
在创建新 Web 应用程序时,还要创建一个配置为使用 Windows 身份验证提供程序的新区域(即默认区域)。您可以在 Web 应用程序管理中看到该提供程序及其区域设置,方法是首先选择该 Web 应用程序,然后单击工具栏中的“身份验证提供程序”。身份验证提供程序对话框列出了选定 Web 应用程序的所有区域以及每个区域的身份验证提供程序。通过选择该区域,您将看到该区域的身份验证选项。
如果 Windows 设置配置不当并在创建 Web 应用程序时选择了 NTLM,则可以对该区域使用编辑身份验证对话框,以便将该区域从 NTLM 切换到“协商”。如果未选择“经典模式”作为身份验证模式,则必须通过将 Web 应用程序扩展到一个新 IIS 网站来创建一个新区域,或者删除并重新创建该 Web 应用程序。
创建网站集
要测试身份验证是否正常工作,您需要在每个 Web 应用程序中至少创建一个网站集。该网站集的创建和配置不会影响 Kerberos 功能,因此请遵循创建网站集 (SharePoint Foundation 2010) 中有关如何创建网站集的现有指南。
对于此示例,我们配置了两个网站集:
| Web 应用程序 | 网站集路径 | 网站集模板 |
|---|---|---|
http://portal |
/ |
发布门户 |
http://teams:5555 |
/ |
工作组网站 |
创建备用访问映射
门户 Web 应用程序将配置为使用 HTTPS 以及 HTTP 来演示委派如何与 SSL 保护的服务一起工作。要配置 SSL,门户 Web 应用程序需要对 HTTPS 端点使用另一个 SharePoint Server 备用访问映射 (AAM)。
配置备用访问映射
在管理中心中,单击“应用程序管理”。
在“Web 应用程序”下,单击“配置备用访问映射”。
在“选择备用访问映射集”下拉列表中,选择“更改备用访问映射集”。
选择门户 Web 应用程序。
单击顶部工具栏中的“编辑公用 URL”。
在可用区域中,为 Web 应用程序添加 https URL。此 URL 将是在后续步骤中创建的 SSL 证书上的名称。
单击“保存”。
现在应该会在 Web 应用程序的区域列表中看到该 HTTPS URL。
IIS 配置
安装 SSL 证书
您需要在承载 Web 应用程序服务的每台 SharePoint Server 上为使用 SSL 的每个 Web 应用程序配置一个 SSL 证书。有关如何配置 SSL 证书和证书信任的主题也不在本文档的讨论范围之内。有关在 IIS 中配置 SSL 证书的参考资料,请参阅本文档的“SSL 配置”一节。
验证是否启用了 Kerberos 身份验证
验证是否在网站上启用了 Kerberos 身份验证
打开 IIS 管理器。
选择要验证的 IIS 网站。
在功能视图中的 IIS 下,双击“身份验证”。
选择应启用的“Windows 身份验证”。
在右侧的“操作”下,选择“提供程序”。验证“协商”是否位于列表顶部。
验证是否禁用了内核模式身份验证
**SharePoint Server 2010 中不支持内核模式身份验证。**默认情况下,所有 SharePoint Server Web 应用程序都应在其对应的 IIS 网站上禁用内核模式身份验证。即使是在现有 IIS 网站上配置了 Web 应用程序的情形中,SharePoint Server 也禁用内核模式身份验证,因为它会在现有 IIS 网站上设置一个新 Web 应用程序。
验证是否禁用了内核模式身份验证
打开 IIS 管理器。
选择要验证的 IIS 网站。
在功能视图中的 IIS 下,双击“身份验证”。
选择应启用的“Windows 身份验证”。
单击“高级设置”。
验证 EAP 和内核模式身份验证是否均已禁用。
配置防火墙
在测试身份验证之前,请确保客户端可以在配置的 HTTP 端口上访问 SharePoint Server Web 应用程序。另外,请确保客户端可以向 Active Directory 进行验证身份,并通过标准 Kerberos 端口从 KDC 请求 Kerberos 票证。
打开防火墙端口以允许默认和非默认端口上的 HTTP 流量
通常,您必须在每个前端 Web 上配置防火墙以允许端口 TCP 80 和 TCP 443 上的传入请求。打开高级安全 Windows 防火墙并通过浏览找到下列入站规则:
万维网服务(HTTP 流入量)
万维网服务(HTTPS 流入量)
确保适当的端口在您的环境中处于打开状态。在本例中,我们通过 HTTP(端口 80)访问 SharePoint Server,因此启用了此规则。
此外,我们还必须打开示例中使用的非默认端口 (TCP 5555)。如果您有在非默认端口上运行的网站,还必须配置自定义规则以允许这些端口上的 HTTP 流量。
确保客户端可以连接到 Active Directory 角色上的 Kerberos 端口
要使用 Kerberos 身份验证,客户端必须通过 UDP 或 TCP 端口 88 从密钥发行中心 (KDC) 请求票证授予票证 (TGT) 和服务票证 (ST)。默认情况下,当您在 Windows Server 2008 和更高版本中安装 Active Directory 角色时,默认情况下该角色将配置以下传入规则来允许此通信:
Kerberos 密钥发行中心 – PCR (TCP-In)
Kerberos 密钥发行中心 – PCR (UDP-In)
Kerberos 密钥发行中心 (TCP-In)
Kerberos 密钥发行中心 (UDP-In)
在您的环境中,请确保启用这些规则并且客户端可以通过端口 88 连接到 KDC(域控制器)。
测试浏览器身份验证
在配置 Active Directory、DNS 和 SharePoint Server 后,您现在可以通过浏览到 Web 应用程序来测试 Kerberos 身份验证的配置是否正确。在浏览器中测试时,请确保满足下列条件:
测试用户登录到已加入安装了 SharePoint Server 的域的 Windows XP、Vista 或 Windows 7 计算机,或者登录到 SharePoint Server 域信任的域。
测试用户使用的是 Internet Explorer 7.0 或更高版本(Internet Explorer 6.0 在 SharePoint Server 2010 中不再受支持;请参阅规划浏览器支持 (SharePoint Server 2010))。
浏览器中启用了集成 Windows 身份验证。在“Internet 选项”下的“高级”选项卡中,确保在“安全”部分中启用“启用集成 Windows 验证*”:
本地 Intranet 配置为自动登录客户端。在 Internet Explorer 选项下的“安全”选项卡上,选择“本地 Intranet”并单击“自定义级别”按钮。向下滚动并确保选择“只在 Intranet 区域自动登录”。
备注
可以在其他区域上配置自动登录,但有关 IE 安全区域最佳实践的主题不在本文的讨论范围之内。对于本文的演示,会将 Intranet 区域用于所有测试。
确保在“Internet 选项”->“安全”->“本地 Intranet”->“站点”中选择了“自动检测 Intranet 网络”。
如果您使用完全限定域名访问 SharePoint Server Web 应用程序,请确保明确或使用通配符包含(例如“*.vmlab.local”)将 FQDN 包括在 Intranet 区域中。
确定是否在使用 Kerberos 身份验证的最简单方式是登录到测试工作站并导航至相关网站。如果未提示用户输入凭据并且网站正确呈现,则可以认为使用的是集成 Windows 身份验证。下一步是确定协商协议是否作为请求的身份验证提供程序用于协商 Kerberos 身份验证。可通过下列方式完成此操作:
前端 Web 安全日志
如果 Kerberos 身份验证正常工作,您将在前端 Web 上的安全事件日志中看到登录事件(事件 ID = 4624)。在这些事件的一般信息中,您应看到所登录计算机的安全 ID 以及使用的登录进程(应为“Kerberos”)。
KList
KList 是包含在 Windows Server 2008 和 Windows Server 2008 R2 的默认安装中的命令行实用工具,可用于在给定计算机上列出和清除 Kerberos 票证。若要运行 KLIST,请在 Windows Server 2008 中打开命令提示符并键入 Klist。
如果要清除票证缓存,请带可选的 purge 参数运行 Klist:Klist purge
KerbTray
KerbTray 是 Windows Server 2000 资源工具包工具附带的一个免费实用工具,可安装在客户端计算机上用于查看 Kerberos 票证缓存。可从 Windows 2000 资源工具包工具:Kerbtray.exe(该链接可能指向英文页面) 下载并安装。安装后,请执行下列操作:
导航到使用 Kerberos 身份验证的网站。
运行 KerbTray.exe。
查看 Kerberos 票证缓存,方法是右键单击系统托盘中的 kerb 托盘图标并选择“List Tickets”(列出票证)。
确认进行身份验证的 Web 应用程序的服务票证位于缓存票证列表中。在本例中,我们导航至注册了以下 SPN 的下列网站:
网站 URL SPN http://portal
HTTP/Portal.vmlab.local
http://teams:5555
HTTP/Teams.vmlab.local
Fiddler
Fiddler 是一个免费的 HTTP 流量分析器,可从以下位置下载:http://www.fiddlertool.com/(该链接可能指向英文页面)。在 Fiddler 中,您将看到客户端和服务器协商 Kerberos 身份验证,并能够看到客户端在每个请求的 HTTP 标头中向服务器发送 Kerberos 服务票证。若要使用 Fiddler 验证 Kerberos 身份验证是否正常工作,请执行下列操作:
在客户端计算机上下载并安装 Fiddler (www.fiddlertool.com(该链接可能指向英文页面))。
从桌面注销并重新登录以刷新与 Web 服务器的任何缓存连接并强制浏览器协商 Kerberos 身份验证和执行身份验证握手。
启动 Fiddler。
打开 Internet Explorer 并通过浏览找到 Web 应用程序(本例中为 http://portal)。
您应在 Fiddler 中看到对 SharePoint Server 前端 Web 的请求和响应。
第一个 HTTP 401 是执行 GET 请求而不进行身份验证的浏览器尝试。作为响应,服务器会发送回“HTTP 401 – 未经授权”,并在此响应中指示它支持的身份验证方法。在下一个请求中,客户端会重新发送上一个请求,但这次会在请求标头中发送 Web 应用程序的服务票证。如果身份验证成功,服务器将发送回请求的资源。
NetMon 3.4
NetMon 3.4 是 Microsoft 提供的免费网络数据包分析器,可从 Microsoft 下载中心下载:Microsoft 网络监视器 3.4(该链接可能指向英文页面)。
在 NetMon 中,您会看到对 KDC 和 SharePoint Server Web 服务器的所有 TCP 请求和响应,从而为您提供构成完整身份验证请求的完整流量视图。若要使用 netmon 验证 Kerberos 身份验证是否正常工作,请执行下列操作:
下载并安装 NetMon 3.4(Microsoft 网络监视器 3.4(该链接可能指向英文页面))。
从客户端注销然后重新登录以刷新 Kerberos 票证缓存。也可以使用 KerbTray 清除票证缓存,方法是右键单击 KerbTray 并选择“清除票证”。
在管理员模式下启动 NetMon。右键单击 NetMon 快捷方式并选择“以管理员身份运行”。
在连接到环境中 Active Directory 控制器和 Web 前端的接口上开始一项新捕获。
打开 Internet Explorer,通过浏览找到相应的 Web 应用程序。
在网站呈现后,停止捕获并添加一个显示筛选器来显示 Kerberos 身份验证和 HTTP 流量的帧。
在帧窗口中,应同时看到 HTTP 和 KerberosV5 流量。
通过 SSL 测试 Kerberos 身份验证
为了清晰演示客户端访问受 SSL 保护的资源时请求的 SPN,您可以使用诸如 netmon 之类的工具来捕获客户端与服务器之间的流量,并检查 Kerberos 服务票证请求。
注销然后重新登录客户端计算机,或者使用 KerbTray 清除所有缓存的 Kerberos 票证。
在客户端计算机上开始新的 NetMon 捕获。务必使用管理员权限启动 NetMon。
使用 SSL 浏览至 Web 应用程序(在本例中为 https://portal)。
停止 NetMon 捕获并检查 KerberosV5 流量。有关如何筛选捕获显示的说明,请参阅本文的 NetMon 3.4 一节中的说明。
查找客户端发送的 TGS 请求。在该请求中,您会看到“Sname”参数中请求的 SPN。
请注意,“Sname”是 HTTP/portal.vmlab.local 而非 HTTPS/portal.vmlab.local。
测试 SharePoint Server 搜索索引和查询
验证是否可从索引服务器进行浏览器访问
在运行爬网之前,确保索引服务器可以访问 Web 应用程序并成功进行身份验证。登录索引服务器并在浏览器中打开测试网站集。如果这些网站成功呈现且未显示任何身份验证对话框,请继续下一步。如果在浏览器中访问网站时出现任何问题,请返回之前的步骤以确保所有配置操作都已正确执行。
上载示例内容并执行爬网
在每个网站集中,将“种子”文档(在搜索中可轻松识别的文档)上载到网站集中的文档库。例如,创建一个包含单词“alpha、beta、delta”的文本文档并将其保存至每个网站集中的文档库。
接下来,浏览到 SharePoint 管理中心并在本地 SharePoint 网站内容源(默认情况下应包含两个测试网站集)上开始完全爬网。
测试搜索
如果成功完成索引编制,您应该看到索引中的可搜索项并且爬网日志中不包含任何错误。
备注
如果您已配置用户配置文件应用程序 (UPA) 并且要对配置文件存储执行爬网,请务必在 UPA 上配置相应的权限,以允许内容访问帐户访问配置文件数据。如果您尚未配置 UPA 权限,则会在爬网日志中收到错误,指示爬网程序无法访问配置文件服务,因为它在尝试访问该服务时收到 HTTP 401。返回 401 不是因为 Kerberos,而是因为内容访问帐户没有读取配置文件数据的权限。
接下来,通过浏览找到每个网站集并对种子文档执行搜索。每个网站集的搜索查询均应返回上载的种子文档。
测试前端 Web 委派
作为该方案的最后一步,您需要在每个网站集上使用 RSS 查看器 Web 部件,以确保该委派在本地和远程都能正常工作。
在每个网站集上配置 RSS 源的源位置
对于门户应用程序,您必须在网站集上启用 RSS 源。若要启用 RSS 源,请按照 Office.com 上管理 RSS 源中的说明操作。
启用 RSS 源后,创建一个新自定义列表并添加列表项以用于测试目的。导航至“列表”工具栏菜单并单击“RSS 源”以查看 RSS 源。复制源 URL 以便在后续步骤中使用。
对每个网站集分别执行此步骤。
将 RSS 查看器 Web 部件添加到每个网站集的主页中
在门户应用程序上,您需要启用 SharePoint 企业版功能的网站集功能以使用 RSS 查看器 Web 部件。启用后,将两个 RSS 查看器 Web 部件添加到主页中。对于第一个 Web 部件,将源 URL 配置为指向您在上一步中创建的本地 RSS 源。对于第二个 Web 部件,将源 URL 配置为指向远程源 URL。完成后,您应看到两个 Web 部件均能成功地呈现本地和远程 RSS 源中的内容。