Bom, já existem muitos artigos para trabalharmos com
OpenLDAP, então não entrarei no mérito da história, mas posso garantir que o OpenLDAP é uma estrutura onde podemos "cuidar" de muitas coisas, como por exemplo contas de usuários, que é o nosso foco neste pequeno tutorial.
Utilizei o
CentOS Linux para este texto. Sem muito estresse, vamos ao trabalho!
Primeiro com a ajuda do YUM baixamos o OpenLDAP:
# yum install openldap openldap-server openldap-devel compat-openldap php-ldap
Depois de tudo instalado, vamos rapidamente pegar uma senha para nosso arquivo de configuração:
# slappasswd -s 12345
Esse comando irá gerar a senha no prompt:
{SSHA}tJBMztSgH1yOojFqj3tWP3UaXaowapW/
Copie essa senha pois utilizaremos a seguir.
Então vamos configurar o nosso amigo
/etc/openldap/slapd.conf.
IMPORTANTE: Onde se fala de INCLUDE são na verdade estruturas que o LDAP vai absorver para a base de dados dele, que utiliza o Berkeley DB, então se você for utilizar por exemplo a integração do Samba com o OpenLDAP, deverá colocar o include do schema Samba nessas primeiras linhas, que é fornecido junto com o Samba.
Abaixo segue uma conf muito simples:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
suffix "dc=casa,dc=com"
rootdn "cn=Manager,dc=casa,dc=com"
rootpw {SSHA}tJBMztSgH1yOojFqj3tWP3UaXaowapW/
##Eu disse pra copiar a senha não disse
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
Pronto, extremamente básico. A ideia aqui é somente levantar uma base LDAP, não estamos trabalhando com segurança, entre outras opções.
Agora vamos levantar nosso LDAP:
# sh /etc/init.d/ldap start
Para testar se realmente está funcionando, digite:
# ldapsearch -x
Deve aparecer qualquer coisa DIFERENTE de:
ldap_bind: Can't contact LDAP server (-1)
Você deve ter reparado que a resposta foi meio sem graça porque não temos nada dentro da nossa base, então vamos criar nossa estrutura para controle de usuários.
Crie um arquivo chamado topo.ldif:
dn: dc=casa,dc=com
objectclass: dcObject
objectclass: organization
o: Casa Openldap
dc: casa
dn: cn=Manager,dc=casa,dc=com
objectclass: organizationalRole
cn: Manager
Crie um segundo arquivo chamado base.ldif:
dn: ou=Pessoas,dc=casa,dc=com
ou: Pessoas
objectClass: top
objectClass: organizationalUnit
dn: ou=Grupos,dc=casa,dc=com
ou: Grupos
objectClass: top
objectClass: organizationalUnit
Agora vamos criar as estruturas com o comando ldapadd. Primeiro o top.ldif:
# ldapadd -x -D "cn=Manager,dc=casa,dc=com" -W -f top.ldif
Segundo o base.ldif:
# ldapadd -x -D "cn=Manager,dc=casa,dc=com" -W -f base.ldif
A opção -W irá solicitar a senha que criamos no início, que no neste caso é "teste".
Pronto, basicamente para se criar uma estrutura para utilizar o OpenLDAP é essa, existem muito mais configurações, porém com essa estrutura que criamos você já pode inserir alguns usuários e conectar por exemplo o Squid para autenticar nessa base.
Espero que possa ter ajudado de alguma forma.
Forte abraço.