Problema de Login do Active Directory

2

Eu tenho 2 usuários em minha instalação do AD com o mesmo CN

   CN=jack,CN=Users,DC=xyz,DC=com and 
   CN=jack,OU=abc,DC=xyz,DC=com

Quando tento autenticar no AD Server usando o cliente Apache Directory Studio e forneço as seguintes credenciais

User: jack
Password: <password>

a autenticação falha. As seguintes credenciais funcionam

User: CN=jack,CN=Users,DC=xyz,DC=com
Passwprd: <password>

Quando tenho apenas um usuário CN=tom,DC=xyz,DC=com com um determinado CN

Eu consigo fazer login com

User: tom
Password: <password>

sem precisar especificar o DN inteiro ( CN=tom,DC=xyz,DC=com ).

Eu preciso escrever um módulo para autenticar usuários em uma instalação do AD. Eu tenho comigo apenas os nomes de usuário e senhas e não os DNs de BASE totalmente qualificados. Como faço isso porque o problema parece acontecer quando há mais de um usuário com o mesmo CN?

EDITAR : Posso configurar o servidor do AD para vincular-se ao endereço de e-mail dos usuários em vez do CN? Isso resolveria meu problema, pois os endereços de e-mail são únicos, enquanto os CNs não são

    
por Stormshadow 23.07.2010 / 09:36

5 respostas

1

Não sei o que dizer, principalmente porque é difícil ver exatamente o que você está perguntando.

Se a sua organização criar nomes de usuário 'duplicados' em diferentes contextos / UOs, o que certamente é permitido no AD, qualquer código que você escrever terá que suportar o trabalho com nomes de usuário em contextos diferentes.

Se essa é uma boa ideia ou "correta" ou não, é uma questão para a sua organização decidir internamente.

    
por 23.07.2010 / 09:45
1

O sAMAccountName de um usuário deve ser exclusivo dentro de um determinado domínio, portanto, você deve conseguir que o cliente consulte o AD com base no sAMAccountName e, em seguida, use o nome completo do X.400 retornado para autenticação.

Se você tiver mais de um domínio, precisará do domínio + userID (sAMAccountName) para autenticar de qualquer maneira.

    
por 23.07.2010 / 11:44
1

Você está tentando usar o nome distinto relativo (RDN), não o CN. O nome distinto relativo é exclusivo dentro da OU (seu caminho relativo), mas pode não ser exclusivo no domínio. Você deve estar usando o nome distinto (DN), que é inequívoco e exclusivo dentro do domínio.

link

    
por 23.07.2010 / 13:09
1

Encontrei o atributo que estava procurando - > userPrincipalName (UPN). Isso tem um valor exclusivo no Active Directory e pode ser fornecido como o nome de usuário durante a tentativa de autenticação. Então agora eu preciso de uma lista de UPNs e as senhas correspondentes para o login.

link

    
por 24.07.2010 / 06:11
1

No objeto de usuário do Active Directory, o samaccountname (nome de logon) e o UPN (nome da entidade de usuário) para fazer logon no domínio do Active Directory.

E Essas propriedades do objeto de usuário devem ser exclusivas no Active Directory

como sua pergunta ...

CN=jack,CN=Users,DC=xyz,DC=com  
CN=jack,OU=abc,DC=xyz,DC=com

você cria dois objetos de usuário como acima. a sintaxe acima é DN.

você verificará o samaccountname (nome de logon) ou o UPN para esses usuários. Quero dizer, os usuários acima têm nomes de contas e UPNs diferentes. depois de verificar o verdadeiro samaccountname ou UPN para esses usuários e tente fazer o logon.

P.S. Além disso, o DN tem o recurso exclusivo.

    
por 26.07.2010 / 06:42