Używać LDAP do uwierzytelniania MySQL?

15

Dla naszych użytkowników prowadzimy kilkadziesiąt różnych serwerów MySQL. Wykorzystują one darmową / Open Source wersję MySQL, a nie wersję komercyjną. Zarządzanie hasłami do kont na tych serwerach jest bolesne.

Czy są jakieś wtyczki, które pozwoliłyby nam używać LDAP do zarządzania uprawnieniami MySQL? Przynajmniej chcielibyśmy uzyskać niektóre nazwy użytkowników i hasła z serwerów LDAP.

Używamy MySQL 5.1 i 5.5. Możemy być gotowi na aktualizację do MySQL 5.6, jeśli jest to wymagane do osiągnięcia tej funkcjonalności.

Wolelibyśmy, aby wszelkie narzędzia były oparte na interfejsie CLI i nie wymagały graficznego interfejsu użytkownika ani interfejsu sieciowego.

Stefan Lasiewski
źródło

Odpowiedzi:

14

Enterprise MySQL (wersja, za którą płacisz Oracle za licencję) ma moduł PAM, który umożliwia uwierzytelnianie LDAP: https://dev.mysql.com/doc/refman/5.5/en/pam-pluggable-authentication.html

MariaDB (binarnie kompatybilna wersja MySQL opracowana przez Monty) ma dostępny moduł PAM typu open source: http://kb.askmonty.org/en/pam-authentication-plugin/

Nie mam też doświadczenia z żadnym z nich - przedstawiam je tylko jako cechy, o których słyszałem, ale których nie testowałem ani nie używałem.

drogart
źródło
5

MySQL ma wtyczkę uwierzytelniającą PAM , która pozwala używać dowolnego dostępnego modułu PAM do świadczenia usług uwierzytelniania. Istnieje pam_ldapmoduł, który jest stosunkowo łatwy w konfiguracji, który powinien pozwolić ci robić, co chcesz.

Dokumentacja wtyczki zawiera przykład użycia LDAP .

Larsks
źródło
Czy wiesz, czy będzie to obsługiwać uwierzytelnianie oparte na Kerberos?
Saqib Ali
Nie mam pojęcia. Uważam, że wtyczka GSSAPI istnieje przynajmniej dla mariadb, ale sama nie mam z tym osobistego doświadczenia.
larsks
2

Możesz migrować swoje instalacje do Percona Server i użyć jednego z tych dwóch sposobów połączenia MySQL z LDAP przez PAM:

  • Pełna wtyczka PAM o nazwie auth_pam. Ta wtyczka korzysta z dialog.so. W pełni obsługuje protokół PAM z dowolną komunikacją między klientem a serwerem.

  • PAM kompatybilny z Oracle o nazwie auth_pam_compat. Ta wtyczka wykorzystuje hasło mysql_clear_password, które jest częścią klienta Oracle MySQL. Ma również pewne ograniczenia, na przykład obsługuje tylko jedno hasło. Musisz użyć opcji „-p”, aby przekazać hasło do auth_pam_compat.

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

Używamy, auth_pam_compatale musisz pamiętać, że klient musi obsługiwać wtyczkę Cleartext Authentication po stronie klienta

klocek
źródło
1

Teraz do końca 2017 r. Mogę zasugerować:

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

Percona PAM Authentication Plugin to darmowa implementacja wtyczki uwierzytelniającej MySQL typu Open Source. Ta wtyczka działa jako mediator między serwerem MySQL, klientem MySQL a stosem PAM. Wtyczka serwera żąda uwierzytelnienia ze stosu PAM, przekazuje wszelkie żądania i wiadomości ze stosu PAM przewodowo do klienta (w postaci czystego tekstu) i odczytuje wszelkie odpowiedzi dotyczące stosu PAM.

NIE jest testowany i nigdy z nim nie pracowałem, chciałem zasugerować, ponieważ może być dobry.

Mohammed Noureldin
źródło
„jawnie” - nie używaj tego.
h0tw1r3
@ h0tw1r3, Dlaczego? ِ Właściwie to uważam, że nie nadaje się do użycia, ale jestem zainteresowany, aby poznać Twoją opinię. Czy istnieje jakaś alternatywa typu open source dla komercyjnej wtyczki PAM?
Mohammed Noureldin