Utiliser LDAP pour l'authentification MySQL?

15

Nous exécutons quelques dizaines de serveurs MySQL différents pour nos utilisateurs. Ceux-ci utilisent la version gratuite / Open Source de MySQL, pas la version commerciale. La gestion des mots de passe de compte sur ces serveurs est pénible.

Existe-t-il des plugins qui nous permettraient d'utiliser LDAP pour aider à gérer les privilèges MySQL? À tout le moins, nous aimerions obtenir certains noms d'utilisateur et mots de passe des serveurs LDAP.

Nous utilisons MySQL 5.1 et 5.5. Nous pourrions être prêts à passer à MySQL 5.6 si cela est nécessaire pour obtenir cette fonctionnalité.

Nous préférerions que tous les outils soient basés sur CLI et ne nécessitent pas d'interface graphique ou Web.

Stefan Lasiewski
la source

Réponses:

14

Enterprise MySQL (la version pour laquelle vous payez Oracle sous licence) dispose d'un module PAM qui permet l'authentification LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (une version compatible binaire de MySQL développée par Monty) dispose d'un module PAM open source: http://kb.askmonty.org/en/pam-authentication-plugin/

Je n'ai pas d'expérience pratique non plus - je ne les présente que comme des fonctionnalités dont j'ai entendu parler mais que je n'ai pas testées ou utilisées moi-même.

drogart
la source
5

MySQL a un plugin d'authentification PAM qui vous permettra d'utiliser n'importe quel module PAM disponible pour fournir des services d'authentification. Il existe un pam_ldapmodule relativement facile à configurer qui devrait vous permettre de faire ce que vous voulez.

La documentation du plugin inclut un exemple utilisant LDAP .

larsks
la source
Savez-vous si cela prendra en charge l'authentification basée sur Kerberos?
Saqib Ali
Je n'ai aucune idée. Je crois qu'un plugin GSSAPI existe au moins pour mariadb, mais je n'ai aucune expérience personnelle avec cela.
larsks
2

Vous pouvez migrer vos installations vers Percona Server et utiliser l'une de ces deux façons de connecter MySQL à LDAP par PAM:

  • Plugin PAM complet appelé auth_pam. Ce plugin utilise dialog.so. Il prend entièrement en charge le protocole PAM avec une communication arbitraire entre le client et le serveur.

  • PAM compatible Oracle appelé auth_pam_compat. Ce plugin utilise mysql_clear_password qui fait partie du client Oracle MySQL. Il a également certaines limitations, telles qu'il ne prend en charge qu'une seule entrée de mot de passe. Vous devez utiliser l'option "-p" afin de passer le mot de passe à auth_pam_compat.

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

Nous utilisons, auth_pam_compatmais vous devez vous rappeler que le client doit prendre en charge le plug-in d'authentification Cleartext côté client

klocek
la source
1

À la fin de 2017, je peux suggérer ceci:

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

Percona PAM Authentication Plugin est une implémentation gratuite et Open Source du plugin d'authentification de MySQL. Ce plugin sert de médiateur entre le serveur MySQL, le client MySQL et la pile PAM. Le plug-in de serveur demande l'authentification à partir de la pile PAM, transmet toutes les demandes et tous les messages de la pile PAM via le câble au client (en texte clair) et lit toutes les réponses pour la pile PAM.

Il n'est PAS testé, et je n'ai jamais travaillé avec, je voulais le suggérer car il peut être bon.

Mohammed Noureldin
la source
"en texte clair" - veuillez ne pas l'utiliser.
h0tw1r3
@ h0tw1r3, pourquoi? ِ En fait, je trouve que cela ne convient pas, mais je suis intéressé à entendre votre avis. Existe-t-il une alternative open source pour le plugin PAM commercial?
Mohammed Noureldin