我在Windows 2003上的IIS 6.0中运行了一个Web服务。它的身份验证模式是集成Windows安全性(匿名禁用),授权通过授权管理器和XML授权存储完成。我的测试用户是域用户(实际上是管理员),其成员具有授权角色。
我正在Web服务器(localhost)上测试此(现在),并使用(现在)Internet Explorer访问Web服务(.asmx)。
我可以通过localhost成功打开Web服务(wsdl)页面,如下所示:
http://localhost:8080/MyService/MyService.asmx
使用此URL,集成的Windows身份验证成功(静默),并且我已成功获得AzMan授权访问该服务。服务器名称也是如此:
http://myserver:8080/MyService/MyService.asmx
现在我需要使用外部主机名(www.mysite.no)来访问服务(这是为了让ssl使用颁发给该网站名称的证书)。为此,我将主机名添加到我的HOSTS文件中,如下所示:
127.0.0.1 www.mysite.no
...然后将其输入IE:
http://www.mysite.no:8080/MyService/MyService.asmx
然后会发生授权失败的情况。我得到IE / Windows登录框并输入三次正确的凭据。然后我得到一个401.1:
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)
AzMan的授权如何受主机名影响?
编辑:我有理由相信AzMan与它无关 - 似乎认证失败了。
我在另一台服务器上重现了这个问题。本质似乎是通过本地主机文件中的条目访问localhost会以某种方式混淆浏览器和IIS之间的集成Windows身份验证。
我已经解决了这个问题,现在我的好奇心就是剩下的......
答案 0 :(得分:1)
我的第一个猜测是它不是主机名。
首先要做的是缩小问题范围,因为有些事情可能会出错。
首先将IIS站点设置为匿名访问,并确保您可以启动Web服务。这将验证您是否正在访问正确的IIS网站,并且它真正缩小到授权问题。
此外,请检查应用程序池凭据以及包含Web服务的文件夹的安全设置,因为这些可能是贡献者。
答案 1 :(得分:1)
启用审核登录失败审核&检查主机上的安全事件日志
1)在Web服务器上,转到“控制面板”,“管理工具”,“本地安全策略”。
2)转到当地政策,审计政策。为“审核登录事件”添加失败。
3)关闭MMC。打开命令提示符并键入gpupdate。
4)浏览到http://www.mysite.no。您将再次收到错误。
5)启动事件查看器(控制面板,管理工具,事件查看器)。导航到安全事件日志并查找登录失败。他们会告诉您描述性的内容,例如“用户未被授予指定的登录类型”。不幸的是,登录类型本身并不具有描述性;登录类型2是交互式(本地),3是“通过网络访问此计算机”,5是“作为服务登录”(NT服务,而不是WCF服务)。所需权利可以在本地安全策略中授予。
另外,检查您是否在IE中启用了代理。如果您的流量被路由到代理,则代理可能不支持NTLM。使用IE进行测试时,将主机添加为代理例外。