【问题标题】:Pass-Through Authentication - IIS Virtual Directory直通身份验证 - IIS 虚拟目录
【发布时间】:2019-09-09 14:38:38
【问题描述】:

(Intranet)我正在尝试设置一个网站,该网站将从网络共享(\\servername\folder\file)中提供文件。只有通过活动目录组访问网络文件夹的用户才能通过网站下载文件。

这是我现在的设置:

网站:

应用程序池:默认应用程序池

身份验证:Windows 身份验证

子网站:

应用程序池:默认应用程序池

身份验证:Windows 身份验证

虚拟目录:

物理路径:\\servername\Folder

物理路径凭据:应用程序用户(直通身份验证)

登录类型:明文

当我尝试使用如下链接导航到该站点时:http://webserver/subsite/virtualdirectory/folder/file.xls,即使我输入的凭据应该是有效的,我也会反复提示我输入凭据。在虚拟目录设置中,如果我将其从传递更改为“特定用户”,它可以工作,但会绕过活动目录组的安全性。

我在这里配置错误吗?

注意,我已经看过Pass-through authentication not working. IIS 7

【问题讨论】:

  • 我是否在物理路径的开头看到\\ ?那是不同服务器上的路径吗?
  • \\server\folder 等。它是网络驱动器/文件夹的 UNC 路径
  • 应用程序池是否在域帐户下运行?
  • 现在是用ApplicationPoolIdentity设置的,我相信是本地机器账户,但是即使我把它改成域账户,结果也是一样的
  • 您是否试图让它使用登录您网站的用户的凭据来访问共享?

标签: iis active-directory windows-authentication


【解决方案1】:

有两个单独的身份验证正在进行:

  1. 用户正在对您的网站进行身份验证。
  2. IIS 正在对文件共享进行身份验证。

这些是完全独立的操作。

我相信您遇到了double hop problem:您可以使用用户的凭据在您的服务器上进行身份验证,但您不能(默认情况下)将这些凭据发送到另一台服务器。为此,您可以在 Active Directory 中设置 Kerberos 委派,can get complicated

如果设置委托不是一个选项,那么您将不得不寻找另一种方式将这些文件提供给用户。

如果您真的希望共享的共享权限决定谁可以通过该站点下载文件,我同意这是一个难以解决的问题。一种选择是直接链接到共享(如果用户的计算机可以通过网络访问服务器):

<a href="file://servername/Folder/somefile.txt">Download</a>

这在 IE 中有效,但在 Chrome 中无效,因为 Chrome 专门禁用了 file:// 链接(除非您通过 plugin 启用它)。

另一个更复杂的选择是通过您的应用程序传输文件。您的应用程序可以访问该文件并枚举共享权限以查看用户是否具有访问权限,如果有,则允许下载。但众所周知,NTFS 权限很难通过。

或者只是忽略共享权限并找到其他方法来确定该人是否应该具有访问权限(例如,一个特定的安全组),而不是依赖共享权限。

【讨论】:

  • 感谢您提供此信息。证实了我的很多怀疑。我们正在使用特定的组进行访问,问题是我曾计划使用 WebDav 来允许将更新保存回原始文件位置,而不是下载本地副本。
  • 我不明白的是,如果我只使用常规的“共享”文件夹作为虚拟目录而不是“网络驱动器”,我将如何获得预期的结果。我可以设置为“直通”,不在我指定的组内的用户无法访问该文件,而在该组内的用户可以访问它...
  • 我不确定您所说的“常规共享文件夹”是什么意思
  • 如果我右键单击一个文件夹并共享它...这些类型的文件夹似乎表现不同,一切正常
  • @KellyElton 我更新了我的答案以删除该部分,但其余部分仍然有效。问题很可能是双跳问题。如果共享的文件与网站位于同一台服务器上,它可能会正常工作。
【解决方案2】:

恐怕指定用户是实现这一目标的唯一方法。

我建立了一个共享文件夹,例如 \\server\shared。 当我监控 NTLM 身份验证时,我还注意到,如果我指定用户为 Pass-through,那么 IIS 将尝试使用大写 \\SERVER\SHARED 访问路径并拒绝访问。

但是,如果我指定用户进行身份验证,NTLM 工作正常,工作进程将不会执行相同的操作。我还注意到工作和非工作操作的用户身份是相同的。

我在工作站和域环境中都试过了。但是,NTLM 和 Kerberos 的结果是相同的。所以我认为您可能需要接受特定用户作为解决方法。

【讨论】:

  • 特定用户不是解决方法,因为它绕过了 AD 组的安全实施
  • 我也有同样的经历。当直接在 IIS 中为我​​的虚拟目录设置用户时,它可以工作。如果我使用直通身份验证,访问被拒绝。
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多