올바른 암호 또는 암호없이 ActiveDirectory의 LDAP 인증 성공 지원을하고 있습니다. 이 기능을 테스트하는

우리의 웹 애플리케이션에 대한 LDAP 인증 지원을하고 있습니다. 이 기능을 테스트하는 동안 나는 아주 이상한 행동을 발견했습니다. 사용자는 올바른 암호 또는 암호를 사용하여 인증 할 수 있습니다. 잘못된 암호를 입력하면 인증이 실패합니다.

처음에는 코드에서 뭔가를 놓친 것 같았지만 일부 데스크톱 클라이언트로 테스트하기로 결정했습니다. 나는 Windows Sysinternals에서 ‘Active Directory Explorer’를 시도했는데 놀랍게도 같은 동작이 발생했습니다.

이것에 대한 어떤 생각? 짐작 하시겠지만 우리는 Active Directory를 사용하고 있습니다. Active Directory 구성에 대한 자세한 내용을 알고 싶으면 알려주십시오.



답변

고유 이름은 길이가 0 인 암호로 “인증”할 수 없습니다. 간단한 BIND LDAP 조작에는 다음과 같은 가능성이 있습니다.

  • DN 없음, 암호 없음 ( anonymous, 인증이 수행되지 않음)
  • DN, 비밀번호 없음 ( unauthenticated, 인증이 수행되지 않음)
  • DN, 암호 (자격 증명이 일치하는 경우 인증이 성공 함)
  • DN 없음, 비밀번호 없음 (표준에서 정의되지 않은 서버 비헤이비어)

답변

내가 여기서 설명을 찾은 것 같다. LDAP : 단순 인증 . 그것은 진술한다 :

참고 : 빈 문자열, 빈 바이트 / 문자 배열 또는 null을 제공하면
  Context.SECURITY_CREDENTIALS 환경 프로퍼티에, 다음에
  인증 메커니즘은 “없음”이됩니다. 이는 LDAP
  간단한 인증을 위해 암호가 비어 있지 않아야합니다. 그만큼
  프로토콜은 자동으로 인증을 “none”으로 변환합니다.
  암호는 제공되지 않습니다.