Використовувати LDAP для аутентифікації MySQL?


15

Ми запускаємо кілька десятків різних серверів MySQL для наших користувачів. Вони використовують безкоштовну / Open Source версію MySQL, а не комерційну версію. Управління паролями облікових записів на цих серверах болісно.

Чи є плагіни, які б дозволяли нам використовувати LDAP для управління привілеями MySQL? Як мінімум, ми хотіли б отримати деякі імена користувачів та паролі від серверів LDAP.

Ми використовуємо MySQL 5.1 та 5.5. Ми можемо бути готові до оновлення до MySQL 5.6, якщо це потрібно для досягнення цієї функціональності.

Ми вважаємо за краще, щоб будь-які інструменти були засновані на CLI, а не вимагали GUI або веб-інтерфейсу.

Відповіді:


14

Enterprise MySQL (версія, за яку ви платите Oracle за ліцензію) має модуль PAM, який дозволяє проводити автентифікацію LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (бінарна сумісна версія MySQL, розроблена Monty), має доступний для неї модуль PAM з відкритим кодом: http://kb.askmonty.org/en/pam-authentication-plugin/

Я не маю жодного досвіду роботи з будь-яким - я представляю їх лише як функції, про які я чув, але не перевіряв і не використовував сам.




5

MySQL має плагін аутентифікації PAM, який дозволить вам використовувати будь-який доступний модуль PAM для надання послуг аутентифікації. Є pam_ldapмодуль, який відносно легко налаштувати, який повинен дозволяти робити те, що ви хочете.

Документація на плагіни включає приклад використання LDAP .


Чи знаєте ви, чи це підтримуватиме автентифікацію на основі Kerberos?
Сакіб Алі

Я поняття не маю. Я вважаю, що плагін GSSAPI існує принаймні для mariadb, але я особисто не маю цього досвіду.
larsks


2

Ви можете мігрувати ваші інсталяції на Percona Server і використовувати один з цих двох способів підключення MySQL до LDAP за допомогою PAM:

  • Повний 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

Плагін автентифікації PAM Percona - це безкоштовна та відкрита реалізація плагіна аутентифікації MySQL. Цей плагін виступає посередником між сервером MySQL, клієнтом MySQL та стеком PAM. Плагін сервера вимагає аутентифікації зі стека PAM, пересилає клієнту будь-які запити та повідомлення із стека PAM (у чіткому тексті) і зчитує всі відповіді на стек PAM.

Він НЕ перевірений, і я ніколи з ним не працював, я хотів запропонувати це, як це може бути добре.


"у чіткому тексті" - не використовуйте це.
h0tw1r3

@ h0tw1r3, чому? ِ Насправді я вважаю, що це не підходить для використання, але мені цікаво почути вашу думку. Чи є альтернатива з відкритим кодом для комерційного плагіна PAM?
Мухаммед Нурелдін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.