Caros amigos e leitores,
Sou especialista em sistemas Microsoft Server e segurança, como tal sempre fui um fervoroso da utilização de “Windows Integrated Authentication” no acesso a recursos Microsoft, porque só assim temos uma maneira fiável e segura de auditar, filtrar e nos ligar-mos a esses sistemas.
Sempre aconselhei (leia-se obriguei) o uso deste tipo de acesso a consultores externos de sistemas Microsoft que estão sobre a minha gestão quer directa quer indirectamente (infelizmente nem sempre com sucesso). E para tal eu usava e ensinava o procedimento de criar um utilizador local com o mesmo nome e credenciais que o utilizador a utilizar no domínio do recurso e depois abrir a aplicação pretendida em modo RunAS (a partir do Windows XP+) ou usando a extensão do explorer “Run as different user”, desse modo as credenciais impersonalizadas eram passadas para o sistema que estava nesse outro domínio e sem que o sistema de onde era feita essa chamada tivesse que estar no mesmo domínio do recurso a aceder.
Procedimento este que era, do meu ponto de vista, fulcral para tentar minimizar (por exemplo) o tão usado acesso SQL em “Mixed Mode“ que a Microsoft desde a versão SQL 2000 SP3 (+-) tão fervorosamente indica ser DESACONSELHADO e futuramente descontinuado.
No entanto a prática que eu pensava que funcionava (e que funcionou em acessos a recursos SQL 2000 com Windows 2003) não funcionou ao tentar configurar o acesso de um consultor externo a um SQL2005 com Windows 2008 R2, fui então validar esta questão.
“usar um utilizador e pwd local com as mesmas credenciais que o user de domínio funcionava (ex: aceder ao SQL 2000 usando um utilizador dominioA\userA onde depois poderia ser feito um runas /user:UserA que existia na máquina local fora do domínio)” mas neste caso não:
YEP no luck, e do lado do recurso tenho o evento 4625 que me reporta que o sistema está também a validar o domínio da conta de origem:
Comecei então na demanda de actualizar esta boa prática… tcham tcham tcham
A partir daqui é que isto fica realmente interessante :D
Connecting To A Database Using Windows Authentication With Different Credentials Using SQL Server Management Studio
Quantos de vocês lêem o manual de instruções / help? RTFM :D
AAAAAAaaahhhhhh, OOOOOoooooohhhhh, viram a luz? então considerem-se a partir deste momento iluminados :D
Esperem só um momento que eu estou em acto de auto-flagelação por não ter tomado atenção a tão simples procedimento…
Bom e melhor do que tudo isto, uma vez mais Mark Russinovich (um verdadeiro GURU desta era tecnológica) e seus colegas nos apresentam mais um maravilhoso utilitário que nos facilita a vida. Apresento-vos (para quem não conhece):
ShellRunas v1.01 By Mark Russinovich and Jon Schwartz
Agora sim ficaram verdadeiramente ofuscados com tanta iluminação!!!! (ou será dos meus olhos?)
Para os incrédulos e agnósticos aqui vai um mero exercicio de POC :)
Nada na manga:
O mesmo se pode fazer com outros tipos de acessos, como gerir uma AD a partir de uma máquina que não está no domínio e sem recurso ao login interactivo no servidor usando Terminal Services / RDS (outra prática a evitar porque expõe um perfil com direitos elevados num servidor), etc…
E voilá, posto isto podem ter a certeza que o meu nível de “compliance” subiu consideravelmente :D
TECHNOTES:
Runas:
http://technet.microsoft.com/en-us/library/cc771525(WS.10).aspxConnecting To A Database Using Windows Authentication With Different Credentials Using SQL Server Management Studio:
http://msmvps.com/blogs/paulomorgado/archive/2009/05/04/tip-connecting-to-a-database-using-windows-authentication-with-different-credentials-using-sql-server-management-studio.aspxShellRunas:
http://technet.microsoft.com/en-us/sysinternals/cc300361.aspx