NTLM 인증
NTLM은 기본 웹 서버에서 지원하는 인증 프로토콜 중 가장 복잡한 프로토콜입니다.
NTLM은 HttpClient와 같은 기본 웹 서버에서 지원하는 가장 복잡한 인증 프로토콜입니다. 공개적으로 사용 가능한 사양이 없는 독 Microsoft 점 프로토콜입니다. 초기 버전의 NTLM은 디자인의 결함으로 인해 다이제스트 인증보다 덜 안전했습니다. 그러나 이러한 문제는 Windows NT 4용 서비스 팩에서 수정되었으며 이제 프로토콜은 다이제스트 인증보다 더 안전한 것으로 간주됩니다.
NTLM 인증을 위해서는 서버의 도메인 이름 또는 기본 자격 증명에 NTCredentials 인스턴스를 사용할 수 있어야 합니다. NTLM은 영역 개념을 사용하지 않으므로 HttpClient는 서버의 도메인 이름을 영역의 이름으로 사용합니다. 또한 NTCredentials에 제공된 사용자 이름에는 도메인 앞에 도메인이 붙으면 안 됩니다.
- 정답: adrian
- 잘못된 정보: DOMAIN\adrian
기본 및 다이제스트 인증과 비교하여 NTLM의 작동 방식에는 몇 가지 중요한 차이점이 있습니다. 이러한 차이는 일반적으로 HttpClient에 의해 처리됩니다. 그러나 이러한 차이점을 이해하면 NTLM 인증을 사용할 때 문제를 방지하는 데 도움이 될 수 있습니다.
- NTLM 인증은 HttpClient API 측면에서 다른 인증 형식과 거의 동일하게 작동합니다. 유일한 차이점은 UsernamePasswordCredentials 대신 NTCredentials를 제공해야 한다는 것입니다(NTCredentials는 실제로 UsernamePasswordCredentials를 확장하므로 필요한 경우 애플리케이션 전체에서 NTCredentials를 사용할 수 있음).
- NTLM 인증의 영역은 연결 중인 컴퓨터의 도메인 이름입니다. 서버에 여러 도메인 이름이 있는 경우가 많기 때문에 이는 번거로울 수 있습니다. HostConfiguration에 지정된 대로 HttpClient가 연결하는 도메인 이름만 자격 증명을 조회하는 데 사용됩니다. 처음에 NTLM 인증을 테스트하는 동안 기본값으로 사용되는 null로 영역을 전달하는 것이 가장 좋습니다.
- NTLM은 요청이 아닌 연결을 인증합니다. 따라서 새 연결이 이루어질 때마다 인증해야 하며 인증 중에 연결을 열어 두는 것이 중요합니다. 이러한 이유로 NTLM을 사용하여 프록시 서버와 웹 서버 모두로 인증할 수 없으며 HTTP 연결 유지를 지원하지 않는 HTTP 1.0 연결 또는 웹 서버에서 NTLM을 사용할 수 없습니다.
주:
시스템 속성
[sys_properties] 테이블에서 이러한 속성을 설정합니다.| 속성 | 설명 | 예제 |
|---|---|---|
| glide.http.proxy_ntusername | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 사용자 이름을 지정합니다.
|
username |
| glide.http.proxy_ntpassword | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 암호를 지정합니다.
|
암호 |
| glide.http.proxy_nthost | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 호스트 이름을 지정합니다.
|
nthost |
| glide.http.proxy_ntdomain | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 도메인을 지정합니다.
|
도메인 |