Pluggable Authentication Modules
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 a été décrite dans un RFC de l'Open Software Foundation en 1995[1] puis présenté à l'ACM en 1996[2]. 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[3].
Depuis lors, PAM a été portée sur de multiples architectures dont Solaris, Linux[4], FreeBSD[5], NetBSD, 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[6], PAM n'est toujours pas standardisée en 2023. Ainsi le comportement peut varier entre les diverses implémentations.
Voir aussi
- Cet article est partiellement ou en totalité issu de l'article intitulé « pam_mount » (voir la liste des auteurs).
Liens externes
- ↑ (en) OSF-RFC 86.0 “Unified Login with Pluggable Authentication Modules (PAM)”, Vipin Samar, Roland J. Schemers III, Octobre 1995.
- ↑ "Making Login Services Independent of Authentication Technologies", Samar, Vipin and Lai, Charlie, 3rd ACM Conference on Computer and Communications Security, Mars 1996.
- ↑ (en) Pluggable Authentication Modules, Linux Security, Andrew G. Morgan, 1er Decembre 1997
- ↑ (en) Linux-Pam, manuel Linux
- ↑ (en) PAM, manuel FreeBSD
- ↑ (en) X/Open Single Sign-on Preliminary Specification, The Open Group, ISBN:1-85912-144-6, juin 1997.