【问题标题】:Cannot authorize with different server name无法使用不同的服务器名称进行授权
【发布时间】:2009-02-09 02:21:28
【问题描述】:

我有一个在 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 身份验证。

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

【问题讨论】:

    标签: asp.net web-services iis authorization azman


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      首先将 IIS 站点设置为匿名访问,并确保您可以启动 Web 服务。这将验证您访问的是正确的 IIS 网站,并且确实缩小了授权问题。

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

      【讨论】:

        猜你喜欢
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-13
        • 1970-01-01
        • 2019-09-12
        • 2018-06-18
        相关资源
        最近更新 更多