Um CN (nome comum) não é bom para fazer login, porque um CN sozinho não identifica exclusivamente um usuário. Eu poderia ter um
CN=Ryan Ries,OU=Dallas,DC=Domain,DC=com
e eu também poderia ter um
CN=Ryan Ries,OU=New York,DC=Domain,DC=com
O CN de um usuário também é um RDN (nome distinto relativo.) Eles têm o mesmo CN, mas DNs diferentes. Você pode perceber que se depara com problemas se tiver duas pessoas em sua organização chamada Ryan Ries e precisará criar o SamAccountName para o segundo como algo semelhante rries2
.
Um DN (nome distinto) não é bom para fazer login, porque quem deseja fazer login em um sistema com um nome de usuário como CN=ryan,OU=Texas,DC=brazzers,DC=com
? Embora o uso de um DN identifique um usuário de maneira exclusiva e definitiva, é irritante ter que digitar. É o mesmo tipo de conceito entre caminhos relativos e caminhos absolutos em um sistema de arquivos. Isso também implica que você sabe exatamente onde na estrutura de diretórios o objeto está localizado sem precisar procurá-lo. O que você frequentemente não faz.
Isso é chamado de Resolução de nomes ambíguos (ANR) - procurando no diretório por um usuário quando você não possui seu nome distinto.
O UPN (nome principal do usuário) é muito bom porque eles se parecem com endereços de e-mail, podem ser iguais ao endereço de e-mail corporativo do usuário, são fáceis de lembrar e preferem fazer login porque o nome será pesquisado primeiro no domínio local, antes de procurá-lo na floresta.
A Microsoft diz: O objetivo do UPN é consolidar os espaços de nome de email e logon para que o usuário precise se lembrar apenas de um único nome. O UPN é o nome de logon preferido para usuários do Windows. Os usuários devem estar usando seus UPNs para fazer logon no domínio. No momento do logon, um UPN é validado primeiro pesquisando o domínio local e depois o catálogo global. A falha em encontrar o UPN no domínio local ou no GC resulta na rejeição do UPN. O UPN pode ser atribuído, mas não é necessário , quando a conta do usuário é criada.
Lembre-se de que "não é necessário" no final ao projetar seus aplicativos.
SamAccountName também é bom porque SamAccountName precisa ser exclusivo para todos no domínio (mas não para a floresta.) Além disso, SamAccountNames são curtos. A maioria das pessoas efetua login com SamAccountNames, mesmo que não o identifique exclusivamente em uma floresta do AD, e é por isso que você precisa especificar um nome de domínio para acompanhar seu SamAccountName, para que o sistema saiba em qual domínio você está tentando efetuar login. .
Aqui está uma excelente documentação sobre o assunto para leituras adicionais:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms677605(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms680857(v=vs.85).aspx