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 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 암호를 지정합니다.
|
password |
| glide.http.proxy_nthost | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 호스트 이름을 지정합니다.
|
nt호스트 |
| glide.http.proxy_ntdomain | NTLM 인증을 사용하여 프록시 서버를 인증하는 데 사용되는 도메인을 지정합니다.
|
DOMAIN |