Qual é o significado de logar como “[email protected]: something”

35

Minha máquina do Windows 2008 R2 está associada a um domínio.

Na tela de logon, se eu digitar "[email protected]: something" como o nome de usuário, ainda posso fazer logon corretamente, qual é o significado de ": something" acrescentado no final?

Até posso ver que o usuário atual é exibido como "[email protected]: something" na tela de troca de usuário. É um recurso no Windows? Ou é apenas um bug? Se for um recurso, qual é a diferença entre fazer login como "[email protected]" e fazer o login como "[email protected]: something"?

Note que tentei diferentes combinações como "mydomain \ username: something" e "mydomain.com:something\username". Nenhum deles funciona, exceto "[email protected]: something".

Atualização de 10 de setembro de 2012

O problema RunAs criado por Justin é semelhante, mas não é exatamente o mesmo que o problema que quero resolver. Se você fizer

runas /user:[email protected]:anything

você receberá

RUNAS ERROR: Unable to acquire user password

Eu verifiquei que o RunAs nem se dá ao trabalho de ligar para o LSA ao ver [email protected]:anything como o nome de usuário. RunAs deveria ter feito validação de entrada e retornar erro lá.

O WinLogon é diferente. Ele aceita esse formato de entrada e passa o "[email protected]: anything" para o LSA. Eu vejo o LogonUserEx2 dentro kerberos.dll foi chamado. Ou existe um bug na lógica de validação de entrada do WinLogon ou este é realmente um formato aceitável para alguns recursos ocultos.

Atualização de 26 de setembro de 2012

Acabei de enviar um caso ao Suporte Premier da Microsoft. Eu atualizarei aqui se obtiver alguma atualização deles.

    
por Harvey Kwok 07.09.2012 / 03:33

1 resposta

13

Eu abri um caso com o Microsoft Premier Support. Aqui está o email entre mim e o suporte da Microsoft. Eles basicamente dizem que é um problema conhecido. Não é um bug e não é um recurso.

O back-end analisará o nome do usuário e removerá os caracteres ilegais corretamente O front-end não faz nenhuma validação de interface do usuário porque pode haver alguma outra interface de usuário de logon de terceiros. Sua exigência no nome do usuário pode ser diferente. Eu acho que eles estão se referindo aos provedores de credenciais de terceiros.

5 de outubro de 2012 pela manhã

Acabei de telefonar para um dos seus engenheiros. Explique todo o problema para ele mais uma vez. Ele tem certeza de que :something não tem nenhum significado especial internamente a partir de hoje, mas ele não pode garantir que isso possa significar algo no futuro.

No entanto, ele não tem código-fonte para confirmar isso. Ele vai mandar um e-mail para alguém com o código fonte para confirmar isso.

03 de outubro de 2012 noite - minha resposta

Thanks for the info. However, I did try some other illegal characters, like ; and |.

The Logon UI can successfully detect that and tell me my user name or passwords are not correct.

If the front end really doesn’t do any input validation and the back-end can really strip out all illegal characters, why won’t Logon UI allow me to login as [email protected]|something or [email protected];something but [email protected]:something.

This strange behavior happens only on “:”.

-Harvey

3 de outubro de 2012 à tarde - resposta de suporte do MS

Hello Harvey,

There is no Bug in the front end validation as the front end doesn’t perform any validation. The validation is performed once you enter your credentials and try to login, then in the background the validation is performed and the respective error is displayed.

The reason behind not performing a Validation in front is because there are other third party logon UIOs which are used and there requirement to work and authenticate a user could be different. Some UIs might require the username in a diff format, so to perform a validation when user is entering the credentials will break those UIs.

As for Backend, every UI makes a call to backend Authentication APIs, irrespective of which UI is present in the front end. So to perform validation in the backend ensures proper authentication

Regards XXXX

03 de outubro de 2012 à tarde - minha resposta

I understand the explanation on different handling in front-end and back-end as I am also a programmer.

So, it sounds like a minor bug in the front end UI input validation logic although there is no bug in the back-end.

Note that I also tried to do the same thing using runas.exe. The runas.exe showed me the error message before passing the malformed user name to the back-end. So, to me, runas.exe is doing the correct input validation.

If you still think that there is no bug in the UI front end, can you please explain the purpose of allowing end user to type in a malformed user name and then display it on the screen?

Thanks, Harvey

03/10/2012 manhã - Resposta do Suporte do MS

Hello Harvey,

I apologize for the delay. I had forwarded your question to my SME and here is his reply: no bug. the UI displays what you typed. The back end parses the string to determine the domain and username. It does that properly since : is an illegal character.

Please let me know if it clarifies your questions or if I can assist you further.

Regards XXXXX

    
por 03.10.2012 / 23:45