Dlaczego a i o w samAccountName można zastąpić duńskim å i ø?


27

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>\aaamoż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 aaaw 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?


5
Znak æpowinien odpowiadać ae(litera, apo której następuje litera e), FWIW.
HopelessN00b

4
Postać ånie istnieje w ASCII.
TRiG

1
Tak. Nitpick, ale nie ma czegoś takiego jak „ASCII 134”, ponieważ ASCII wzrasta tylko do 127.
hobbs

1
Według 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.
jayhendren

2
Jako rodzimy użytkownik języka duńskiego mogę powiedzieć, że to też nie ma dla mnie sensu. Nie ma substytutu ASCII dla liter æ i ø. Istnieje kilka często używanych zamienników, ale nie są one poprawnymi pisowniami, aw niektórych przypadkach dają zupełnie inne słowo. W przypadku å został dodany do alfabetu mniej niż sto lat temu, a używanie starej pisowni nie wprowadza żadnych dwuznaczności. Jednak starą pisownią byłoby używać aa zamiast å. Zastąpienie litery „a” literą å nie jest poprawną pisownią.
kasperd

Odpowiedzi:


30

Jest to zgodne z projektem. W skrócie, Active Directory mapuje znaki akcentowane / diakrytyczne do ich „prostej” formy. Zobacz następujący artykuł pomocy technicznej Microsoft.

Zachowanie podczas logowania do systemu Windows, jeśli nazwa użytkownika zawiera znaki z akcentami lub innymi znakami diakrytycznymi :

Jeśli Twoja nazwa użytkownika w usłudze katalogowej Active Directory zawiera jeden lub więcej znaków z akcentami lub innymi znakami diakrytycznymi, może się okazać, że nie musisz używać znaku diakrytycznego podczas wpisywania nazwy użytkownika w celu zalogowania się do systemu Windows. Możesz zalogować się przy użyciu prostej formy znaku lub znaków. Na przykład, jeśli Twoja nazwa użytkownika w Active Directory to jésush, możesz wpisać jesush w polu Nazwa użytkownika w oknie dialogowym Logowanie do systemu Windows, aby zalogować się do systemu Windows.

Takie zachowanie występuje, więc w sytuacjach, gdy musisz zalogować się do systemu Windows z komputera, na którym nie jest zainstalowane preferowane mapowanie klawiatury, nadal możesz zalogować się do systemu Windows, używając swojej nazwy użytkownika bez znaków diakrytycznych.


13
Nie jestem fanem Microsoftu, ale w tym przypadku jestem pod wielkim wrażeniem, że amerykańska firma postrzegała problemy z klawiaturą jako prawdziwy problem i rozwiązuje to w tak elegancki sposób.
Danubian Sailor

20
@ РСТȢѸФХѾЦЧШЩЪЫЬѢѤЮѦѪѨѬѠѺѮѰѲѴ Nawiasem mówiąc, najlepsze połączenie nazwy użytkownika i komentarza.
HopelessN00b

2
Można się zastanawiać, jakie dziury w zabezpieczeniach mogliby pozostawić, robiąc to :)
hobbs

5
W rzeczywistości nie są to znaki diakrytyczne, są to całkowicie oddzielne litery. Wywołanie ø an o znakiem diakrytycznym ma tyle samo sensu, co wywołanie q an o znakiem diakrytycznym. W rzeczywistości o, q i ø są trzema różnymi literami, zdarza się, że dwie z nich są w ASCII, a jedna z nich nie. Bycie w ASCII lub nie jest częścią definicji znaku diakrytycznego. Ale bycie w ASCII lub nie może mieć wpływ na to, jak łatwo się zalogować.
kasperd

7
@kasperd Zależy to również od języka; w języku szwedzkim „ä” jest własną literą, w języku niemieckim „a” z umlautem jako znakiem diakrytycznym.
beerbajay

14

Oprócz odniesienia do @ jscott (+1) i nieco za długo na komentarz: w przypadku jest zrobione coś podobnego, ponieważ mimo że nazwa użytkownika jest zapisana w prawidłowym przypadku, możesz zalogować się przy użyciu nazwy użytkownika we wszystkich małych, wyższych i nawet mieszany przypadek. HBruijn = hbruijn = HbRuIjN, AD rozpoznaje wielkość liter, ale nie rozróżnia wielkości liter w niektórych polach.

Prawidłowym terminem (w IT najczęściej spotykanym w konfiguracji bazy danych) jest Sortowanie i to ono rządzi porządkowaniem, dopasowywaniem i równoważnością kanoniczną . Reguły sortowania zazwyczaj zależą również od ustawień regionalnych.

Interesujące mogą być https://msdn.microsoft.com/en-us/library/windows/desktop/dd318144(v=vs.85).aspx i http://www.unicode.org/reports/tr10/# Collation_And_Code_Chart_Order

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.