我有两台服务器。 既运行IIS7.5。
他们都运行相同版本的基于Web的应用程序,它占用了几个应用程序池(它运行的很多servlets等)。
我有一个连接到该应用程序的Excel插件,可以绘制数据。
我所知道的两台机器之间的唯一区别是,工作的人运行所有的应用程序池与标准帐户,localsystem,apppoolidentity等
失败的人使用其大部分应用程序池(主要是Web应用程序使用的应用程序池)的特定服务帐户。
问题的症结似乎是在工作机器上交换如下 –
POST /Service/Hierarchy.svc - 80 - 10.100.69.49 - 200 0 0 0 GET /Application/login/login.dll - 80 DOM\Account 10.100.69.49 - 200 0 0 140
和失败的服务器上 –
POST /Service/Hierarchy.svc - 80 - 10.100.69.49 - 200 0 0 0 GET /Application/login/login.dll - 80 - 10.100.69.49 - 401 2 5 358
注意帐户不通过。
所有其他的设置,我可以看到,除了…. application / login / login.dllauthentication设置相同,在工作服务器上是协商,然后NTLM,在失败的服务器上,如果我把它那样应用程序的其他部分停止与401挑战需要凭据工作。
任何人都可以提供任何build议,如何debugging呢?
谢谢
编辑:这是一个修剪失败尝试wireshark捕获。
GET /Application/login/login.dll HTTP/1.1 Authorization: Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgM...etc Host: MachineName HTTP/1.1 401 Unauthorized Content-Type: text/html Server: Microsoft-IIS/7.5 WWW-Authenticate: Negotiate oYGNMIGKoAMKAQGhC...etc WWW-Authenticate: NTLM X-Powered-By: ASP.NET Date: Wed, 20 Apr 2016 05:42:58 GMT Content-Length: 1293 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ...html <title>401 - Unauthorized: Access is denied due to invalid credentials.</title> ...html <div id="header"><h1>Server Error</h1></div> <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2> <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3> ...html GET /Application/login/login.dll HTTP/1.1 Authorization: Negotiate oYILiTCCC4WgAwoBAa...etc Host: MachineName HTTP/1.1 401 Unauthorized Content-Type: text/html Server: Microsoft-IIS/7.5 WWW-Authenticate: Negotiate oX8wfaADCgEBonYEdGByBgk...etc WWW-Authenticate: NTLM X-Powered-By: ASP.NET Date: Wed, 20 Apr 2016 05:42:58 GMT Content-Length: 1293 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> ...html <title>401 - Unauthorized: Access is denied due to invalid credentials.</title> ...html <div id="header"><h1>Server Error</h1></div> ...html <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2> <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3> ...html
我知道有问题的用户可以访问请求中的url,所以我可以手动调用/Application/login/login.dll。
是
GET /Application/login/login.dll HTTP/1.1 Authorization: Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgM...etc Host: MachineName
它试图通过用户名? 这可能会失败,这就是为什么我没有看到用户通过?
再次感谢
编辑:
我在Wireshark中看到KRB5KRB_AP_ERR_MODIFIED,之前没有,还列出了运行AppPool的ServiceAccount。
所以我想这可能与此有关 – Windows身份validationKRB5KRB_AP_ERR_MODIFIED
Ayyy,修好了:)
只需在Application / login / site中的Windows身份validation的身份validation设置中选中启用内核模式身份validation即可。
我注意到它说,如果使用自定义身份的应用程序池保持启用。