Um CN (nome comum) não é bom para efetuar 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 terá problemas se tiver duas pessoas em sua organização denominadas Ryan Ries e terá que fazer o SamAccountName para o segundo algo como rries2
.
Um DN (nome diferenciado) não é bom para efetuar login, porque quem deseja efetuar 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 seja exclusivo e definitivamente identifique um usuário, é chato ter que digitar. É o mesmo tipo de conceito entre caminhos relativos e caminhos absolutos em um sistema de arquivos. Isso também significa que você sabe exatamente onde, na estrutura de diretório, o objeto está localizado, sem ter que procurá-lo. O que você muitas vezes não faz.
Isso é chamado ANR (resolução de nomes ambíguos) - pesquisando o diretório de um usuário quando você não tem o nome distinto dele.
UPN (nome principal do usuário) é muito bom porque se parece com endereços de e-mail, eles podem ser o mesmo que o endereço de e-mail corporativo do usuário, são fáceis de lembrar e preferem fazer login porque o nome será ser procurado primeiro no domínio local, antes de procurá-lo na floresta.
Microsoft says: The point of the UPN is to consolidate the email and logon namespaces so that the user need only remember a single name. The UPN is the preferred logon name for Windows users. Users should be using their UPNs to log on to the domain. At logon time, a UPN is validated first by searching the local domain, then the global catalog. Failure to find the UPN in the local domain or the GC results in rejection of the UPN. The UPN can be assigned, but is not required, when the user account is created.
Tenha em mente que "não é obrigatório" no final ao projetar seus aplicativos.
SamAccountName também é bom porque SamAccountName precisa ser exclusivo para todos no domínio (mas não na floresta). Além disso, SamAccountNames são curtos. A maioria das pessoas efetua login com SamAccountNames, embora elas não o identifiquem 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. .
Veja uma ótima documentação sobre o assunto para ler mais: