Re:Melhor forma de autenticação LDAP

Olha a forma que autentico o usuário na rede. É só passar o usuário, senha e o domínio no qual o usuário quer se autenticar, que o método retorna true caso consiga autenticar, caso contrário, levanta alguma exceção.

	@SuppressWarnings("unchecked")
	public boolean login(String pUsuario, String pSenha, String pDominio) throws Exception {

		String lUrl = "LDAP://" + HOST + ":" + PORTA;
		String lDn = pUsuario + "@" + pDominio;

		Hashtable lMapAutenticacao = new Hashtable();

		lMapAutenticacao.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
		lMapAutenticacao.put(Context.SECURITY_AUTHENTICATION, "simple");
		lMapAutenticacao.put(Context.PROVIDER_URL, lUrl);
		lMapAutenticacao.put(Context.SECURITY_PRINCIPAL, lDn);
		lMapAutenticacao.put(Context.SECURITY_CREDENTIALS, pSenha);

		try {

			@SuppressWarnings("unused")
			DirContext lAutenticacaoContexto = new InitialDirContext(lMapAutenticacao);

			return true;
		}
		catch (Exception lExcecao) {

			if (lExcecao instanceof AuthenticationException) {

                                //Lance a exceção para Usuário e/ou Senha Incorretos
			}
			if (lExcecao instanceof NamingException) {

                                //Lance a exceção para problema de autenticação na rede
			}

			throw lExcecao;
		}
	}

Eu nunca precisei fazer isso. :frowning:

Via JNDI é possível fazer algumas coisas bem básicas e usuais (como autenticar-se em um determinado sistema), mas outras coisas mais específicas (como mudar a senha, ou listar os grupos ao qual um usuário pertence) exigem acesso direto ao LDAP.

São essas bibliotecas que você citou no começo (JLDAP, OpenLDAP etc.).

Via JNDI você consegue fazer tudo isso também. Listar grupos, trocar senha, criar ou deletar um usuário, etc.

oi

tente utilizar um browser para o ldap, pode te ajudar com os testes
um que eu já usei e recomendo é este aqui

abs

Pessoal boa tarde,

Estou com problemas também usando LDAP, peguei um projeto pronto e a função de Excluir email nao esta funcionando, soh isso.
Será que alguém pode me ajudar?

Brother, tentava fazer isso de diversas formas e que coisa mais simples. muito obrigado.

Galera,

Estive olhando em vários foruns e constatei a utilização de várias bibliotecas para autenticação LDAP. Em nenhum encontrei um comparativo entre elas.
Alguem ja utilizou JLDAP (biblioteca pra implementação OpenLDAP, de LDAP)?
O que acham da propria JNDI do java para isso?

Desde ja agradeço, Guilherme

Obrigado!

De fato é muito simples, tudo via JNDI.
Além da autenticação, vc tb consegue alterar a senha?

guilherme

e como seria esse acesso direto ao LDAP? Existe alguma API Java para isso?

Blz! é que ainda não sei como utilizá-las!

Obrigado pela ajuda!!

blz, vou tentar aqui…

abs