代码之家  ›  专栏  ›  技术社区  ›  Tor Haugen

无法使用不同的服务器名称进行授权

  •  1
  • Tor Haugen  · 技术社区  · 17 年前

    我在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的授权?

    编辑 :我有理由相信阿兹曼与此事无关——似乎是身份验证失败了。

    我在另一台服务器上复制了这个问题。其本质似乎是,通过本地主机文件中的条目访问localhost会以某种方式混淆浏览器和IIS之间的集成windows身份验证。

    我已经解决了这个问题,现在只剩下我的好奇心了。..

    2 回复  |  直到 17 年前
        1
  •  1
  •   JohnW    17 年前

    启用审核登录失败审核&;检查主机上的安全事件日志。
    1) 在Web服务器上,转到“控制面板”、“管理工具”、“本地安全策略”。 2) 转到本地政策、审核政策。添加“审核登录事件”失败。
    3) 关闭存储卡。打开命令提示符并键入gpupdate。 4) 浏览至 http://www.mysite.no 。您将再次遇到错误。 5) 启动事件查看器(控制面板、管理工具、事件查看器)。导航到安全事件日志并查找登录失败。他们应该告诉你一些描述性的信息,比如“用户没有被授予指定的登录类型”。不幸的是,登录类型本身不是描述性的;登录类型2是交互式的(本地),3是“通过网络访问此计算机”,5是“作为服务登录”(NT服务,而不是WCF服务)。可以在本地安全策略中授予所需的权限。

    此外,请检查您是否在IE中启用了代理。如果您的流量被路由到代理,则代理可能不支持NTLM。使用IE进行测试时,将主机添加为代理异常。

        2
  •  1
  •   Brandon    17 年前

    我的第一个猜测是,这不是主机名。

    首先要做的是缩小问题的范围,因为有几件事可能会出错。

    首先将IIS站点设置为匿名访问,并确保您可以调出web服务。这将验证您是否访问了正确的IIS网站,并且它确实被缩小到授权问题。

    此外,请检查应用程序池凭据以及包含web服务的文件夹上的安全设置,因为这些可能是贡献者。