Jakie jest znaczenie zalogowania się jako „nazwa użytkownika@moja_domena.com: coś”

35

Mój komputer z systemem Windows 2008 R2 jest przyłączony do domeny.

Jeśli na ekranie logowania wpiszesz „nazwa_użytkownika@moja_domena.com: coś” jako nazwę użytkownika, nadal mogę się poprawnie zalogować, co oznacza „: coś” na końcu?

Widzę nawet, że bieżący użytkownik jest wyświetlany jako „nazwa użytkownika@moja_domena.com: coś” na ekranie użytkownika przełącznika. Czy jest to funkcja w systemie Windows? Czy to tylko błąd? Jeśli jest to funkcja, jaka jest różnica między zalogowaniem się jako „nazwa_użytkownika@moja_domena.com” a zalogowaniem się jako „nazwa_użytkownika@moja_domena.com: coś”?

Zauważ, że próbowałem różnych kombinacji, takich jak „mojadomena \ nazwa użytkownika: coś” i „mojadomena.com: coś \ nazwa_użytkownika”. Żadne z nich nie działa oprócz „nazwa_użytkownika@moja_domena.com: coś”.

Aktualizacja z 10 września 2012 r

Problem RunAs podniesiony przez Justina jest podobny, ale nie dokładnie taki sam jak problem, który chcę rozwiązać. Jeśli zrobisz

runas /user:[email protected]:anything

dostaniesz

RUNAS ERROR: Unable to acquire user password

Sprawdziłem, że RunAs nawet nie zadaje sobie trudu, aby zadzwonić do LSA, gdy widzi [email protected]:anythingjako nazwę użytkownika. RunAs powinien tam dokonać weryfikacji danych wejściowych i zwrócić błąd.

WinLogon jest inny. Akceptuje ten format danych wejściowych i przekazuje „nazwa_użytkownika@moja_domena.com: cokolwiek” do LSA. Widzę, że LogonUserEx2został wywołany wewnętrzny plik kerberos.dll. Albo jest błąd w logice sprawdzania poprawności danych WinLogon, albo jest to naprawdę akceptowalny format dla niektórych ukrytych funkcji.

Aktualizacja z 26 września 2012 r

Właśnie przesłałem sprawę do pomocy technicznej Microsoft Premier. Zaktualizuję tutaj, jeśli otrzymam od nich aktualizację.

Harvey Kwok
źródło
5
To jest interesujące.
Shane Madden
Czy „: coś” może być: czymkolwiek? Wygląda na to, że Windows traktuje go jako numer portu lub rozszerzenie, bardzo dziwne.
Brent Pabst,
2
Zwariowany. Właśnie to przetestowałem i można utworzyć sufiks UPN domeny.tld: cokolwiek i zalogować się do domeny za pomocą tej nazwy UPN.
joeqwerty
1
Jeśli to zrobię runas /user:"[email protected]:something" "cmd /C dir c:\ & pause", zwraca BŁĄD RUNAS: Nie można uzyskać hasła użytkownika, w przeciwieństwie do normalnego 1326: Błąd logowania: nieznana nazwa użytkownika lub złe hasło. za nieudane logowanie.
Justin Dearing
2
Do waszej wiadomości: Wysłany również na fora TechNet, nie jestem pewien, czy zespół Windows go tam zobaczy, czy nie: bit.ly/UF94GQ
Brent Pabst

Odpowiedzi:

13

Otworzyłem skrzynkę z pomocą Microsoft Premier Support. Oto wiadomość e-mail między mną a wsparciem Microsoft. Mówią w zasadzie, że jest to znany problem. To nie jest błąd ani funkcja.

Back-end parsuje nazwę użytkownika i poprawnie usuwa nielegalne znaki Front-end nie wykonuje żadnego sprawdzania interfejsu użytkownika, ponieważ może istnieć jakiś interfejs użytkownika innej firmy. Wymaganie dotyczące nazwy użytkownika może być inne. Myślę, że odnoszą się one do zewnętrznych dostawców poświadczeń.

05 października 2012 rano

Właśnie zadzwoniłem do jednego z ich inżynierów. Wyjaśnij mu jeszcze raz cały problem. Jest prawie pewien, że :somethingna dzień dzisiejszy nie ma żadnego wewnętrznego znaczenia, ale nie może zagwarantować, że może to coś znaczyć w przyszłości.

Jednak nie ma kodu źródłowego, aby to potwierdzić. Wyśle wiadomość e-mail do kogoś innego z kodem źródłowym, aby to potwierdzić.

Noc z 3 października 2012 r. - moja odpowiedź

Dzięki za informację. Próbowałem jednak użyć innych nielegalnych postaci, takich jak; i |

Interfejs logowania może z powodzeniem wykryć to i powiedzieć, że moja nazwa użytkownika lub hasła są nieprawidłowe.

Jeśli fronton naprawdę nie wykonuje żadnej weryfikacji danych wejściowych, a back-end może naprawdę usunąć wszystkie nielegalne znaki, dlaczego interfejs logowania nie pozwoli mi zalogować się jako [email protected]|something lub [email protected]; coś oprócz [email protected]: coś.

To dziwne zachowanie występuje tylko na „:”.

-Harvey

03 października 2012 po południu - odpowiedź wsparcia MS

Cześć Harvey,

W walidacji frontonu nie ma błędu, ponieważ fronton nie wykonuje żadnej walidacji. Sprawdzanie poprawności odbywa się po wprowadzeniu poświadczeń i próbie zalogowania się, a następnie w tle sprawdzanie poprawności i wyświetlenie odpowiedniego błędu.

Powodem braku wykonywania walidacji z przodu jest to, że są używane inne interfejsy użytkownika do logowania innych podmiotów, a wymagania dotyczące pracy i uwierzytelnienia użytkownika mogą być inne. Niektóre interfejsy użytkownika mogą wymagać nazwy użytkownika w formacie różnicowym, więc przeprowadzenie weryfikacji, gdy użytkownik wprowadza poświadczenia, spowoduje uszkodzenie tych interfejsów użytkownika.

Jeśli chodzi o Backend, każdy interfejs użytkownika wywołuje interfejsy API uwierzytelniania zaplecza, niezależnie od tego, który interfejs jest obecny w interfejsie użytkownika. Tak więc, aby przeprowadzić walidację w backend, zapewnia prawidłowe uwierzytelnienie

Pozdrawiam XXXX

03 października 2012 po południu - moja odpowiedź

Rozumiem wyjaśnienie różnych sposobów obsługi frontonu i back-endu, ponieważ jestem również programistą.

Brzmi więc to jak niewielki błąd w logice sprawdzania poprawności wejścia interfejsu użytkownika, chociaż nie ma błędu w back-endie.

Zauważ, że próbowałem zrobić to samo za pomocą runas.exe. Runas.exe pokazał mi komunikat o błędzie przed przekazaniem źle sformułowanej nazwy użytkownika do zaplecza. Tak więc, dla mnie, runas.exe dokonuje poprawnej weryfikacji danych wejściowych.

Jeśli nadal uważasz, że w interfejsie użytkownika nie ma błędu, czy możesz wyjaśnić cel umożliwienia użytkownikowi wpisania nieprawidłowej nazwy użytkownika, a następnie wyświetlenia go na ekranie?

Dzięki, Harvey

03 października 2012 rano - odpowiedź MS Support

Cześć Harvey,

Przepraszam za opóźnienie. Przesłałem twoje pytanie do mojego SME i oto jego odpowiedź: brak błędu. interfejs wyświetla to, co wpisałeś. Zaplecze analizuje ciąg w celu ustalenia domeny i nazwy użytkownika. Robi to poprawnie, ponieważ: jest postacią nielegalną.

Daj mi znać, jeśli wyjaśni to twoje pytania lub czy mogę ci pomóc dalej.

Pozdrawiam XXXXX

Harvey Kwok
źródło
3
Znakomity wysiłek i odpowiedź. Żałuję, że mam tylko jeden głos, by to udzielić. (I, FWIW, zainspirowałeś mnie do przetestowania tego z innymi „nielegalnymi” postaciami.)
HopelessN00b
Uwielbiam to, gdy mam do czynienia z dostawcą i otrzymuję serię podobnych odpowiedzi. Szczególnie podoba mi się porównanie z zachowaniem run i oczywista niespójność, w której tylko jeden konkretny „nielegalny charakter” jest pozbawiony (i najwyraźniej wszystko potem ...) Ale świetna praca w kontaktowaniu się ze stwardnieniem rozsianym. Przynajmniej nie musiałeś ich przekonywać, że 0,002c! = 0,002 $ :)
Jon Kloske