¿Qué es LDAP?
LDAP (Lightweight Directory Access Protocol) es un protocolo que permite acceder a servicios de directorio, es decir, estructuras jerárquicas de información como usuarios, contraseñas, grupos, emails, permisos, etc.
Imagina LDAP como una agenda digital centralizada donde una empresa guarda toda la información de sus empleados: nombre, cargo, correo, contraseña, permisos, etc. Cualquier sistema que quiera autenticar a alguien (correo, servidor, base de datos, etc.) puede consultar directamente esta agenda.
En MySQL, LDAP se puede usar para autenticar usuarios a través del plugin authentication_ldap_simple
o authentication_ldap_sasl
, lo que permite una integración directa con servicios como Active Directory.
Ventajas:
- Autenticación centralizada.
- Evita la duplicación de usuarios en múltiples sistemas.
- Integración con Windows Active Directory o OpenLDAP.
Ejemplo en MySQL:
INSTALL PLUGIN authentication_ldap_simple SONAME 'authentication_ldap_simple.so';
CREATE USER 'usuario1'@'%' IDENTIFIED WITH authentication_ldap_simple
AS 'uid=usuario1,ou=usuarios,dc=empresa,dc=com';
¿Qué es PAM?
PAM (Pluggable Authentication Modules) es un sistema de autenticación modular que existe en muchas distribuciones de Linux. No almacena usuarios ni contraseñas directamente, sino que define cómo se debe autenticar un usuario (contraseña local, LDAP, biometría, certificados, etc.).
PAM actúa como un intermediario flexible. El administrador puede configurar qué método se usará sin necesidad de reconfigurar cada aplicación.
En MySQL, puedes autenticar usuarios a través del plugin authentication_pam
, lo que permite que el sistema delegue la autenticación a PAM según lo que se haya definido en /etc/pam.d/
.
Ventajas:
- Flexibilidad para definir métodos de autenticación.
- Permite integración con políticas corporativas de acceso.
- Ideal para entornos donde ya se usa PAM en otras aplicaciones (SSH, sudo, etc.).
Ejemplo en MySQL:
INSTALL PLUGIN authentication_pam SONAME 'authentication_pam.so';
CREATE USER 'maria'@'%' IDENTIFIED WITH authentication_pam
AS 'mysql'; -- "mysql" es el nombre del servicio definido en PAM
Conclusión práctica:
- LDAP: Es el lugar donde se almacena la información de los usuarios.
- PAM: Es el mecanismo que define cómo se autentican.
Es común que LDAP y PAM trabajen juntos: PAM puede ser configurado para consultar LDAP cuando alguien intente ingresar a un sistema. Así, MySQL puede delegar a PAM y PAM puede consultar LDAP. Esto da una capa de seguridad profesional, especialmente útil en entornos corporativos.
¿Y cómo encajan LDAP y PAM en una historia de espionaje global?
Acompáñanos a MySQLandia y descubre cómo los protocolos de autenticación se entrelazan con uno de los eventos más impactantes del siglo XXI: la filtración masiva de Edward Snowden.
➡️ Lee ahora: Autenticación en MySQLandia: LDAP, PAM y los Archivos Clasificados de Snowden