• 2 heures
  • Moyenne

Mis à jour le 08/01/2019

Modèle de sécurité

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Le binding

Le client doit se connecter au serveur, avant toute interrogation de l'annuaire. Cette opération est dite de "binding". Dans le cas, il s'agit d'une authentification simple. On pourra par la suite appliquer des droits particuliers sur ce compte en utilisant les ACLs.

  1. Le client authentifie l'utilisateur (Jean-Christian Ranu), avec son mot de passe, à l'aide du DN, pour déterminer ses droits, ou se connecte au serveur LDAP par Authentification anonyme pour une recherche par exemple.

  2. Le serveur compare le mot de passe saisi et celui de l'entrée (valeur de l'attribut userPassword), en utilisant le bon chiffrement.

dn: cn:Jean-Christian Ranu, ou=persones,dc=cogip,dc=fr
objectClass: person
cn: Jean-Christian Ranu
sn: Ranu
userPassword: {MD5} Xr4il0zQ4PC0q3aQ0qbuaQ==

Dans l'exemple, l'attribut userPassword a été rajouté. Il est nécessaire à  authentification. La valeur entre accolade  {MD5}  définit l'encodage du mot de passe [secret]. Ces algorithmes dépendent des serveurs, et voici ci-dessous les plus courants :

  • CRIPT

  • MD5

  • SHA

  • SSHA

Méthodes d'authentification

Il existe plusieurs méthodes pour que le client s'identifie :

Authentification anonyme

L'authentification anonyme consiste à établir une connexion en utilisant un DN et un mot de passe vides. Cette authentification est assez courante, entre autre pour les serveurs de messagerie recherchant les contacts.

Authentification simple

L'authentification simple n'utilise aucun chiffrement pour transmettre les données. Il envoie un DN et un mot de passe en clair sur le réseau. La valeur de l'attribut utilisé pour l'authentification (userPassword) peut, lui, être chiffrée.

Le chiffrement des communications (SSL/TLS)

Il est possible de crypter la communication entre l'application cliente et l'annuaire, ce qui permet de garantir la confidentialité des données; Le chiffrement des communications, via SSL (Secure Socket Layer, ou TLS - Transport Layer Security)  peut être utilisé  via 2 méthodes :

  • LADPS (LDAP over SSL) communique par défaut sur le port 636. Le mécanisme est le même que l'authentification simple, à la différence que la communication est cryptée. Bien que répandu, il est préférable d'utiliser SartTLS.

  • StartTLS utilise le port 389 par défaut. Le client doit utiliser la fonction StartTLS pour s'authentifier, mais a la possibilité d'envoyer les données chiffrées ou non, selon le besoin des requêtes.

SASL

SASL (Simple Authentication and Security Layer) est un mécanisme qui permet d'ajouter des méthodes d'authentification à des protocoles orientés connexion tels que LDAP ou IMAP (RFC 2222). C'est-à-dire traiter le mécanisme d'authentification avant même la transmission des données de l'utilisateur. Le serveur authentifie d'abord la requête, puis valide les données. Le serveur renvoie alors une réponse d'échec ou de réussite, et dans ce cas poursuit normalement

SASL donne la possibilité au client et au serveur de sélectionner quelle sera la méthode d'authentification utilisée. Il permet également de mettre en place une couche de connexion sécurisée telle que SSL/TLS (sans rapport direct avec le chiffrement indépendant des connexions que nous avons cité ci-dessus).

Les droits

Les ACLs (Access Control Lists) interviennent après la notion de binding. Toutes les requêtes et les manipulations de données sont faites en fonction des droits de l'utilisateur authentifié.

Ce paramètre n'est pas présent dans les schémas, ou au niveau de l'entrée, mais dans le fichier de configuration du serveur (slapd.conf pour openLDAP).

access to attrs="userPassword"
       by self =w
       by * auth
access to *
       by * read

Exemple de paramétrage des droits pour un serveur OpenLDAP. Seul les utilisateurs authentifiés (by * auth) peuvent modifier leur (by self =w) mot de passe (attrs="userPassword"). L'accès en lecture est donné à tout le monde.

Exemple de certificat de réussite
Exemple de certificat de réussite