Współpracownik właśnie pokazał mi, że konta w naszym teście AD były w stanie uwierzytelnić się, zastępując każdy aznak w jego samAccountName znakiem duńskim å(ASCII 134 / å).
Np. Użytkownik <domain>\aaa
może uwierzytelnić się jako ååå
.
Próbowałem odtworzyć to w świeżo przygotowanym W2K12R2 AD (pojedynczy serwer, wszystkie standardowe wartości) i to też tam działa. Utworzyłem konto aaa
(nigdy nie dotykając listu å, aby nic nie zawierało å
) i uruchomiłem:
PS C: \ Users \ Administrator> runas / user: ååå notepad
Wpisz hasło dla ååå:
Próba uruchomienia notatnika jako użytkownika „DEV-DLI \ ååå” ...
PS C: \ Users \ Administrator>
co spowodowało uruchomienie notatnika działającego jako aaa
.
To samo wydaje się dotyczyć oduńskiego charakteru ø, podczas gdy ostatni duński znak specjalny ænie wydaje się odpowiadać żadnemu innemu charakterowi. Z użytkownikiem aaa
w usłudze AD próba utworzenia użytkownika o nazwie samAccountName ååå
zakończy się niepowodzeniem, informując o tym The user logon name you have chosen is already in use (...)
.
Googlowałem jak szaleniec, ale nie byłem w stanie dowiedzieć się, co się dzieje. Czy ktoś ma jakieś wskazówki, dlaczego to działa?
å
nie istnieje w ASCII.
man ascii
: ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes (e.g., ISO 8859-1) contain ASCII as their lower half. The international counterpart of ASCII is known as ISO 646-IRV.
Wygląda na to, że å
to ISO 8859-1 # 229 i ø
ISO 8859-1 # 248.
æ
powinien odpowiadaćae
(litera,a
po której następuje literae
), FWIW.