Par défaut, Freeipa ne fournit pas de solution de self service password.
Dans leur documentation ils vous indiquent d’utiliser des services tiers type PWM.
Celui-ci a l’air très complet, mais trop lourd pour mes besoins, car écrit en java et nécessite donc un serveur tomcat pour faire tourner la bête.
J’ai donc utilisé le service du projet LTB qui lui est écrit en PHP.
Installation
wget http://tools.ltb-project.org/attachments/download/800/ltb-project-self-service-password-0.9.tar.gz
tar xzvf ltb-project-self-service-password-0.9.tar.gz -C /var/www/ltb-password
Modifier votre virtual host pour qu’il prenne en compte vos changements.
Puis dans le dossier, modifier le fichier config.inc.php comme suit :
#==============================================================================
# Configuration
#==============================================================================
# LDAP
$ldap_url = "ldap://freeipa.domain.local";
$ldap_starttls = true;
$ldap_binddn = "cn=Directory Manager";
$ldap_bindpw = 'MY_STRONG_PASSWORD';
$ldap_base = "cn=users,cn=accounts,dc=domain,dc=local";
$ldap_login_attribute = "uid";
$ldap_fullname_attribute = "cn";
$ldap_filter = "(&(objectClass=person)($ldap_login_attribute={login}))";
$hash = "auto";
...
Ltb utilise l’attribut userPassword pour effectuer le changement de mot de passe, or FreeIPA ne laisse que le directory manager voir cet attribut, il faut donc obligatoirement passer par cet utilisateur.
Veillez bien à utiliser un certificat, même auto signée, pour avoir un minimum de sécurité.