我在从除 IIS 和 Exchange 服务器之外的任何机器访问 Exchange WebDav / OWA 时遇到问题。
我们有一个运行 Windows 2003 的小型开发域。一台服务器(我们将其称为 IIS_box)运行 IIS 和 Exchange 2003。IIS_Box 在/Exchange/
虚拟目录上设置了 Outlook Web Access,权限拒绝匿名用户以及基本身份验证和集成windows 身份验证已启用。
在 IIS_Box 上,访问 http://IIS_Box.ourDomain.net/Exchange/ 会向用户展示 OWA 应用程序,而不会提示输入用户名/密码。但是,转到http://IIS_Box/Exchange/时,用户会看到一个用户名/密码对话框。
如果用户没有输入用户名和密码,他们会收到401.2 Unauthorized: Access denied due to server configuration
错误。如果用户尝试输入用户名和密码,他们会得到一个401.1 Unauthorized: Access is denied due to invalid credentials
.
在任何其他机器上,用户都会看到用户名/密码对话框,并且无论他们使用 FQDN 还是仅使用裸服务器名称,都会收到 401 错误。
任何人都知道问题是什么以及我们如何解决它?
编辑:
继杰夫在下面的回答之后,客户正在使用 IE7。
在 IIS_Box 上,将非 FQDN URL 添加到 IIS_Box 上的“Intranet”区域允许该 URL 工作。极好的!
但是,将普通 URL 和 FQDN URL 添加到其他计算机上的“Intranet”区域不会。URL 现在显示为“本地 Intranet”,但我仍然收到基本身份验证提示和 401 错误。
如果我进入客户端 IE 设置,在 Advanced..Security 下,如果我禁用“启用集成 Windows 身份验证”,则一切正常(如果它位于 Intranet 区域中)。我不必在 IIS_Box 上关闭此设置!
但是,它只能在 IE 中正常工作,而不是在使用 WebDAV 接口的代码中 - 我尝试在 Visual Studio 中运行/调试并作为编译/独立可执行文件。啊!
编辑2:
经过 一番 挖掘,似乎“启用集成 Windows 身份验证”实际上启用了 Kerberos 和 NTLM 之间的协商(至少在 IE7 中)。
禁用它后,将使用 NTLM。
启用它后,将协商 Kerberos 或 NTLM。如果不支持 Kerberos,则使用 NTLM。如果支持但失败,则不使用NTLM 。
因此,我要去看看我们是否存在潜在的 Kerberos 问题......