¿Usar LDAP para la autenticación MySQL?


15

Ejecutamos un par de docenas de servidores MySQL diferentes para nuestros usuarios. Estos usan la versión gratuita / de código abierto de MySQL, no la versión comercial. Administrar las contraseñas de la cuenta en estos servidores es doloroso.

¿Hay algún complemento que nos permita usar LDAP para ayudar a administrar los privilegios de MySQL? Como mínimo, nos gustaría obtener algunos nombres de usuario y contraseñas de los servidores LDAP.

Estamos usando MySQL 5.1 y 5.5. Podríamos estar dispuestos a actualizar a MySQL 5.6 si es necesario para lograr esta funcionalidad.

Preferiríamos que cualquier herramienta esté basada en CLI y no requiera una GUI o interfaz web.

Respuestas:


14

Enterprise MySQL (la versión que paga a Oracle para licenciar) tiene un módulo PAM que permite la autenticación LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (una versión binaria compatible de MySQL desarrollada por Monty) tiene disponible un módulo PAM de código abierto: http://kb.askmonty.org/en/pam-authentication-plugin/

Tampoco tengo experiencia práctica con ellos: los presento solo como características de las que he oído hablar pero que no he probado ni utilizado.




5

MySQL tiene un complemento de autenticación PAM que le permitirá usar cualquier módulo PAM disponible para proporcionar servicios de autenticación. Hay un pam_ldapmódulo que es relativamente fácil de configurar que debería permitirle hacer lo que quiera.

La documentación de plugin incluye un ejemplo usando LDAP .


¿Sabes si esto admitirá la autenticación basada en Kerberos?
— Saqib Ali

No tengo idea. Creo que existe un complemento GSSAPI al menos para mariadb, pero yo no tengo ninguna experiencia personal con esto.
— larsks


2

Puede migrar sus instalaciones a Percona Server y utilizar una de estas dos formas de conectar MySQL a LDAP mediante PAM:

  • Complemento PAM completo llamado auth_pam. Este complemento usa dialog.so. Es totalmente compatible con el protocolo PAM con comunicación arbitraria entre el cliente y el servidor.

  • PAM compatible con Oracle llamado auth_pam_compat. Este complemento utiliza mysql_clear_password, que forma parte del cliente Oracle MySQL. También tiene algunas limitaciones, como, solo admite una entrada de contraseña. Debe usar la opción "-p" para pasar la contraseña a auth_pam_compat.

http://www.percona.com/doc/percona-pam-for-mysql/intro.html

Estamos utilizando auth_pam_compatpero debe recordar que el cliente debe admitir el Complemento de autenticación del lado del cliente de texto claro


1

Ahora a finales de 2017, puedo sugerir esto:

https://www.percona.com/doc/percona-server/LATEST/management/pam_plugin.html

El complemento de autenticación PAM de Percona es una implementación gratuita y de código abierto del complemento de autenticación de MySQL. Este complemento actúa como mediador entre el servidor MySQL, el cliente MySQL y la pila PAM. El complemento del servidor solicita autenticación de la pila PAM, reenvía cualquier solicitud y mensaje de la pila PAM a través del cable al cliente (en texto sin formato) y vuelve a leer las respuestas para la pila PAM.

NO está probado, y nunca he trabajado con él, quería sugerirlo, ya que puede ser bueno.


"en texto sin formato" - por favor no use esto.
— h0tw1r3

@ h0tw1r3, ¿por qué? ِ En realidad, considero que no es adecuado para usar, pero me interesa escuchar tu opinión. ¿Existe alguna alternativa de código abierto para el complemento comercial PAM?
— Mohammed Noureldin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.