OpenLDAP - Um software poderoso para gerenciar usuários, permissões e pastas
O OpenLDAP é um software muito interessante e poderoso, ele permite centralizar Authentication e Authorization em um só local. Isso significa que, se você usar softwares que são compatíveis com o protocolo LDAP, você poderá centralizar o cadastro de usuários, senhas e permissões em um só lugar, no servidor OpenLDAP.
Vários softwares implementam o OpenLDAP como um backend de autenticação (bancos de dados, clientes de e-mail...).
O FreeRadius2 pode usar um servidor OpenLDAP como base de dados do seu servidor Radius.
Além disso, o OpenLDAP é também um gerenciador de "serviços de diretório".
Mas que diabos é um serviço de diretório?
Pelo que entendi, resumidamente, diretórios são simplesmente as pastas que temos dentro nos nossos computadores (ou em computadores remotos). Estas pastas (e arquivos) podem ser acessadas por diferentes usuários, e cada usuário tem diferentes permissões: ler, escrever, apagar, criar... O OpenLDAP é um servidor central que controla quem pode acessar quais pastas, e quais são as permissões de cada usuário nelas.
phpLDAPAdmin, uma interface gráfica para o OpenLDAP
O OpenLDAP funciona apenas através de linha de comando. Isso é suficiente, mas no mínimo desagradável pra alguém que ficará todo dia gerenciando usuários e permissões.
Para ter uma interface gráfica amigável para gerenciar o OpenLDAP, existe o phpLDAPAdmin.
Interfaces gráficas para o OpenLDAP
Para gerenciar e configurar o OpenLDAP puro, você precisa usar comandos pelo terminal e editar arquivos text de configuração. Se você quer algo mais intuitivo e fácil, conheço duas opções: phpLDAPAdmin e LDAPAccountManager
Tipos de armazenamento de senha no OpenLDAP
O OpenLDAP é um software antigo. Isso significa que ele contém métodos de guardar senhas que já foram quebrados, então CUIDADO! Será que eles implementaram métodos mais seguros de armazenamento de senhas?
Alguns artigos a esse respeito:
https://www.redpill-linpro.com/techblog/2016/08/16/ldap-password-hash.html
https://www.openldap.org/doc/admin24/security.html
https://ldapwiki.com/wiki/Password%20Storage%20Scheme
Alternativas ao OpenLDAP
Alternativas OpenSource?
Sim, há o ApacheDS!
Pelas minhas breves leituras, ele passa por alguns problemas e me parece que o OpenLDAP é um projeto mais maduro.
Alternativas pagas?
Microsoft Active Directory (ou simplesmente AD)
OpenLDAP + Docker
Alguns conteineres docker para o OpenLDAP
https://hub.docker.com/r/mwaeckerlin/openldap
https://github.com/osixia/docker-openldap
Algumas imagens docker para o pgpLDAPadmin
https://github.com/osixia/docker-phpLDAPadmin
Recomendação de Cursos
Esse curso parece interessante. Nele o instrutor ensina o OpenLDAP e o phpLDAPAdmin
https://www.udemy.com/ldap-directory-services-concepts-setup-and-configuration/
Referências
5 Lições aprendidas ao usar OpenLDAP
https://www.threatstack.com/blog/five-lessons-we-learned-on-our-way-to-centralized-authentication
Como instalar e usar o OpenLDAP para centralizar autenticações
https://www.tecmint.com/install-openldap-server-for-centralized-authentication/
BlowD
http://docs.blowb.org/overview.html