Usar LDAP para autenticação MySQL?

15

Nós rodamos uma dúzia de servidores MySQL diferentes para nossos usuários. Eles usam a versão gratuita / código-fonte aberto do MySQL, não a versão comercial. Gerenciar as senhas da conta nesses servidores é doloroso.

Existe algum plug-in que nos permita usar o LDAP para ajudar a gerenciar os privilégios do MySQL? No mínimo, gostaríamos de obter alguns nomes de usuário e senhas dos servidores LDAP.

Estamos usando o MySQL 5.1 e 5.5. Podemos estar dispostos a atualizar para o MySQL 5.6, se necessário, para atingir essa funcionalidade.

Preferimos que qualquer ferramenta seja baseada em CLI e não exija uma GUI ou interface da web.

Stefan Lasiewski
fonte

Respostas:

14

O Enterprise MySQL (a versão que você paga pela Oracle para licenciar) possui um módulo PAM que permite a autenticação LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

O MariaDB (uma versão binária compatível do MySQL desenvolvida por Monty) possui um módulo PAM de código aberto: http://kb.askmonty.org/en/pam-authentication-plugin/

Eu também não tenho experiência prática - eu os apresento apenas como recursos de que ouvi falar, mas não testei ou me usei.

drogart
fonte
8

Você pode usar o auth_ldapplugin fornecido pelo Infoscope Hellas LP sob GPL.

Pode ser baixado do sourceforge aqui .

( Página inicial )

O plug-in ainda é um beta e funciona apenas para instalações UNIX.

Charalampos Serenis
fonte
5

O MySQL possui um plugin de autenticação PAM que permitirá que você use qualquer módulo PAM disponível para fornecer serviços de autenticação. Existe um pam_ldapmódulo relativamente fácil de configurar que deve permitir o que você deseja.

A documentação do plug-in inclui um exemplo usando LDAP .

larsks
fonte
Você sabe se isso dará suporte à autenticação baseada em Kerberos?
Saqib Ali
Eu não faço ideia. Acredito que um plugin GSSAPI exista pelo menos para o mariadb, mas eu não tenho nenhuma experiência pessoal com isso.
Larsks
2

Você pode migrar suas instalações para o Percona Server e usar uma destas duas maneiras de conectar o MySQL ao LDAP pelo PAM:

  • Plug-in PAM completo chamado auth_pam. Este plugin usa dialog.so. Ele suporta totalmente o protocolo PAM com comunicação arbitrária entre cliente e servidor.

  • PAM compatível com Oracle chamado auth_pam_compat. Este plugin usa mysql_clear_password, que faz parte do cliente Oracle MySQL. Ele também possui algumas limitações, como, suporta apenas uma entrada de senha. Você deve usar a opção "-p" para passar a senha para auth_pam_compat.

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

Estamos usando, auth_pam_compatmas é preciso lembrar que o cliente precisa oferecer suporte ao plug-in de autenticação do lado do cliente Cleartext

Klocek
fonte
1

Agora até o final de 2017, posso sugerir o seguinte:

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

O Percona PAM Authentication Plugin é uma implementação gratuita e de código aberto do plug-in de autenticação do MySQL. Este plugin atua como um mediador entre o servidor MySQL, o cliente MySQL e a pilha PAM. O plug-in do servidor solicita autenticação da pilha PAM, encaminha todas as solicitações e mensagens da pilha PAM pela ligação ao cliente (em texto não criptografado) e lê novamente todas as respostas para a pilha PAM.

NÃO é testado e nunca trabalhei com ele, queria sugerir, pois pode ser bom.

Mohammed Noureldin
fonte
"em texto não criptografado" - por favor, não use isso.
H0tw1r3
@ h0tw1r3, por quê? ِ Na verdade, acho que não é adequado para uso, mas estou interessado em ouvir sua opinião. Existe alguma alternativa de código aberto para o plugin PAM comercial?
Mohammed Noureldin 15/09