Чому a і o в samAccountName можна замінити на датські å і ø?


27

Співробітниця щойно продемонструвала мені, що акаунти в нашому тестовому AD змогли підтвердити автентифікацію, замінивши кожен aсимвол свого ім'я samAccountName на данський å(ASCII 134 / å).

Наприклад, користувач <domain>\aaaможе автентифікувати як ååå.

Я спробував відтворити це на щойно передбаченому W2K12R2 AD (єдиний сервер, всі стандартні значення), і він працює і там. Я створив обліковий запис aaa(ніколи не торкаючись букви åв процесі, щоб нічого не містив å) і запустив:

PS C: \ Користувачі \ Адміністратор> runas / user: є блокнот

Введіть пароль для ååå:

Спроба запустити блокнот як "DEV-DLI \ ååå" ...

PS C: \ Користувачі \ Адміністратор>

що призвело до запуску блокнота, працює як aaa.

Це, мабуть, справедливо oі для датського персонажа ø, тоді як останній датський спеціальний знак æ, схоже, не відповідає жодному іншому персонажу. Якщо користувач aaaв AD, спроба створити користувача з samAccountName åååне вдасться, повідомивши про це The user logon name you have chosen is already in use (...).

Я гугла, як божевільний, але не змогла з’ясувати, що відбувається. Хтось має підказки, чому це працює?


5
Символ æповинен відповідати ae(буква, aза якою йде літера e), FWIW.
HopelessN00b

4
Символ åне існує в ASCII.
TRiG

1
Так. Нітпік, але немає такого поняття, як "ASCII 134", тому що ASCII піднімається лише до 127.
hobbs

1
Відповідно 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.Схоже, åце ISO 8859-1 # 229 та øISO 8859-1 # 248.
jayhendren

2
Будучи носієм датської мови, я можу вам сказати, що і для мене це не має сенсу. Не існує замінника ASCII для літер æ та ø. Є кілька часто використовуваних замінників, але вони не є дійсними написаннями, а в деяких випадках утворюють зовсім інше слово. У випадку з å, він був доданий до алфавіту менше століття тому, і використання старого правопису не вносить ніякої неоднозначності. Однак старим правописом було б використовувати aa замість å. Заміна одиниці на букву å не є правильним написанням.
kasperd

Відповіді:


30

Це за дизайном. Коротше кажучи, Active Directory відображає наголошені / діакритичні символи у їх "простій" формі. Перегляньте наступну статтю підтримки Microsoft.

Поведінка входу в Windows, якщо ваше ім’я користувача містить символи, які мають наголоси або інші діакритичні позначки :

Якщо ваше ім'я користувача в службі каталогу каталогів Active Directory містить один або більше символів, на яких є наголоси або інші діакритичні позначки, ви можете виявити, що вам не потрібно використовувати діакритичну позначку під час введення свого імені користувача для входу в Windows. Ви можете увійти, використовуючи просту форму символів або символів. Наприклад, якщо ваше ім’я користувача в Active Directory є jésush, ви можете ввести jesush у полі Ім'я користувача у діалоговому вікні Увійти до Windows, щоб увійти в Windows.

Така поведінка відбувається так, що в ситуаціях, коли вам доведеться увійти в Windows з комп'ютера, де не встановлено бажане відображення клавіатури, ви все одно можете увійти в Windows, використовуючи своє ім’я користувача без діакритичних позначок.


13
Я не прихильник Microsoft, але в цьому випадку я дуже вражений, що американська компанія розглядала проблеми з введеннями на клавіатурі як справжню проблему і вирішувала її настільки елегантно.
Дунайський матрос

20
@ РСТȢѸФХѾЦЧШЩЪЮЬѢѤЮѦѪѨѬѠѺѮѰѲѴ Найкраща комбінація імені користувача та коментаря, яку я досі не бачив тут, до речі.
HopelessN00b

2
Одне цікавить, які отвори у безпеці вони могли б залишити, роблячи це :)
hobbs

5
Насправді це не діакритичні позначення, це цілком окремі букви. Виклик ø a o діакритичним знаком має стільки ж сенсу, як дзвінок q a o діакритичним знаком. Насправді o, q і ø - це три різні літери, просто буває, що дві з них знаходяться в ASCII, а одна з них - ні. Перебування в ASCII чи ні не є частиною визначення діакритичного знака. Але перебуваючи в ASCII чи ні, можна змінити, наскільки це легко увійти.
kasperd

7
@kasperd Це також залежить від мови; у шведській мові 'ä' - це її власне письмо, німецькою мовою - «a», що містить діакритичний знак.
beerbajay

14

Окрім посилання на @ jscott (+1) та трохи задовго для коментаря: щось подібне робиться із справою, так як хоча ім’я користувача зберігається у правильному випадку, ви можете увійти з іменем користувача у всі маленькі, верхні та навіть змішаний випадок. HBruijn = hbruijn = HbRuIjN, AD знає регістри, але не враховує регістр у деяких сферах.

Правильний термін (в ІТ, який найчастіше зустрічається в конфігурації бази даних) - це Collation і є тим, що регулює впорядкування, узгодження та канонічну еквівалентність . Правила збирання зазвичай також залежать від місцевості.

Цікавими можуть бути 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.