Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Spring LDAP. Neste artigo são apresentados os principais conceitos relativos a essa biblioteca e exemplos do seu uso para efetuar consultas no LDAP. Além disso, é feita uma breve introdução à árvore LDAP e seus princípios.
Para que serve:
Fornecer uma alternativa simples e produtiva para acesso ao LDAP. O uso do LDAP em aplicações corporativas é um requisito de muitos sistemas, e o conhecimento de uma ferramenta flexível permite ao desenvolvedor construir consultas de forma mais rápida, simples e de manutenção mais fácil.
Em que situação o tema é útil:
O Spring LDAP facilita o uso do diretório LDAP em aplicações corporativas e embute mais produtividade à manipulação da árvore através do Java. A ferramenta é uma ótima alternativa para o desenvolvimento tradicional, baseado nas classes dos pacotes javax.naming e javax.naming.directory, oferecendo uma API extremamente rica e flexível.
Primeiros passos com o Spring LDAP:
Neste artigo são abordados os principais conceitos do LDAP e uma alternativa de uso – o Spring LDAP – é apresentada em detalhes. Um exemplo completo de consulta ao LDAP é explicado e demonstrado através de duas estratégias compatíveis: uso da API tradicional Java e uso da biblioteca Spring LDAP.
Além disso, demonstra-se de forma concisa como utilizar a biblioteca para executar operações CRUD sobre o LDAP. Assim, é possível entender as facilidades oferecidas pelo Spring LDAP e a vantagem de seu uso, tanto em termos de velocidade de desenvolvimento, quanto em compreensão do código escrito, manutenção e evolução.
O LDAP é comumente usado para autenticação e autorização de usuários em aplicações corporativas. Apesar do uso difundido, esse software é visto por muitos como uma “caixa-preta”, um sistema “complexo” ou só acessível ao pessoal especializado em segurança da informação.
Esse preconceito faz com que o LDAP não seja utilizado em sua potencialidade, e muitas das informações disponíveis nesse repositório acabam repetidas no banco de dados.
O Spring LDAP é uma ferramenta que simplifica o acesso ao LDAP, utilizando os conceitos difundidos pelo framework Spring. Essas facilidades permitem um uso mais completo e simples do LDAP e aproximam esse software dos desenvolvedores comuns.
LDAP: conceitos básicos
O LDAP (Lightweight Directory Access Protocol) é um dos protocolos mais conhecidos e utilizados em grandes corporações. Apesar de se tratar de um protocolo, o termo LDAP normalmente é utilizado para referir-se ao servidor LDAP, um serviço de diretório que é acessado via TCP/IP.
Assim como em qualquer serviço de diretório, a estrutura do LDAP é hierárquica e os objetos e atributos ali armazenados são distribuídos segundo uma ordem lógica (semelhante a uma estrutura de arquivos no sistema operacional). O LDAP na verdade é um banco de dados especializado e otimizado para operações de busca e leitura, o que torna as consultas significativamente mais performáticas que a escrita/atualização de dados. Exemplos conhecidos de servidores LDAP são: OpenLDAP, Apache Directory Server, Windows Active Directory e Sun LDAP Server.
Entendendo os detalhes
A árvore do LDAP pode armazenar qualquer tipo de informação. Normalmente associamos o LDAP a conceitos como segurança, usuários e grupos, mas também é possível (e comum) utilizá-lo para guardar informações sobre os ativos da corporação, como departamentos, computadores, impressoras, etc.
Em um diretório LDAP cada nó é denominado entrada (entry). A entrada representa um conjunto de atributos e cada atributo possui um tipo (também chamado de nome) e um ou mais valores. O tipo do atributo é um uma sigla intuitiva e significativa, como “cn” para “common name”, “o” para “organization”, etc. A Tabela 1 exibe alguns exemplos comuns.
Sigla | Significado | Descrição |
dn | distinguished name | Um nome que identifica unicamente uma entrada no diretório. |
dc
|
domain component | Cada um dos componentes de um domínio. Por exemplo, www.codecompany.com.br seria escrito como dc=www, dc=codecompany, dc=com, dc=br. |
ou | organizational unit | Uma unidade organizacional, departamento ou grupo dentro da empresa. |
cn | common name | Utilizado normalmente para o nome de uma pessoa ou nome usado para referenciar algum objeto (impressora, sala, etc.). |
sn | surname | Sobrenome. |
c | country / region | ... |
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.