Adapter LDAP pour supporter le SHA512 de postfixadmin

Dans un prochain post; je présenterais comment créer un schéma LDAP automatiquement en s’appuyant sur un backend SQL; et en l’occurence, celui de postfixadmin.
Toujours est-il que voici en avance une astuce pour qu’openldap reconnaisse les password SHA512 de postfixadmin.

* slapd.conf

Il faut avant tout activer le module sha2 qui permet de supporter des hash SHA étendu (256, 512):

moduleload      pw-sha2

Le format salt ici est ‘$6$’ qui invoque une méthode hash basée sur SHA512 et fournit 16 caractères de salt.

password-hash {CRYPT}                                                                                                                                                  
password-crypt-salt-format "$6$%.16s"

* SQL

update ldap_attr_mappings set sel_expr='replace(users.password, \'SHA512-CRYPT\', \'CRYPT\')' where id=13;

MySQL [ldap]> select * from ldap_attr_mappings where id=13;
+----+-----------+--------------+--------------------------------------------------+------------+-----------+----------------------------+----------+-------------+-----
--------+---------------+
| id | oc_map_id | name         | sel_expr                                         | sel_expr_u | from_tbls | join_where                 | add_proc | delete_proc | para
m_order | expect_return |
+----+-----------+--------------+--------------------------------------------------+------------+-----------+----------------------------+----------+-------------+-----
--------+---------------+
| 13 |         1 | userPassword | replace(users.password, 'SHA512-CRYPT', 'CRYPT') | NULL       | users     | users.password IS NOT NULL | NULL     | NULL        |
     3 |             0 |
+----+-----------+--------------+--------------------------------------------------+------------+-----------+----------------------------+----------+-------------+-----
--------+---------------+
1 row in set (0.01 sec)

Leave a Reply

Your email address will not be published. Required fields are marked *


five + = 8