Aller au contenu

Pluggable Authentication Modules

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 18 décembre 2023 à 17:59 et modifiée en dernier par VulgarisationSI (discuter | contributions) (Update origins according documentation). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

En informatique, Pluggable Authentication Modules (modules d'authentification enfichables, en abrégé PAM) est une API permettant d'offrir aux programmes des services d'authentification, d'autorisation et de contrôle d'ouverture de sessions.

PAM opère une séparation entre les logiciels réclamant une authentification d'une part, et de l'autre les standards et bonnes pratiques liés au contrôle d'identité.

L'administration est facilitée car définir une stratégie sur mesure consiste à choisir les modules nécessaires et à les configurer.

Origines

PAM est la solution proposée[1] par Sun Microsystems pour traiter la problématique de l'authentification, formulée en 1995 au sein du groupe de travail security group participant au développement de l'environnement de bureau Common Desktop Environment de l'Open Software Foundation. PAM a été choisie en juin puis décrite en octobre 1995 dans un RFC de l'OSF[2] puis présenté à l'ACM en 1996[3].

Bien que l'idée fut proposée par des ingénieurs de Sun Microsystems, la première implémentation réalisée en janvier 1996 est le fruit de Marc Ewing (Red Hat Software) au travers du projet Linux-PAM[4].

Depuis lors, PAM a été portée sur de multiples architectures dont Solaris, Linux[5], FreeBSD[6], NetBSD, DragonFly BSD[7], AIX et HP-UX.

Modules PAM

Les modules PAM sont une collection extensible de bibliothèques dynamiques ((en) shared objects) (par ex. pam_unix.so) fournissant les six primitives d'authentification définies dans la norme, regroupées dans quatre mécanismes :

  • Le mécanisme account fournit une seule primitive : il vérifie si le compte demandé est disponible (si le compte n'est pas arrivé à expiration, si l'utilisateur est autorisé à se connecter à cette heure de la journée, etc.).
  • Le mécanisme auth fournit deux primitives ; il assure l'authentification réelle, éventuellement en demandant et en vérifiant un mot de passe, et il définit des « certificats d'identité » tels que l'appartenance à un groupe ou des « tickets » kerberos.
  • Le mécanisme password fournit une seule primitive : il permet de mettre à jour le jeton d'authentification (en général un mot de passe), soit parce qu'il a expiré, soit parce que l'utilisateur souhaite le modifier.
  • Le mécanisme session fournit deux primitives : mise en place et fermeture de la session. Il est activé une fois qu'un utilisateur a été autorisé afin de lui permettre d'utiliser son compte. Il lui fournit certaines ressources et certains services, par exemple en montant son répertoire personnel, en rendant sa boîte aux lettres disponible, en lançant un agent ssh, etc.

Extensions

  • pam_mount est une extension de PAM permettant de monter un système de fichiers quand un utilisateur se connecte. On pourra par exemple lancer le montage d’un répertoire CIFS en utilisant le mot de passe que l’utilisateur vient de rentrer. De plus, la partition sera démontée quand l’utilisateur va se déconnecter. En le combinant avec le module pam_ldap, il permet d’utiliser le couple SaMBa/OpenLDAP pour l’authentification et la gestion des répertoires utilisateur sous Linux. Mais les fonctions de pam_mount ne s’arrêtent pas là : il permet aussi de monter à la connexion des partitions de nombreux types comme des partitions chiffrées comme loop-AES.

Critiques de PAM

Malgré des travaux[8], PAM n'est toujours pas standardisée en 2023. Ainsi, le comportement peut varier entre les diverses implémentations.

Voir aussi

Liens externes