DelegConfig V2(测试版!):

DelegConfig V2(测试版!):

我们已建立了基于 WSS 的内部网,拥有两个前端和一个数据库。

当前所有身份验证都是 NTLM。

我们已经以集成模式安装了报告服务。

只要安装了 RS 的 Web 前端可以处理交易,RS 就可以正常工作。

如果没有 RS 的前端处理请求,那么我们会收到 UNAUTHORIZED 错误。

在尝试修复该问题时,网络搜索等都暗示该问题是由服务器场需要执行“双跳”身份验证引起的,而这无法通过 NTLM 实现。

因此我们需要配置 Intranet 场以接受 Kerberos 身份验证。

我觉得这很有帮助指导但这是我们从头开始建立农场的立场。

因此,我们需要知道追溯配置 Kerberos 是否存在风险?在我们执行启用 Kerberos 的步骤时和之后,NTLM 是否会继续像以前一样运行?

答案1

启用 Kerberos 委派以允许双跳存在一定风险。基本上,您允许 IIS 模拟用户,而无需用户再次输入任何凭据。在 Windows 2000 Active Directory 环境中,只有所谓的无约束委派。基本上,您无法限制委派的内容以及它可以很好地委派到哪里(以及您希望的程度)。在这些情况下,Microsoft 强烈建议不要使用 Kerberos 委派。如果您使用的是 Windows 2003 或 2008 Active Directory,则可以并且应该使用约束委派。这使您可以更具体地进行委派。在这种情况下,风险会增加,但通常您没有让用户重新输入凭据或您使用服务帐户或 SQL Server 登录这一事实值得增加风险。

至于 NTLM 是否会继续,这取决于具体情况。如果可以建立 Kerberos 身份验证,则会使用它。这包括它返回错误(而您认为不应该返回错误)的情况,例如 SPN 错误等。如果无法使用 Kerberos 身份验证,它只会返回到 NTLM。话虽如此,Kerberos 是较新的安全协议,具有 NTLM 所不具备的安全功能,包括时间戳(防止中继攻击)、客户端验证服务器身份的能力(NTLM 无法做到)以及使用票证,这应该可以减少对 DC 进行身份验证的总体流量。

答案2

我们通常会按照您的建议对 SharePoint NTLM 身份验证进行追溯更改。当我们建立 SharePoint 网站时,DNS 更改需要几天时间才能传播,在服务帐户上设置 SPN 通常也需要一些时间。

因此,在设置完 SPN 后,我们首先在 SP 应用池下运行的服务器上创建一个小型测试站点。我们打开 WIA 并在其中放置一个测试页面:

<%@ Page Language="C#" %>
<script runat="server" language="C#">
  void Page_Load(object Sender,EventArgs E)
  {
    if (User.Identity.IsAuthenticated) {
      lblIdentity.Text = User.Identity.Name;
    } else {
      lblIdentity.Text = "Anonymous";
    }
    lblImpersonation.Text =
      System.Security.Principal.WindowsIdentity.GetCurrent().Name;
  }
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <TITLE>Test Application</TITLE>
  </HEAD>
  <BODY>
    <FORM id="frmForm1" method="post" runat="server">
      <HR width="100%" size="1">
      <P>
        <ASP:LABEL id="Label1" runat="server">Current Identity:
          </ASP:LABEL>&nbsp;
        <ASP:LABEL id="lblIdentity" runat="server">Label</ASP:LABEL>
      </P>
      <P>
        <ASP:LABEL id="LABEL3" runat="server">Impersonated Identity:
          </ASP:LABEL>&nbsp;
        <ASP:LABEL id="lblImpersonation" runat="server">Label</ASP:LABEL></P>
      <HR width="100%" size="1">
    </FORM>
  </BODY>
</HTML>

浏览到 Fiddler 处于活动状态的页面,并确定 Kerberos 是否有效(Fiddler 的身份验证选项卡将告诉您是否使用 NTLM 或 Kerberos)。

一旦您知道 Kerberos 适用于您的服务帐户/服务器/URL,请继续在 SharePoint 中进行更改。

答案3

感谢两位回复者——他们都给出了很好的建议。

我想指出我们在为 Kerberos 配置服务器场时发现的一些其他工具:

DelegConfig V2(测试版!):

  • 作者:Brian Murphy-Booth如果没有这个我们就做不到 从他的博客下载您回答有关所需配置的问题,它会提供在哪里以及为什么它会或不会起作用 - 甚至有测试设施,如果在管理员帐户下运行,可以为您做出必要的更改。

元数据库资源管理器

  • 许多文章会告诉您使用 adsutil.vbs 来设置每个站点的 NTAuthenticationProviders 值。我们发现使用 Metabase Explorer 要容易得多 - 尤其是当我们必须在默认站点下的虚拟目录上设置值时。它还会揭示元数据库中许多可怕的值!小心使用! 的一部分IIS 6.0 资源工具包工具

相关内容