OpenLDAP

OpenLDAP é uma das implementações mais famosas do LDAP dentro do Linux. Para ser bastante sucinto, o LDAP é utilizado praticamente como um centralizador de autenticações e gerência de identidade de usuários.

Repositório

Os arquivos para a utilização deste guia são públicos e estão em https://github.com/hector-vido/ldap-sssd

Instalação

Instale os pacotes referentes ao OpenLDAP, SSSD e suas dependências:

zypper install -y openldap2 openldap2-client sssd-ldap

OpenLDAP

Modifique o arquivo /etc/openldap/slapd.conf para configurar os parâmetros iniciais do OpenLDAP:

pidfile         /run/slapd/slapd.pid
argsfile        /run/slapd/slapd.args

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/yast.schema

modulepath /usr/lib64/openldap
moduleload back_mdb.la

access to dn.base=""
        by * read

access to dn.base="cn=Subschema"
        by * read

access to attrs=userPassword,userPKCS12
        by self write
        by * auth

access to attrs=shadowLastChange
        by self write
        by * read

access to *
        by * read

database     mdb
suffix       "dc=ldap,dc=example,dc=com"
rootdn       "cn=admin,dc=ldap,dc=example,dc=com"
rootpw       {SSHA}E7SBIzuFwXzf4AdYnWBhft9ynWnIWqww
directory    /var/lib/ldap
index        objectClass eq

Inicie o openLDAP:

systemctl start slapd

Verificar conexão simples:

ldapsearch -h localhost -D 'cn=admin,dc=ldap,dc=example,dc=com' -w 123 -LLL

O retorno deverá ser o seguinte

No such object (32)

Apesar da busca não encontrar nenhum registro ao menos a conexão aconteceu!

Popular o OpenLDAP:

Popule o OpenLDAP com os domínios, grupos e usuários iniciais disponíveis no diretório /vagrant/files/ldap:

ldapadd -h localhost -D 'cn=admin,dc=ldap,dc=example,dc=com' -w 123 -f base.ldif
ldapadd -h localhost -D 'cn=admin,dc=ldap,dc=example,dc=com' -w 123 -f users.ldif
ldapadd -h localhost -D 'cn=admin,dc=ldap,dc=example,dc=com' -w 123 -f groups.ldif
# Este arquivo adiciona um membro a um grupo já existente
ldapadd -h localhost -D 'cn=admin,dc=ldap,dc=example,dc=com' -w 123 -f groups-users.ldif