使用LDAP进行MySQL身份验证?


15

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

是否有任何插件可以使我们使用LDAP来帮助管理MySQL特权?至少,我们希望从LDAP服务器获取一些用户名和密码。

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

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

Answers:





5

MySQL有一个PAM身份验证插件,使您可以使用任何可用的PAM模块来提供身份验证服务。有一个pam_ldap相对容易配置的模块,该模块应允许您执行所需的操作。

插件文档包括使用LDAP示例


您知道这是否支持基于Kerberos的身份验证吗?
萨奇布·阿里

我不知道。我相信至少mariadb存在一个GSSAPI插件,但是我自己对此没有任何个人经验。
larsk's


2

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

  • 完整的PAM插件,名为auth_pam。该插件使用dialog.so。它完全支持PAM协议,并且客户端和服务器之间可以进行任意通信。

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

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

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


1

现在,到2017年底,我可以提出以下建议:

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

Percona PAM身份验证插件是MySQL身份验证插件的免费开源实现。该插件充当MySQL服务器,MySQL客户端和PAM堆栈之间的中介。服务器插件从PAM堆栈请求身份验证,将来自PAM堆栈的所有请求和消息通过电线转发到客户端(以明文形式),并读取对PAM堆栈的所有答复。

它未经测试,并且我从未使用过它,我想建议一下它,因为它可能很好。


“以明文形式”-请不要使用它。
h0tw1r3

@ h0tw1r3,为什么?ِ实际上,我发现它有些不适合使用,但我很想听听您的意见。商业PAM插件是否有任何开源替代方案?
Mohammed Noureldin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.