Você está na página 1de 5

Autenticando usuário via LDAP tanto em

domínio único quanto em uma floresta inteira


25 February, 2015 Jonas Artigos, HowTo - Como fazer

HowTo: Autenticação de usuários de forma transparente, buscando o mesmo em


uma floresta e não apenas no domínio principal Active Directory.
EXPLICANDO O CENÁRIO:
Uma empresa que possui 6 unidades (matriz e 5 filiais) interligadas com Active Directory
(VPN, link dedicado ou outra forma…).
Se tem um problema que costuma dar dor de cabeça é a questão das senhas dos
usuários, pois eles vivem esquecendo e confundindo senha de domínio com senha de
sistema, senha de sistema com senha de comunicador e por aí vai.
Nada melhor do que poder integrar tudo que for possível ao controlador de domínio,
unificando as senhas. Ao trocar a senha de domínio, trocam-se todas ao mesmo tempo,
tudo fica automatizado, economizando um tempo enorme com atendimentos para trocas
de senhas e manipulação de grupos e usuários em vários sistemas e softwares.
Vamos usar como exemplo a aplicação OPENFIRE (servidor de chat corporativo), mas
funciona em qualquer outra aplicação que permita autenticação no Active Directory ou
LDAP, testei também no REDMINE, GLPI e em um script de autenticação em PHP que
utilizamos em alguns sistemas.
Integrar o OPENFIRE em um domínio AD/LDAP é relativamente fácil.
Basta que na Configuração de Perfis, seja escolhida a opção Servidor de Diretórios
(LDAP), na sequência especificar o tipo do servidor (no meu caso o AD), o host (que pode
ser o FQDN – desde que possa ser resolvido pelo DNS – ou IP do controlador de domínio,
eu utilizo por IP), a porta LDAP (389 por padrão), a base DN completa (em formato LDAP,
dc=empresa,dc=com,dc=br), o DN completo do Administrador do DC (também em formato
LDAP, cn=administrador,cn=users,dc=empresa,dc=com,dc=br) e por fim a senha do
Administrador do domínio.
No final da configuração, indique no mínimo um usuário do AD para ser administrador do
Openfire (obrigatório).
Isso é o suficiente para fazer com que o OPENFIRE interaja com o DC, lendo a base
LDAP do AD e reconhecendo grupos e usuários do domínio, podendo assim autenticá-los
com suas respectivas senhas do domínio, bastando tão somente habilitar no OPENFIRE
os grupos do AD (o que é o menor dos problemas).
Não vou entrar em detalhes sobre a instalação por não ser este o objetivo deste tutorial,
mas indico este link.
– Servidor Messenger Openfire passo-a-passo no Linux
EXPLICANDO O PROBLEMA
Se eu tivesse apenas 1 domínio eu estaria plenamente satisfeito, mas era exatamente
neste ponto que morava meu problema, já que tenho 6 domínios em relação de confiança
separados fisicamente nas unidades.
Como fazer com que os usuários de todos os domínios da floresta se loguem e se
enxerguem em uma única interface?
Se o AD é capaz de procurar usuários/grupos em toda a floresta de uma única vez,
obviamente existe uma forma de realizar essa consulta via LDAP e consequentemente,
utilizar no OPENFIRE.
E graças a Microsoft TechNet foi possível chegar a solução de como realizar consultas
LDAP tanto em domínios únicos quanto em uma floresta inteira (catálogo global), que era
exatamente o que eu precisava e BINGO! Funcionou exatamente e perfeitamente como
esperado.
Usuários de todos os domínios logando-se em um único servidor integrado a floresta do
AD e se enxergando na lista de contatos uns dos outros, cada um no seu devido grupo.
A partir daí foi só habilitar os grupos de todos os domínios filhos de acordo com a estrutura
organizacional da empresa para que tudo estivesse de acordo com o escopo do projeto.
A SOLUÇÃO
A solução é bem simples, baseia-se parte no nome do domínio e parte em configuração de
porta.
Ou seja, quando se deseja realizar consultas que se estendam por toda a floresta
(domínios pai e filhos) é necessário especificar apenas parte do nome do domínio e alterar
a porta de 389 para 3268, como na figura abaixo.
Perceba que a Base DN é apenas “com.br” em formato LDAP. Apenas o DN do
Administrador do Domínio Pai deve ser completo, pois ele é quem poderá realizar as
consultas em todos os Domínios da floresta.
A diferença entre as portas 389 e 3268 é que a primeira permite a consulta somente na
base local e é necessário que a base DN seja completa (dc=empresa,dc=com,dc=br) e a
segunda permite a consulta em toda a floresta, especificando apenas parte do nome do
domínio (dc=com,dc=br). Abaixo um exemplo com a configuração no REDMINE:
Exemplo:
Eu tenho 6 domínios em relação de confiança:
—empresa1.com.br
——-filial1.empresa1.com.br,
——-filial2.empresa1.com.br,
——-filial3.empresa1.com.br,
——-filial4.empresa1.com.br e
—-empresa2.com.br
No meu caso, tenho 2 domínios com shortnames diferentes (empresa1.com.br e
empresa2.com.br), apenas terminados em com.br.
Ao especificar “dc=com,dc=br” e a porta 3268 estou informando que a consulta deve
abranger todos os domínios da floresta, que contenham .com.br em seus nomes DNS,
dessa forma consigo incluir os domínios com shortnames diferentes (atente-se a esse
detalhe caso os domínios não sejam padronizados).
Se eu não tivesse o domínio empresa2.com.br eu poderia especificar a base DN assim:
“dc=empresa1,dc=com,dc=br” que seria suficiente.
CONCLUSÃO
No final das contas bastou apenas 1 único servidor para atender toda a floresta de forma
efetiva.
Se a função Server 2 Server tivesse funcionado, eu precisaria de 1 servidor Openfire em
cada unidade da empresa, alocando recursos, consumo de energia e mais tempo para
configurar todos os servidores. Além de ter que me preocupar com 6 servidores estarem
online.

Você também pode gostar