CIFS 约束委派失败,出现ACCESS_DENIED错误

本文有助于修复 访问在 中间层服务器上使用网络共享的服务时出现的拒绝访问错误。

原始 KB 数: 2602377

现象

访问使用中间层服务器上的网络共享的服务时,系统会提示用户输入凭据,最终遇到 访问被拒绝 错误。

示例方案

方案 1

系统会提示用户输入凭据,如果满足以下条件,则访问最终会失败,并出现拒绝访问错误:

  • IIS 网站使用指向远程共享的主目录进行设置,该目录使用为 CIFS 配置的直通身份验证和约束委派。
  • 访问该共享的 IIS 应用程序池在服务帐户的标识下运行。
  • 域帐户对于文件服务器上的 cifs 服务委派是受信任的。
  • 文件服务器和 Web 服务器正在运行“应用于”部分中列出的操作系统。

方案 2

  • Web 应用正在尝试以用户身份访问文件服务器。
  • 访问共享的 IIS 应用程序池在服务帐户的标识下运行。 域帐户对于文件服务器上的 cifs 服务委派是受信任的。
  • 为 CIFS 配置的约束委派是在文件服务器的服务帐户上配置的。
  • 文件服务器和 Web 服务器类型列在“应用于”部分。

场景 3:

  • 从客户端访问的任何服务器端应用程序都以用户身份访问远程共享。
  • 服务器端应用程序在服务帐户的上下文下运行。
  • 服务帐户受信任用于委派,并为文件服务器配置 CIFS 委派。
  • 文件服务器和 Web 服务器类型列在“应用于”部分。

原因

当涉及约束委派时,MrxSmb 2.0 和 Kerberos 之间已确定这一问题。

解决方法

解决方法 1

使用计算机帐户而不是服务帐户作为将执行 CIFS 约束委派的应用程序的标识。 当域功能级别为 Windows Server 2003、Windows Server 2008 或 Windows Server 2008 R2 时配置约束委派。

若要在 Web 服务器域的域控制器上执行此操作,请执行以下步骤:

  1. 依次单击“开始”、“管理工具”和“Active Directory 用户和计算机”。
  2. 展开域,然后展开“计算机”文件夹。
  3. 在右窗格中,右键单击 Web 服务器的计算机名称,选择“属性”,然后单击“委派”选项卡。
  4. 选中“信任此计算机以委派到指定的服务”复选框。
  5. 确保仅选中“使用 Kerberos”,然后单击“确定”。
  6. 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
  7. 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。

解决方法 2

如果必须使用应用程序的标识作为服务帐户和/或域帐户,请使用以下解决方法。

注意

不建议使用此解决方法,因为它需要在计算机帐户上使用任何身份验证协议委派。 如果选择了“使用任何身份验证协议”选项,则帐户将使用具有协议转换的约束委派。

  1. 依次单击“开始”、“管理工具”和“Active Directory 用户和计算机”。
  2. 展开域,然后展开“计算机”文件夹。
  3. 在右窗格中,右键单击 Web 服务器的计算机名称,选择“属性”,然后单击“委派”选项卡。
  4. 选中“信任此计算机以委派到指定的服务”复选框。
  5. 确保已选择“使用任何身份验证协议”,然后单击“确定”。
  6. 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
  7. 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。
  8. 在左窗格中,展开“用户”文件夹。
  9. 在右窗格中,右键单击应用程序池标识的服务帐户,选择“属性”,然后单击“委派”选项卡。
  10. 选中“信任此计算机以委派到指定的服务”复选框。
  11. 确保仅选中“使用 Kerberos”,然后单击“确定”。
  12. 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
  13. 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。