Como especificar o nome de usuário LDAP para se conectar ao Active Directory?

7

Estou tentando integrar meu programa ao LDAP. Eu tenho um servidor do Active Directory aqui, que aparentemente fala LDAP. Eu quero ver o que está no servidor antes de eu tentar depurar meu próprio código. Eu encontrei um programa chamado jxplorer que afirma ser capaz de falar com servidores LDAP.

No entanto, parece que não consigo dar certo. Estou usando configurações:

  • Host: (endereço IP do meu servidor do AD)
  • Porta: 389
  • Protocolo: LDAPv3
  • DN base: OU = MyCompany, DC = domaincontroller, DC = local (uma string que recebi de outra pessoa da minha empresa que escreveu algum código LDAP aqui antes)
  • Nível: usuário + senha
  • DN do usuário, Senha: (meu nome de usuário e senha nesse servidor Exchange)

O erro que estou recebendo é:

javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID=0C090334, comment: AcceptSecurityContext error, data 525, vece ]

O outro LDAP aqui diz que o 525 é "user not found" e supõe que talvez o nome do usuário precise ser especificado em "nomenclatura LDAP".

Alguém sabe como se conectar ao AD com o jxplorer?

    
por Ken 24.02.2011 / 22:04

2 respostas

7

Descobriu o caminho: não é o login do usuário. É um DN LDAP como:

CN=My Name,OU=My Company,DC=server,DC=local
    
por 25.02.2011 / 02:53
1

Transmita o ID do usuário e a senha do LDAP diretamente codificados.

exemplo:

     Hashtable env = new Hashtable();         
     env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.REFERRAL, "follow");
env.put(Context.SECURITY_PRINCIPAL,"adminuserid");
env.put(Context.SECURITY_CREDENTIALS,"adminPassword");
env.put(Context.PROVIDER_URL,"ldapUrllink");
DirContext ctx = new InitialDirContext(env);

Isso deve funcionar.

obrigado Sajith

    
por 04.04.2013 / 09:28