Como determinar o tempo de login mais recente do Active Directory em tempo hábil?

1

Eu tenho um requisito de segurança que, depois que meu aplicativo fizer login em um usuário, ele deverá exibir a data e a hora do login anterior mais recente do usuário. O valor "lastLogonTimeStamp" replicado do Active Directory não está nem perto do que é necessário, então escrevi um código inspirado no link onde pesquiso o usuário em cada controlador de domínio no domínio, pegue o valor "lastLogon" e mantenha o valor máximo. Este valor parece ser exato.

A má notícia é que meu código encontrou mais de 100 controladores de domínio e leva 13 minutos para pesquisar o usuário em todos eles. Eu entrei em minha própria conta e da depuração do meu código tenho notado que eu já fiz login em apenas 55 desses controladores de domínio. Para tornar as coisas mais interessantes, apenas 7 desses controladores de domínio mostram os tempos de login de hoje e minha "logonCount" nesses 7 controladores de domínio está acima de 1000, enquanto nos outros está nos dígitos únicos. Se eu alterar meu código para procurar minha conta somente nesses 7 controladores de domínio, posso determinar meu tempo de login mais recente em menos de 7 segundos, o que é um desempenho aceitável.

A pergunta que tenho para a comunidade é o que torna esses 7 controladores de domínio especiais e como devo fazer com que meu código pesquise as estatísticas de login apenas naqueles?

Obrigado, eugen

    
por eugen_nw 16.09.2011 / 03:34

1 resposta

2

Você está procurando rastrear logins do Windows ou apenas logins em seu aplicativo?

O rastreamento para logins do Windows ficou muito mais fácil com 2008, se é isso que você está procurando:

Habilite o rastreamento global dos dados de registro de data e hora do último logon. defina isso em uma política de grupo que se aplique a seus DCs (não aplique-o a estações de trabalho sem estar ciente das advertências; essa política impedirá o login de um sistema desconectado da rede):

Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Logon Options > Display information about previous logons during user logon

Em seguida, o atributo msDS-LastSuccessfulInteractiveLogonTime terá dados consistentes replicados no domínio.

Se você deseja acompanhar apenas os logins de aplicativos, considere o rastreamento dos dados em um atributo de esquema que você acabou de gravar em si mesmo em um login bem-sucedido.

    
por 16.09.2011 / 03:49