OpenLDAP server no tempo de um miojo!

Anselmo Borges
3 min readMar 3, 2020

--

Quer apostar? rs

Essas horas você deve estar se perguntando: "Mas Anselmo você trabalha com dados, por que você quer um OpenLDAP?"

aahmmm??

No meu caso precisava fazer alguns testes de um Cluster Nifi com autenticação via LDAP, sendo assim…

Outro exemplo seria: Como centralizar uma galera que precisa acessar um Cluster de banco, gerenciar grupos e tudo isso de uma forma centralizada?

Active Directory, mas como sou do mundo OpenSource, vamos de OpenLDAP. Mas pra quem nem sabe o que é o LDAP é basicamente uma arvore centralizada de usuários e grupos a quais eles pertencem, caso queira mais informações peguei um artigo aleatório e segue o link abaixo.

Aqui a parada é fazer rapidão, sem explicar muito então vamos lá:

Ingredientes

O que você precisa pra subir seu OpenLDAP da maneira que eu proponho:

  • Um Linux/Mac com acesso a internet (talvez até um Windows desde que tenha o Docker)
  • Docker Instalado
  • Um porque pra você fazer isso

OBS: Até fiz um na mão, instalando pacotes, configurando arquivos, mas em tempos de Docker pensei, deixa eu ver na internet se tem algo em container e advinha?

Fazendo

Tenha em mão as seguintes informações abaixo:

  • Nome do seu container: útil para administração do serviço, chamei o meu de "openldap"
  • Nome da minha organização: Usei o nome da minha empresa "Rescue Point"
  • Nome que você quer para o seu domínio LDAP: "rescuepoint.com.br"
  • Senha para o usuário Admin: Criei uma senha básica pra teste "bjj2020"

Sendo assim, considerando que você tenha o Docker instalado como solicitado acima, rode o comando abaixo substituindo as variáveis pelas suas informações:

sudo docker run -p 389:389 -p 636:636 --name openldap --env LDAP_ORGANISATION="Rescue Point" --env LDAP_DOMAIN="rescuepoint.com.br" --env LDAP_ADMIN_PASSWORD="bjj2020" --detach osixia/openldap:1.3.0

As portas mapeadas são para que o seu serviço seja mapeado remotamente 389 é a porta padrão do OpenLDAP.

Para testar vamos rodar o comando abaixo com os dados do domínio que você criou:

ldapsearch -x -H ldap://localhost -b dc=rescuepoint,dc=com,dc=br -D "cn=admin,dc=rescuepoint,dc=com,dc=br" -w bjj2020

O resultado é mais ou menos isso:

# extended LDIF
#
# LDAPv3
# base <dc=rescuepoint,dc=com,dc=br> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# rescuepoint.com.br
dn: dc=rescuepoint,dc=com,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: Rescue Point
dc: rescuepoint
# admin, rescuepoint.com.br
dn: cn=admin,dc=rescuepoint,dc=com,dc=br
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9SE4vVUlsYUh5aDVsQVVZTTA1WVprS2pnUGdDTGM2VFA=
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

Sendo assim você já tem seu servidor OpenLDAP e dependendo da sua internet em menos de 3 minutos como prometi, mas vamos subir o nível? Administrar o OpenLDAP via comandos pode ser muito chato, sendo assim vamos instalar o phpLDAPadmin que é uma interface web para administração do OpenLDAP de forma simples.

Instalando o phpLDAPadmin

O que precisamos para instalar esse cara:

  • Nome do container: vou chamar de "phpldapadmin"
  • hostname: dei o mesmo nome, "phpldapadmin"
  • crio um link que vai linkar o host do openldap dentro da configuração do phpLDAPadmin, no caso, linkou openldap > rescue
  • PHPLDAPADMIN_LDAP_HOSTS: coloco o link criado "rescue"
sudo docker run -p 6443:443 --name phpldapadmin --hostname phpldapadmin --link openldap:rescue --env PHPLDAPADMIN_LDAP_HOSTS=rescue --detach osixia/phpldapadmin:0.9.0

Feito isso, o phpLDAPadmin já está no ar do seu servidor no endereço "https://seuhost:6443", na tela de login use os dados de acordo com seu domínio, no meu caso seria:

  • Usuário: cn=admin,dc=rescuepoint,dc=com,dc=br
  • Senha: bjj2020
Tela de Login do phpLDAPadmin

Logando, você já pode realizar a administração do OpenLDAP mais de boa conforme abaixo no exemplo da criação de uma entrada:

Olha ae que teta!

Bom por hoje foi isso, nos próximos posts quero fazer um roteiro de como criar um cluster seguro de Apache Nifi tendo uma base de autenticação centralizada no OpenLDAP. Vai ser loco! rs

Abraço e até o próximo.

Anselmo Borges

--

--

Anselmo Borges
Anselmo Borges

Written by Anselmo Borges

Bigdata Engineer, Cloud Architect, Nerd, Alcoholic, Brazilian Jiujitsu Black belt and hide and seek World champion.