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 服务器域的域控制器上执行此操作,请执行以下步骤:
- 依次单击“开始”、“管理工具”和“Active Directory 用户和计算机”。
- 展开域,然后展开“计算机”文件夹。
- 在右窗格中,右键单击 Web 服务器的计算机名称,选择“属性”,然后单击“委派”选项卡。
- 选中“信任此计算机以委派到指定的服务”复选框。
- 确保仅选中“使用 Kerberos”,然后单击“确定”。
- 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
- 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。
解决方法 2
如果必须使用应用程序的标识作为服务帐户和/或域帐户,请使用以下解决方法。
注意
不建议使用此解决方法,因为它需要在计算机帐户上使用任何身份验证协议委派。 如果选择了“使用任何身份验证协议”选项,则帐户将使用具有协议转换的约束委派。
- 依次单击“开始”、“管理工具”和“Active Directory 用户和计算机”。
- 展开域,然后展开“计算机”文件夹。
- 在右窗格中,右键单击 Web 服务器的计算机名称,选择“属性”,然后单击“委派”选项卡。
- 选中“信任此计算机以委派到指定的服务”复选框。
- 确保已选择“使用任何身份验证协议”,然后单击“确定”。
- 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
- 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。
- 在左窗格中,展开“用户”文件夹。
- 在右窗格中,右键单击应用程序池标识的服务帐户,选择“属性”,然后单击“委派”选项卡。
- 选中“信任此计算机以委派到指定的服务”复选框。
- 确保仅选中“使用 Kerberos”,然后单击“确定”。
- 单击 “添加” 按钮。 在“添加服务”对话框中,单击“用户或计算机”,然后浏览到或输入将从 IIS 接收用户凭据的文件服务器的名称。 单击“确定”。
- 在“可用服务”列表中,选择 CIFS 服务。 单击“确定”。