Authentification SASL et binds LDAP

Un service de mail englobe plusieurs services et ressources et il faut parfois en limiter l’accès. Nous mettons donc en place de l’authentification, c’est-à-dire qu’un utilisateur doit prouver son identité (à l’aide d’un login et d’un mot de passe) pour avoir le droit d’effectuer certaines opérations. De plus, ces services doivent aussi contrôler les données qui passent à travers eux (des mails), et parfois ces données sont liées à l’existence d’utilisateurs autorisés a priori. Par exemple, quand le MTA reçoit un mail destiné à trucbidule@picasoft.net, il doit vérifier que trucbidule est bien un utilisateur possédant une boîte mail. Cependant, cette vérification se fait sans que trucbidule aie besoin de se connecter à un service quelconque.

Nous utilisons un serveur LDAP qui centralise:

  • la liste des utilisateurs
  • des informations quelconques sur ces utilisateurs

Ces informations peuvent être une photo, l’appartenance à un groupe, un mot de passe, etc. Nous utilisons beaucoup LDAP pour vérifier:

  • L’identité d’un utilisateur (on lui demande son mot de passe, c’est un challenge SASL)
  • Qu’un utilisateur existe
  • Qu’une adresse mail existe
  • Qu’une boîte mail existe

On peut voir que les vérifications dans le LDAP ont des finalités différentes. On peut en différencier deux types de connexion à un serveur LDAP:

  • Le SASL, qui consiste à donner accès à une ressource à un utilisateur ayant réussi un challenge (souvent donner un login et un mot de passe)
  • Les recherches ou binds, qui consistent à parcourir l’ensemble ou une partie de l’arborescence LDAP en sélectionnant des entrées selon certains critères.

Noter que le SASL est un protocole standard qui est supporté pas seulement par LDAP mais aussi par PAM (framework UNIX), IMAP et bien d’autres services permettant de protéger l’accès à une ressource.

Voici, à ce jour, les connexions LDAP qui sont effectuées par les différents composants du système de mail. Vous pouvez cliquer sur les liens pour voir l’implémentation technique.

Type Effectuée par But
SASL saslauthd pour postfix Protéger l'émission de courriels en @picasoft.net
Bind ldap-virtual-mailbox-maps pour postfix Vérifier que des adresses mail existent
SASL et Bind dovecot Réserver à un utilisateur l’accès à sa boîte mail
Bind dovecot Contrôler l’existence de boîtes mails

On pourrait éventuellement rajouter un bind permettant aux bons utilisateurs d’émettre des mails avec leurs adresses.

  • technique/old/etudes/mail/users/sasl.txt
  • de qduchemi