2014-10-13 1 views
0

우리는 특정 인트라넷 도메인에서 NTLM으로 인증 된 사용자와 데이터베이스에 저장하는 표준 로그인/암호 쌍으로 인증 된 사용자를 모두 지원합니다. 새로운 사용자가 등록 할 때 NTLM 자격 증명이 있는지 알면 일반 등록 양식 대신 NTLM 자격 증명을 사용하라는 메시지 만 표시됩니다.브라우저에 "NTLM 인증을 보내지 만 자격 증명을 가지고있는 경우에만"요청할 수 있습니까?

e.e. (의사의) 같은 : 내가 한 경우

if user.has_ntlm_credentials: 
    ask ("You are known as {domain}\{username}, register in the application?") 
else: 
    show_login_password_registration_form() 

페이지를 다시 401 HTTP 코드를 전송 및 NTLM 통지를 요청, 나는 예 (사용자가 이미 인증 경우 위의 를 얻을 인트라넷에서 오는 것이며, Windows 사용). 그러나 다른 모든 사용자 브라우저에 대해서는 못생긴 인증 대화 상자가 표시되어 등록 페이지에서 어색하게 보입니다.

질문 : 이미 사용 가능한 NTLM 자격 증명이 있으면 브라우저에 요청할 수 있습니까?

답변

0

아니오; 그러나 사용자는 Negotiate를 사용할 수 있습니다.이 경우 사용자는 인증을 위해이 시나리오에서 Active Directory 인증을 통해 기존 Kerberos 티켓이 있어야합니다. 티켓이없는 사용자에게는 프롬프트가 표시되지 않습니다.

NTLM 및 다른 인증 메커니즘 협상 : NTLM은 간단한 챌린지/응답 메커니즘이지만 협상은보다 안전하고 복잡한 Kerberos 프로토콜을 캡슐화하는 것입니다. 두 가지 방법 모두 Windows 사용자가 자신의 컴퓨터에 로그온 할 때 한 번만 인증하면되고 로그인 한 사용자 자격 증명을 사용하여 후속 네트워크 연결이 인증되는 "단일 로그온"을 허용하는 데 사용할 수 있습니다. NTLM은 워크 스테이션 설정에서 작동하지만 도메인은 Active Directory에 가입 할 때 만 작동합니다.

+0

죄송합니다.이 주제에 대해서는 익숙하지 않습니다. 이것은 완전히 다른 별도의 인증 방법을 사용한다는 것을 의미합니까 (이것은 우리에게 의문의 여지가 있으며, 외부에서 부과 된 요구 사항을 가지고 있습니다), 아니면 브라우저에서 다른 방식으로 묻는 동일한 내용에 대해 계속 이야기합니까? – doublep

+0

나는 그것이 분리 되서 두려워. NTLM과 협상은 비슷한 목적을 달성하기위한 다른 메커니즘입니다 ("Single Signon"). NTLM을 사용해야한다는 요구 사항이 있다면 협상이 너무 다른 것으로 판단됩니다. 귀하의 요구 사항이 단순히 "Windows 인증"을 사용하는 것이라면 협상은 해당 요구 사항을 충족시킬 수 있습니다. –

+0

좋습니다. 고맙습니다. 한 가지 요구 사항은 응용 프로그램으로 SSO를 구현하는 것이지만 다른 한편으로는 사양의 모든 곳에서 NTLM을 참조하기 때문에 요구 사항을 명확히해야합니다. – doublep

관련 문제