Gunakan LDAP untuk otentikasi MySQL?

15

Kami menjalankan beberapa lusin server MySQL yang berbeda untuk pengguna kami. Ini menggunakan MySQL versi gratis / Open Source, bukan versi komersial. Mengelola Kata Sandi Akun di server ini sangat menyakitkan.

Apakah ada plugin yang memungkinkan kami menggunakan LDAP untuk membantu mengelola hak istimewa MySQL? Paling tidak, kami ingin mendapatkan beberapa nama pengguna dan kata sandi dari server LDAP.

Kami menggunakan MySQL 5.1 dan 5.5. Kami mungkin bersedia meningkatkan ke MySQL 5.6 jika diperlukan untuk mencapai fungsi ini.

Kami lebih suka bahwa alat apa pun berbasis CLI dan tidak memerlukan GUI atau antarmuka web.

Stefan Lasiewski
sumber

Jawaban:

14

Enterprise MySQL (versi yang Anda bayarkan ke Oracle untuk mendapatkan lisensi) memiliki modul PAM yang memungkinkan untuk otentikasi LDAP: https://dev.mysql.com/doc/refman/5.5/id/pam-pluggable-authentication.html

MariaDB (versi biner dari MySQL yang dikembangkan oleh Monty) memiliki modul PAM open source yang tersedia untuknya: http://kb.askmonty.org/en/pam-authentication-plugin/

Saya tidak memiliki pengalaman langsung dengan baik - saya menyajikan mereka hanya sebagai fitur yang saya dengar tetapi tidak diuji atau digunakan sendiri.

drogart
sumber
8

Anda dapat menggunakan auth_ldapplugin yang disediakan oleh Infoscope Hellas LP di bawah GPL.

Itu dapat diunduh dari sourceforge di sini .

( Beranda )

Plugin ini masih Beta dan hanya berfungsi untuk instalasi UNIX.

Charalampos Serenis
sumber
5

MySQL memiliki plugin otentikasi PAM yang memungkinkan Anda menggunakan modul PAM yang tersedia untuk menyediakan layanan otentikasi. Ada pam_ldapmodul yang relatif mudah dikonfigurasi yang harus memungkinkan Anda melakukan apa yang Anda inginkan.

Dokumentasi plugin menyertakan contoh menggunakan LDAP .

larsks
sumber
Apakah Anda tahu apakah ini akan mendukung Otentikasi berbasis Kerberos?
Saqib Ali
Saya tidak punya ide. Saya percaya bahwa plugin GSSAPI setidaknya ada untuk mariadb, tetapi saya tidak memiliki pengalaman pribadi dengan ini.
larsks
2

Anda dapat memigrasikan instalasi Anda ke Percona Server dan menggunakan salah satu dari dua cara ini untuk menghubungkan MySQL ke LDAP dengan PAM:

  • Plugin PAM lengkap yang disebut auth_pam. Plugin ini menggunakan dialog.so. Ini sepenuhnya mendukung protokol PAM dengan komunikasi sewenang-wenang antara klien dan server.

  • PAM yang kompatibel dengan Oracle disebut auth_pam_compat. Plugin ini menggunakan mysql_clear_password yang merupakan bagian dari klien Oracle MySQL. Ini juga memiliki beberapa keterbatasan, seperti, hanya mendukung satu input kata sandi. Anda harus menggunakan opsi “-p” untuk meneruskan kata sandi ke auth_pam_compat.

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

Kami menggunakan auth_pam_compattetapi Anda harus ingat bahwa klien harus mendukung Plugin Otentikasi Sisi Klien Cleartext

klocek
sumber
1

Sekarang pada akhir 2017, saya dapat menyarankan ini:

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

Plugin Percona PAM Authentication adalah implementasi gratis dan open source dari plugin otentikasi MySQL. Plugin ini bertindak sebagai mediator antara server MySQL, klien MySQL, dan tumpukan PAM. Plugin server meminta otentikasi dari tumpukan PAM, meneruskan permintaan dan pesan apa pun dari tumpukan PAM melalui kawat ke klien (dalam cleartext) dan membaca kembali setiap balasan untuk tumpukan PAM.

Ini TIDAK diuji, dan saya belum pernah bekerja dengannya, saya ingin menyarankan itu karena mungkin baik.

Mohammed Noureldin
sumber
"in cleartext" - tolong jangan gunakan ini.
h0tw1r3
@ h0tw1r3, Kenapa? ِ Sebenarnya saya menemukan beberapa cara yang tidak cocok untuk digunakan, tetapi saya tertarik mendengar pendapat Anda. Apakah ada alternatif open source untuk plugin PAM komersial?
Mohammed Noureldin