使用LDAP进行MySQL身份validation?

我们为用户运行几十个不同的MySQL服务器。 这些使用MySQL的免费/开源版本,而不是商业版本。 在这些服务器上pipe理帐户密码是痛苦的。

有没有什么插件可以让我们使用LDAP来帮助pipe理MySQL的权限? 至less,我们希望从LDAP服务器获得一些用户名和密码。

我们正在使用MySQL 5.1和5.5。 如果需要实现此function,我们可能愿意升级到MySQL 5.6。

我们希望任何工具都是基于CLI的,不需要GUI或Web界面。

企业MySQL(您支付Oracle许可的版本)有一个允许进行LDAPauthentication的PAM模块: http : //dev.mysql.com/doc/refman/5.5/en/pam-authentication-plugin.html

MariaDB(由Monty开发的MySQL的二进制兼容版本)有一个开源的PAM模块可用: http : //kb.askmonty.org/en/pam-authentication-plugin/

我没有任何一方面的经验 – 我只将它们呈现为我所听到的但未经过testing或使用的function。

您可以使用GPL下的Infoscope Hellas LP提供的auth_ldap插件。

它可以在这里从sourceforge下载 。

( 主页 )

该插件仍然是一个testing版,只适用于UNIX安装。

一个Mysql代理可以为你启用这个angular色。 更多的细节可以在这里find: https : //stackoverflow.com/questions/1329963/using-ldap-ad-for-mysql-authenication和在这里: http : //jan.kneschke.de/2009/6/25/mysql -proxy-angular色/

MySQL有一个PAMauthentication插件 ,可以让你使用任何可用的PAM模块来提供authentication服务。 有一个pam_ldap模块比较容易configuration,可以让你做你想做的事情。

插件文档包括一个使用LDAP的例子 。

我已经在我的博客中发布了MySQL的LDAP身份validation插件的完整示例(包含源代码)。

http://nafiux.com/blog/2012/08/11/mysql-ldap-authentication-plugin/

您可以将您的安装迁移到Percona服务器,并使用以下两种方法之一通过PAM将MySQL连接到LDAP:

  • 完整的PAM插件称为auth_pam。 这个插件使用dialog.so。 它完全支持在客户端和服务器之间进行任意通信的PAM协议。

  • 与Oracle兼容的PAM称为auth_pam_compat。 这个插件使用了mysql_clear_password,它是Oracle MySQL客户端的一部分。 它也有一些限制,比如它只支持一个密码input。 您必须使用“-p”选项才能将密码传递给auth_pam_compat。

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

我们正在使用auth_pam_compat但是您必须记住客户端必须支持Cleartext客户端身份validation插件

现在到2017年底,我可以这样build议:

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

Percona PAM身份validation插件是MySQL的身份validation插件的免费开源实现。 这个插件充当MySQL服务器,MySQL客户端和PAM堆栈之间的中介。 服务器插件向PAM堆栈请求authentication,通过线路将来自PAM堆栈的任何请求和消息转发给客户端(以明文forms),并读取PAM堆栈的任何回复。

它没有经过testing,我从来没有使用它,我想build议它,因为它可能是好的。