¿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.

Stefan Lasiewski
fuente

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.

drogart
fuente
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 .

larsks
fuente
¿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

klocek
fuente
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.

Mohammed Noureldin
fuente
"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