Это определенно возможно. Смотрите здесь: https://www.percona.com/blog/2017/04/21/how-to-setup-and-troubleshoot-percona-pam-with-ldap-for-external-authentication/
В моей среде я не настраивал Samba или NSS / SSS и не присоединяюсь к домену Windows. Я просто рассматриваю сервер AD как конечную точку LDAP. Итак, я начал с шага 9 в вышеуказанных направлениях.
РЕДАКТИРОВАТЬ: Добавить инструкции по ссылке выше, как предложено AfroThundr
Установите плагин Percona PAM:
mysql> INSTALL PLUGIN auth_pam SONAME 'auth_pam.so';
Query OK, 0 rows affected (0.01 sec)
mysql> INSTALL PLUGIN auth_pam_compat SONAME 'auth_pam_compat.so';
Query OK, 0 rows affected (0.00 sec)
Настройте Percona PAM для аутентификации в LDAP, создав /etc/pam.d/mysqld со следующим содержимым:
auth required pam_ldap.so
account required pam_ldap.so
Создайте пользователя MySQL, который будет проходить аутентификацию через auth_pam:
mysql> CREATE USER user@'%' IDENTIFIED WITH auth_pam;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON testdb.* TO user@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Войдите как пользователь и проверьте гранты:
[root@ps-20 ~]# mysql -u user
Password: <your LDAP/AD password>
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 22
Server version: 5.7.17-13 Percona Server (GPL), Release 13, Revision fd33d43
Copyright (c) 2009-2016 Percona LLC and/or its affiliates
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> SHOW GRANTS;
+-----------------------------------------------------+
| Grants for user@% |
+-----------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'%' |
| GRANT ALL PRIVILEGES ON `testdb`.* TO 'user'@'%' |
+---------------------------------------------------
Также остерегайтесь AppArmor - он заблокирует попытку аутентификации. Вы можете увидеть вводящие в заблуждение сообщения об ошибках в /var/log/auth.log
:
Feb 12 13:37:36 mysqld[15164]: PAM _pam_init_handlers: no default config /etc/pam.d/other
Feb 12 13:37:36 mysqld[15164]: PAM error reading PAM configuration file
Feb 12 13:37:36 mysqld[15164]: PAM pam_start: failed to initialize handlers
Вам необходимо добавить следующее к /etc/apparmor.d/local/usr.sbin.mysqld
:
#include <abstractions/authentication>
и перезагрузите apparmor:
service apparmor restart
(Спасибо https://bugs.launchpad.net/ubuntu/+source/squid/+bug/1608984 за то, что привели меня к части AppArmor)