2016-10-06 3 views
1

NTLM (Windows) 인증을 사용하고 있는지 궁금합니다. 사용자가 이미 로그온했는지 여부를 서버가 결정하는 방법입니다. 그래서 때 처음 접속 사이트 - 서버가 그가 NTLM을 통해 저를 인증 할 나에게 말한다 :HTTP를 통한 NTLM 인증

WWW-Authenticate: Negotiate 
WWW-Authenticate: NTLM 

그런 다음 클라이언트와 몇 요청을 교환 서버 - 실제로/응답 상에 도전, 여기 일이 특히 서버 생성과 도전을 전송 클라이언트는 클라이언트가 이에 응답하여 응답을 계산 한 다음 다시 서버에 연결하여이를 확인합니다. 좋아, 끝났어.

그러나 인증 된 페이지로 이동하면 더 이상 인증 헤더가 없습니다. 서버가 이미 인증 된 것을 어떻게 알 수 있습니까?

P. IIS가 클라이언트를 MAC 또는 IP와 연결한다고 생각했지만 실제로 그렇지 않습니다. NTLM은 단일 브라우저에서 작동합니다. 또한 NTLM 특정 쿠키도 발견되지 않았습니다.

답변

1

http를 통한 NTLM은 HTTP persistent connection 또는 http keep-alive를 사용합니다.

단일 연결이 만들어지고 나머지 세션 동안 열린 상태로 유지됩니다.

동일한 인증 된 연결을 사용하는 경우 더 이상 인증 헤더를 보낼 필요가 없습니다.

이것은 또한 연결 유지 연결을 지원하지 않는 특정 프록시 서버에서는 NTLM이 작동하지 않는 이유이기도합니다.

+0

감사합니다. 실제로 저는 그것에 대해 생각하지 않았습니다. BTW - wikipedia에 따르면'Windows 레지스트리를 통해 변경 될 수있는 60 초 동안 비활성 연결 시간 초과 .'. 브라우저가 kerberos 티켓을 1 ~ 2 분마다 전송한다는 의미입니까? – seeker

+0

구현의 세부 사항을 잘 모릅니다. 브라우저에 자격 증명이 캐시되어 필요에 따라 다시 보낼 수 있습니다. 찾으려면 네트워크 트래픽을 볼 수 있습니다. –