{{indexmenu_n>20}}
# Récupérer des mails reçus sur une adresse Picasoft
Cette page concerne le [[technique:old:etudes:mail:serveurs_de_mail:mda|MDA]], à savoir l'étape de récupération des mails reçus sur une adresse Picasoft.
:!: Avant toute configuration, c'est l'installation du paquet Debian ''dovecot-ldap'' qui fournit les principaux fichiers de configuration.
===== Définition de la méthode d'authentification =====
Dovecot permet l'utilisation de différents moyens d'authentification pour accéder aux boîtes mails. Dans le cadre de Picasoft, Dovecot doit interroger un LDAP. La première configuration se fait dans le fichier ''/etc/dovecot/conf.d/10-auth.conf'' :
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
===== Configuration de l'interrogation du LDAP =====
Le fichier de configuration se trouve sous ''/etc/dovecot/dovecot-ldap.conf.ext''. Une configuration minimale est celle-ci :
hosts = ldap.test.picasoft.net // adresse du LDAP
dn = cn=mystere,dc=picasoft,dc=net // cn du NSS (pour accéder et lire les infos du LDAP)
dnpass = mysterepwd // mot de passe du NSS
auth_bind = yes // on réaliser des binds LDAP
base = dc=picasoft,dc=net // base à partir de laquelle effectuer la recherche
scope = subtree // la recherche s'effectue dans toute l'arborescence sous-jacente
user_attrs = // l'implémentation spécifique à Picasoft ne nécessite de récupérer aucun attribut
user_filter = (uid=%n) // la correspondance s'effectue sur l'UID (côté LDAP)
pass_attrs = uid=user,userPassword=password
pass_filter = (uid=%n)
Si LDAPS est utilisé, on veillera à ce :
* Le certificat soit signé par une autorité de certification installée sur le système (pour Let's Encrypt, installer `ca-certificates` suffit)
* Ou que `ldap_tls_cacert_file` point vers le certificat du serveur LDAP.
Ceci parce que `saslauthd`, le démon qui se charge de l'authentification, impose que le certificat soit vérifié.
Cependant, et spécifiquement à l'implémentation chez Picasoft, nous optimisons le nombre de requêtes LDAP. En effet, puisque nous n'avons pas d'information à récupérer des comptes LDAP((Pour l'instant : si l'utilisateurice existe dans l'annuaire alors elle peut envoyer et recevoir des mails, et son //home directory// ([[https://wiki.dovecot.org/VirtualUsers/Home|au sens mail]]) correspond à son ''uid''.)), les deux recherches classiques de Dovecot pour le mot de passe puis pour les données des utilisateurices ne sont pas nécessaires. On peut alors les fusionner en une seule : on ne cherche qu'à vérifier que l'utilisateurice existe et que les mots de passe coïncident. Pour cela, il faut éditer le fichier ''/etc/dovecot/conf.d/auth-ldap.conf.ext'':
passdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
# "prefetch" user database means that the passdb already provided the
# needed information and there's no need to do a separate userdb lookup.
#
userdb {
driver = prefetch
}
userdb { // définition spécifique pour la requête LMTP
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
ainsi que le fichier ''/etc/dovecot/dovecot-ldap.conf.ext'' :
pass_attrs = uid=user,userPassword=password,uid=userdb_user // on récupère l'uid car sinon il y a une erreur (Dovecot veut récupérer un champ utilisateur) mais en soi il ne nous sert à rien.
pass_filter = (uid=%n) // la correspondance des mots de passe se fait avec l'utilisateurice correspondant au login entré
user_attrs = // définition spécifique pour la requête LMTP