Versão avaliada: Debian 12
Até o momento não identifiquei uma ferramenta para realizar gestão das instruções Ldap por SQL, nem o phpLdapAdmin e nem o LAM suportam a gestão das configurações em SQL.
O arquivo hosts precisa ser configurado adequadamente.
Instalar os pacotes.
# apt install ldap-utils libldap-common slapd slapd-contrib odbc-mariadb mariadb-client
Nota: O pacote tdsodbc é ODBC driver for connecting to MS SQL and Sybase SQL servers.
Criar a base de dados.
# mariadb -u root -p
CREATE DATABASE IF NOT EXISTS openldap;
GRANT ALL PRIVILEGES ON openldap.* TO 'openldap'@'localhost' IDENTIFIED BY '<SENHA>';
Realize o download do pacote OpenLdap para popular as tabelas na base "openldap" criada anteriormente.
# wget https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.4.tgz
# tar -zvxf openldap-2.6.4.tgz
# cd /openldap-2.6.4/servers/slapd/back-sql/rdbms_depend/mysql
# mariadb -u openldap -p<SENHA> -h <IP> openldap < backsql_create.sql
# mariadb -u openldap -p<SENHA> -h <IP> openldap < testdb_create.sql
Opcional
# mariadb -u openldap -p<SENHA> -h <IP> openldap < backsql_create.sql
# mariadb -u openldap -p<SENHA> -h <IP> openldap < testdb_create.sql
Para remover as tabelas use:
# mariadb -u openldap -p<SENHA> -h <IP> openldap < backsql_drop.sql
# mariadb -u openldap -p<SENHA> -h <IP> openldap < testdb_drop.sql
Configurar o serviço ODBC.
# vi /etc/odbc.ini
[MariaDB-server]
Description=MariaDB server
Driver=MariaDB Unicode <- DSN do arquivo odbcinst.ini
SERVER=192.168.10.103
USER=openldap
PASSWORD=Openldap123
DATABASE=openldap
PORT=3306
Trace=No
ReadOnly=No
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
ConnSettings=
#Socket=/var/run/mysqld/mysqld.sock
E aqui.
# vi /etc/odbcinst.ini
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1
Remova o serviço criado automaticamente.
# systemctl stop slapd.service
# cd /etc/ldap
# rm -rf slapd.d
Crie a nova entrada de configuração slapd.conf.
# vi slapd.conf
loglevel -1
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
pidfile /run/slapd/slapd.pid
argsfile /run/slapd/slapd.args
modulepath /usr/lib/ldap
moduleload back_sql
#######################################################################
# sql database definitions
#######################################################################
database sql
suffix "dc=local,dc=domain"
rootdn "cn=admin,dc=local,dc=domain"
rootpw admin@123
dbname MariaDB-server <- odbc.ini DSN
dbuser openldap
dbpasswd Openldap123
subtree_cond "ldap_entries.dn LIKE CONCAT('%',?)"
insentry_stmt "INSERT INTO ldap_entries (dn,oc_map_id,parent,keyval) VALUES (?,?,?,?)"
has_ldapinfo_dn_ru no
upper_func "upper"
strcast_func "text"
concat_pattern "?||?"
Inicie o serviço.
# systemctl start slapd.service
Link: 1 /