Eu tenho dois servidores. ambos executando o IIS7.5.
ambos executam a mesma versão de um aplicativo baseado na web que ocupa vários pools de aplicativos (ele é executado como muitos pequenos serviços e afins).
Eu tenho um plugin do Excel que se conecta a esse aplicativo e pode extrair dados.
a única diferença que conheço entre as duas máquinas é que a que está em funcionamento roda todos os seus pools de aplicativos com as contas padrão, sistema local, apppoolidentity etc.
a falha usa contas de serviço específicas para a maioria de seus pools de aplicativos (principalmente os usados pelo aplicativo da web).
o cerne da questão parece ser que na máquina de trabalho a troca é a seguinte -
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
e no servidor com falha -
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
observe que a conta não foi aprovada.
todas as outras configurações que eu posso ver, são as mesmas, exceto .... nesse aplicativo / login / login.dll configurações de autenticação, no servidor de trabalho é Negociar, em seguida, NTLM, no servidor com falha se eu colocá-lo que Em seguida, outras partes do aplicativo param de trabalhar com 401 desafios que desejam credenciais.
alguém pode oferecer algum conselho sobre como depurar isso?
obrigado
edite:
aqui está uma captura wireshark aparada da tentativa falhada.
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
Eu sei que o usuário em questão tem acesso aos URLs nas solicitações, para que eu possa chamar /Application/login/login.dll manualmente.
é
GET /Application/login/login.dll HTTP/1.1
Authorization: Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgM...etc
Host: MachineName
onde ele tenta passar o nome de usuário? isso poderia estar falhando e é por isso que eu não vejo o usuário sendo passado?
obrigado novamente
editar:
Estou vendo o KRB5KRB_AP_ERR_MODIFIED no Wireshark que não estava lá antes, também nos detalhes está listando o ServiceAccount que executa o AppPool.
Estou pensando que isso pode estar relacionado a isso - Autenticação do Windows KRB5KRB_AP_ERR_MODIFIED