Что означает вход в систему как «username@mydomain.com: что-то»

35

Мой компьютер с Windows 2008 R2 присоединен к домену.

На экране входа в систему, если я ввожу «username@mydomain.com: что-то» в качестве имени пользователя, я все равно могу правильно войти в систему, что означает «: что-то», добавленное в конце?

Я даже вижу, что текущий пользователь отображается как «username@mydomain.com: что-то» на экране пользователя коммутатора. Это особенность в Windows? Или это просто ошибка? Если это функция, в чем разница между входом в систему как «username@mydomain.com» и входом в систему как «username@mydomain.com: что-то»?

Обратите внимание, что я пробовал разные комбинации, такие как «mydomain \ username: что-то» и «mydomain.com:something\username». Ни один из них не работает, кроме «username@mydomain.com: что-то».

10 сентября 2012 Обновление

Проблема RunAs, поднятая Джастином, похожа на проблему, которую я хочу решить. Если вы делаете

runas /user:username@mydomain.com:anything

ты получишь

RUNAS ERROR: Unable to acquire user password

Я проверил, что RunAs даже не удосуживается вызывать LSA, когда видит username@mydomain.com:anythingимя пользователя. RunAs должен был выполнить проверку ввода и вернуть ошибку там.

WinLogon отличается. Он принимает этот формат ввода и передает «username@mydomain.com: что угодно» в LSA. Я вижу, что LogonUserEx2внутри Kerberos.dll был вызван. Это либо ошибка в логике проверки ввода WinLogon, либо это действительно приемлемый формат для некоторых скрытых функций.

26 сентября 2012 Обновление

Я только что отправил дело в службу поддержки Microsoft Premier. Я буду обновлять здесь, если я получу какие-либо обновления от них.

Харви Квок
источник
5
Это интересно.
Шейн Мэдден
Может ": что-то" быть ": что-нибудь"? Похоже, Windows воспринимает это как номер порта или расширение, очень странно.
Брент Пабст
2
Псих. Я только что проверил это, и можно создать UPN-суффикс domain.tld: что угодно, и войти в домен с этим UPN.
Joeqwerty
1
Если я это сделаю, runas /user:"jdearing@domain.com:something" "cmd /C dir c:\ & pause"возвращается RUNAS ERROR: Невозможно получить пароль пользователя, в отличие от обычного 1326: Ошибка входа: неизвестное имя пользователя или неверный пароль. для неудачного входа в систему.
Джастин Даринг
2
К вашему сведению: опубликовано также на форумах TechNet, но не уверен, увидит ли команда Windows это там или нет: bit.ly/UF94GQ
Брент Пабст,

Ответы:

13

Я открыл дело с поддержкой Microsoft Premier. Вот электронная почта между мной и поддержкой Microsoft. Они в основном говорят, что это известная проблема. Это не ошибка, и это не особенность.

Внутренний интерфейс будет анализировать имя пользователя и правильно удалять недопустимые символы. Внешний интерфейс не выполняет никакой проверки пользовательского интерфейса, поскольку может существовать какой-либо другой пользовательский интерфейс для входа в систему. Их требования к имени пользователя могут отличаться. Я думаю, что они имеют в виду сторонних поставщиков учетных данных.

05 октября 2012 утро

Я только что позвонил одному из их инженеров. Объясните ему всю проблему еще раз. Он уверен, что :somethingна сегодняшний день у него нет особого внутреннего значения, но он не может гарантировать, что это может что-то значить в будущем.

Однако у него нет исходного кода, чтобы подтвердить это. Он собирается отправить электронное письмо кому-то еще с исходным кодом, чтобы подтвердить это.

03 октября 2012 г. ночь - мой ответ

Спасибо за информацию. Тем не менее, я попробовал некоторые другие нелегальные символы, например; и |

Пользовательский интерфейс входа в систему может успешно обнаружить это и сказать мне, что мое имя пользователя или пароли неверны.

Если внешний интерфейс действительно не выполняет никакой проверки ввода, а внутренний интерфейс действительно может удалить все недопустимые символы, почему пользовательский интерфейс входа не позволит мне войти в систему как Harvey@company.com|something или Harvey@company.com; что-то, кроме Harvey@company.com: что-то.

Это странное поведение происходит только на «:».

-Harvey

3 октября 2012 г. - ответ службы поддержки MS

Привет Харви,

Нет ошибки в проверке внешнего интерфейса, так как внешний интерфейс не выполняет никакой проверки. Проверка выполняется, когда вы вводите свои учетные данные и пытаетесь войти в систему, затем в фоновом режиме выполняется проверка и отображается соответствующая ошибка.

Причина, по которой не выполняется предварительная проверка, заключается в том, что используются сторонние пользовательские интерфейсы входа в систему, которые используются, и требования к работе и аутентификации пользователя могут быть другими. Некоторые пользовательские интерфейсы могут требовать имя пользователя в формате diff, поэтому выполнение проверки при вводе учетных данных пользователя нарушит эти пользовательские интерфейсы.

Что касается Backend, каждый пользовательский интерфейс вызывает API-интерфейсы аутентификации Backend, независимо от того, какой пользовательский интерфейс присутствует во внешнем интерфейсе. Таким образом, выполнение проверки в бэкэнде обеспечивает правильную аутентификацию

С уважением XXXX

03 октября 2012 г. - мой ответ

Я понимаю объяснение различной обработки в front-end и back-end, так как я также программист.

Таким образом, это звучит как небольшая ошибка в логике проверки входных данных интерфейса пользователя, хотя в фоновом режиме ошибки нет.

Обратите внимание, что я также пытался сделать то же самое с помощью runas.exe. Файл runas.exe показал мне сообщение об ошибке перед передачей искаженного имени пользователя на сервер. Итак, мне кажется, что runas.exe выполняет правильную проверку ввода.

Если вы все еще думаете, что в интерфейсе пользовательского интерфейса нет ошибки, не могли бы вы объяснить, как дать конечному пользователю возможность ввести искаженное имя пользователя, а затем отобразить его на экране?

Спасибо Харви

3 октября 2012, утро - MS Support ответ

Привет Харви,

Я прошу прощения за задержку. Я переправил ваш вопрос в мое МСП, и вот его ответ: без ошибок. пользовательский интерфейс отображает то, что вы ввели. Бэкэнд анализирует строку, чтобы определить домен и имя пользователя. Это делает это правильно, так как: это незаконный символ.

Пожалуйста, дайте мне знать, если это прояснит ваши вопросы или я смогу помочь вам в дальнейшем.

С уважением XXXXX

Харви Квок
источник
3
Выдающиеся усилия и ответ. Я сожалею, что у меня есть только одно возражение, чтобы дать это. (И, FWIW, вы вдохновили меня проверить это с другими «нелегальными» персонажами.)
HopelessN00b
Мне нравится, когда я имею дело с продавцом и получаю уклончивую серию таких ответов. Мне особенно нравится сравнение с поведением рун и очевидное несоответствие, при котором удаляется только один конкретный «нелегальный персонаж» (и, видимо, все после этого ...), но отличная работа по установлению контактов с MS. По крайней мере, вам не нужно было убеждать их, что 0,002c! = 0,002 $ :)
Джон Клоске