익숙한 Windows 보안 프롬프트는 사용자 인터페이스이며, «이 애플리케이션을 프록시에 로그인시키는» 범용 기능이 아니다.

CredUI 함수는 사용자로부터 자격 증명 정보를 수집할 수 있다. 네트워크 클라이언트는 여전히 프록시의 챌린지를 해석하고 지원하는 메커니즘으로 계정을 제공해야 한다.

WinHTTP의 경우 인증 처리는 요청 흐름과 문서화된 API에 속한다. 407 챌린지는 원본 서버의 401과 다르다, 애플리케이션이 둘 다에 비슷한 프롬프트를 표시하더라도.

프롬프트가 어느 프록시를 가리키는지 결정하고, 취소를 처리하며, 반환된 자격 증명을 그 목적으로 제한한다. 인증 버퍼를 풀어낸 뒤 암호를 기록하는 샘플 코드를 절대 복사하지 말 것. 대화 상자가 텍스트를 반환했다는 사실이 그 텍스트를 출력할 이유는 아니다.

통합 인증은 다른 자격 증명 표현과 다른 프로세스 ID를 포함할 수 있다. 모든 방법이 프록시 URL에 사용자 이름과 암호를 넣는 것으로 귀결된다고 가정하지 말 것.

유용한 경계는 분명하다. 프롬프트는 사용자 입력을 얻고, 네트워킹 API는 인증 교환을 수행하며, 프록시는 이를 받아들일지 결정한다.

관련 글