2014-07-12 2 views
2

NTLM 인증을 사용하여 Node.js를 사용하여 서버에 연결하고 있습니다. NTLM 프로토콜은 아래 단계를 수행하므로 (http://www.innovation.ch/personal/ronald/ntlm.html 참조).NTLM 인증에 실패했습니다. 서버는 "200 OK"가 아닌 "401"으로 응답합니다.

1: C --> S GET ... 

2: C <-- S 401 Unauthorized 
       WWW-Authenticate: NTLM 

3: C --> S GET ... 
       Authorization: NTLM <base64-encoded type-1-message> 

4: C <-- S 401 Unauthorized 
       WWW-Authenticate: NTLM <base64-encoded type-2-message> 

5: C --> S GET ... 
       Authorization: NTLM <base64-encoded type-3-message> 

6: C <-- S 200 Ok 

1-5 단계는 잘 작동하지만 6 단계에서, 서버는 200 OK로 날을 반환하지 않았지만, 상태 코드 (401)로 날을 반환하고, 헤더 :

머리를 : {

'content-type': 'text/html', 
    server: 'Microsoft-IIS/8.0', 
    'www-authenticate': 'Negotiate, NTLM', 
    'x-powered-by': 'ASP.NET', 
    date: 'Sat, 12 Jul 2014 06:44:25 GMT', 
    'content-length': '1293' 

}

아무 잘못이 있습니까? 당신이 나를 도울 수? 왜 그것은 200 OK 및 올바른 응답 본문을 반환하지 않습니까? 대단히 고마워요

+0

1293 바이트 콘텐츠를 제공해 주실 수 있습니까? – Alireza

+0

안녕하세요, Alireza. 그것은 html 401 페이지입니다. 본문 내용 : ... 401 - 무단 : 잘못된 자격 증명으로 인해 액세스가 거부되었습니다. ... –

+0

이 두 가지를 모두 다시 확인할 수 있습니까? 암호 해싱, 문자 인코딩 및 Base-64 인코딩 Fiddler를 사용하여 5 단계 컨텐츠를 확인할 수 있습니다. – Alireza

답변

2

모두.

마지막으로 대답을 찾았습니다. 나는이 ntlm 모듈 (https://www.npmjs.org/package/ntlm)을 사용하여 ntlm 인증을 수행합니다. 잘못된 사용자 이름을 사용하기 때문에 작동하지 않습니다. 디버그 로그에서 찾았고 adfs 컴퓨터의 이벤트보기 (오류 정보가 있음)에서이 정보를 찾을 수도 있습니다. 나는 어리석은 실수에 대해 유감 스럽지만 나쁘지는 않다. 이제는 잘 알고있다. Alireza 감사합니다. 모두 감사합니다 .-)

+0

모듈 링크를 제공해 주셔서 감사합니다! 어떤 디버그 로그를 찾았습니까? 나는 똑같은 일을 경험하고 있지만, 내 자격 증명은 정확합니다 (브라우저를 통해 사이트를 방문 할 때 작동하지만 요청이 실패 함). 401 오류 이외의 출력이 보이지 않습니다. 감사! –

관련 문제