samAccountName의 a와 o를 danish å와 ø로 바꿀 수있는 이유는 무엇입니까? : \

동료가 테스트 AD의 계정 a이 samAccountName의 모든 문자를 덴마크어 문자 å(ASCII 134 / å)로 교체 할 때 인증 할 수 있음을 보여주었습니다 .

예를 들어 사용자 <domain>\aaa는로 인증 할 수 있습니다 ååå.

나는 새로 프로비저닝 된 W2K12R2 AD (단일 서버, 모든 표준 값)에서 이것을 재현하려고 시도했으며 거기에서도 작동합니다. 나는 계정을 만들고 aaa( å프로세스 에서 문자 를 만지지 마십시오 å.

PS C : \ Users \ Administrator> runas / user : ååå 메모장

ååå의 비밀번호를 입력하십시오.

사용자 “DEV-DLI \ ååå”로 메모장을 시작하려고 시도 중 …

PS C : \ 사용자 \ 관리자>

메모장이 시작되어로 실행되었습니다 aaa.

마지막 덴마크어 특수 문자 는 다른 문자와 일치하지 않는 반면 o덴마크 문자 는 마찬가지입니다 . 사용자와 AD에서의 samAccountName을 가진 사용자를 만들려고 하면 그 알리는 실패합니다 .øæaaaåååThe user logon name you have chosen is already in use (...)

나는 미친 사람처럼 봤지만 무슨 일이 일어나고 있는지 알 수 없었습니다. 왜 이것이 작동하는지에 대한 힌트가 있습니까?



답변

이것은 의도적으로 설계된 동작입니다. 간단히 말해 Active Directory는 악센트 부호 / 대소 문자를 “단순”형식으로 매핑합니다. 다음 Microsoft 지원 기사를 참조하십시오.

사용자 이름에 악센트 또는 기타 발음 구별 부호가있는 문자가 포함 된 경우 Windows 로그온 동작 :

Active Directory 디렉터리 서비스의 사용자 이름에 악센트 또는 다른 발음 구별 부호가있는 하나 이상의 문자가 포함되어 있으면 Windows에 로그온하기 위해 사용자 이름을 입력 할 때 발음 구별 부호를 사용하지 않아도됩니다. 간단한 형태의 문자를 사용하여 로그온 할 수 있습니다. 예를 들어 Active Directory의 사용자 이름이 jésush 인 경우 Windows 로그온 대화 상자의 사용자 이름 상자에 jesush를 입력하여 Windows에 로그온 할 수 있습니다.

이 문제는 기본 키보드 매핑이 설치되어 있지 않은 컴퓨터에서 Windows에 로그온해야하는 상황에서 분음 부호없이 사용자 이름을 사용하여 Windows에 로그온 할 수 있도록하기 위해 발생합니다.


답변

@jscott의 참조 (+1) 외에도 주석이 너무 길다 : 사용자 이름이 올바른 경우에 저장되어있는 경우에도 비슷한 경우가 발생합니다. 심지어 혼합 케이스. HBruijn = hbruijn = HbRuIjNAD는 대소 문자를 구분하지만 일부 필드에서는 대소 문자를 구분하지 않습니다 .

올바른 용어 (IT에서 데이터베이스 구성에 가장 많이 사용됨 )는 데이터 정렬 이며 순서, 일치 및 표준 동등성을 제어 합니다. 데이터 정렬 규칙은 일반적으로 로캘에 따라 다릅니다.

관심있는 것은 https://msdn.microsoft.com/en-us/library/windows/desktop/dd318144(v=vs.85).aspx
http://www.unicode.org/reports/tr10/#입니다. Collation_And_Code_Chart_Order


답변