Thursday, November 26, 2009

Windows Auth, Windows Auth, Windows Auth!!!

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 ““ que a Microsoft desde a versão SQL 2000 SP3 (+-) tão fervorosamente indica ser DESACONSELHADO e futuramente descontinuado.

image 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:

imageimage

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:

image

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
imageQuantos de vocês lêem o manual de instruções / help? RTFM :D
imageAAAAAAaaahhhhhh, 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):


image

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:

imageimageimage

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).aspx

Connecting 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.aspx

ShellRunas:
http://technet.microsoft.com/en-us/sysinternals/cc300361.aspx

 

No comments:

Post a Comment