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 1.0 연결 또는 HTTP 연결 유지를 지원하지 않는 웹 서버에서 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 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 도메인을 지정합니다.
|
DOMAIN |