Módulo de autenticación enchufable


Un módulo de autenticación conectable ( PAM ) es un mecanismo para integrar múltiples esquemas de autenticación de bajo nivel en una interfaz de programación de aplicaciones (API) de alto nivel. PAM permite que los programas que dependen de la autenticación se escriban independientemente del esquema de autenticación subyacente. Sun Microsystems lo propuso por primera vez en una solicitud de comentarios (RFC) 86.0 de Open Software Foundation con fecha de octubre de 1995. Se adoptó como el marco de autenticación de Common Desktop Environment . Como infraestructura independiente de código abierto , PAM apareció por primera vez en Red Hat Linux3.0.4 en agosto de 1996 en el proyecto Linux PAM . Actualmente, PAM es compatible con el sistema operativo AIX , DragonFly BSD , [1] FreeBSD , HP-UX , Linux , macOS , NetBSD y Solaris .

Dado que no existe un estándar central de comportamiento de PAM, hubo un intento posterior de estandarizar PAM como parte del proceso de estandarización de X/Open UNIX, lo que resultó en el estándar X/Open Single Sign-on ( XSSSO ). Este estándar no fue ratificado, pero el borrador del estándar ha servido como punto de referencia para implementaciones posteriores de PAM (por ejemplo, OpenPAM ).

Dado que la mayoría de las implementaciones de PAM no interactúan con los clientes remotos, PAM, por sí solo, no puede implementar Kerberos , el tipo de SSO más común utilizado en entornos Unix. Esto condujo a la incorporación de SSO como la parte de "autenticación principal" del posible estándar XSSO y al advenimiento de tecnologías como SPNEGO y SASL . Esta falta de funcionalidad también es la razón por la que SSH hace su propia negociación de mecanismos de autenticación.

En la mayoría de las implementaciones de PAM, pam_krb5 solo obtiene Tickets de concesión de tickets , lo que implica solicitar al usuario las credenciales, y esto solo se usa para el inicio de sesión inicial en un entorno de SSO. Para obtener un ticket de servicio para una aplicación en particular y no pedirle al usuario que ingrese sus credenciales nuevamente, esa aplicación debe codificarse específicamente para admitir Kerberos. Esto se debe a que pam_krb5 no puede obtener tickets de servicio por sí mismo, aunque existen versiones de PAM-KRB5 que intentan solucionar el problema. [2]


Estructura