Verwenden Sie LDAP für die MySQL-Authentifizierung?

15

Wir betreiben ein paar Dutzend verschiedene MySQL-Server für unsere Benutzer. Diese verwenden die kostenlose / Open Source-Version von MySQL, nicht die kommerzielle Version. Das Verwalten der Kontokennwörter auf diesen Servern ist schmerzhaft.

Gibt es Plugins, mit denen wir LDAP verwenden können, um die MySQL-Berechtigungen zu verwalten? Zumindest möchten wir einige Benutzernamen und Passwörter von den LDAP-Servern erhalten.

Wir verwenden MySQL 5.1 und 5.5. Wir sind möglicherweise bereit, ein Upgrade auf MySQL 5.6 durchzuführen, wenn dies erforderlich ist, um diese Funktionalität zu erreichen.

Wir möchten, dass alle Tools CLI-basiert sind und keine GUI oder Webschnittstelle erfordern.

Stefan Lasiewski
quelle

Antworten:

14

Enterprise MySQL (die Version, für die Sie die Lizenz von Oracle bezahlen) verfügt über ein PAM-Modul, das die LDAP-Authentifizierung ermöglicht: https://dev.mysql.com/doc/refman/5.5/de/pam-pluggable-authentication.html

MariaDB (eine binär kompatible Version von MySQL, die von Monty entwickelt wurde) verfügt über ein Open-Source-PAM-Modul: http://kb.askmonty.org/en/pam-authentication-plugin/

Ich habe auch keine praktischen Erfahrungen damit - ich präsentiere sie nur als Funktionen, von denen ich gehört habe, die ich aber nicht selbst getestet oder verwendet habe.

Drogart
quelle
5

MySQL verfügt über ein PAM-Authentifizierungs-Plugin , mit dem Sie jedes verfügbare PAM-Modul verwenden können, um Authentifizierungsdienste bereitzustellen. Es gibt ein pam_ldaprelativ einfach zu konfigurierendes Modul, mit dem Sie tun können, was Sie wollen.

Die Plugin-Dokumentation enthält ein Beispiel für die Verwendung von LDAP .

larsks
quelle
Wissen Sie, ob dies die Kerberos-basierte Authentifizierung unterstützt?
Saqib Ali
Ich habe keine Ahnung. Ich glaube, dass es zumindest für Mariadb ein GSSAPI-Plugin gibt, aber ich habe selbst keine persönlichen Erfahrungen damit.
Larsks
2

Sie können Ihre Installationen auf Percona Server migrieren und eine der beiden folgenden Möglichkeiten verwenden, um MySQL per PAM mit LDAP zu verbinden:

  • Vollständiges PAM-Plugin mit dem Namen auth_pam. Dieses Plugin verwendet dialog.so. Es unterstützt vollständig das PAM-Protokoll mit beliebiger Kommunikation zwischen Client und Server.

  • Oracle-kompatibles PAM mit dem Namen auth_pam_compat. Dieses Plugin verwendet mysql_clear_password, das Teil des Oracle MySQL-Clients ist. Es gibt auch einige Einschränkungen, z. B. unterstützt es nur eine Kennworteingabe. Sie müssen die Option -p verwenden, um das Kennwort an auth_pam_compat zu übergeben.

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

Wir verwenden, auth_pam_compataber Sie müssen sich daran erinnern, dass der Client das clientseitige Cleartext-Authentifizierungs-Plugin unterstützen muss

klocek
quelle
1

Jetzt bis Ende 2017 kann ich Folgendes vorschlagen:

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

Percona PAM Authentication Plugin ist eine kostenlose Open Source-Implementierung des MySQL-Authentifizierungs-Plugins. Dieses Plugin fungiert als Vermittler zwischen dem MySQL-Server, dem MySQL-Client und dem PAM-Stack. Das Server-Plugin fordert die Authentifizierung vom PAM-Stapel an, leitet alle Anforderungen und Nachrichten vom PAM-Stapel über die Leitung an den Client (im Klartext) weiter und liest alle Antworten für den PAM-Stapel zurück.

Es wurde NICHT getestet und ich habe noch nie damit gearbeitet. Ich wollte es vorschlagen, da es vielleicht gut ist.

Mohammed Noureldin
quelle
"im Klartext" - bitte nicht verwenden.
h0tw1r3
@ h0tw1r3, warum? ِ Eigentlich finde ich es etwas ungeeignet, aber ich bin interessiert, deine Meinung zu hören. Gibt es eine Open-Source-Alternative für das kommerzielle PAM-Plugin?
Mohammed Noureldin