8.4.1.13 Переменные подключаемой системы аутентификации
Эти переменные недоступны, если соответствующий плагин на стороне сервера не установлен:
authentication_ldap_saslдля переменных системы с именами в формеauthentication_ldap_sasl_xxxauthentication_ldap_simpleдля переменных системы с именами в формеauthentication_ldap_simple_xxx
Таблица 8.28 Краткое описание переменных системы плагина аутентификации
-
authentication_kerberos_service_key_tabФормат командной строки --authentication-kerberos-service-key-tab=file_nameСистемная переменная authentication_kerberos_service_key_tabОбласть действия Глобальная Динамическая Нет SET_VARПодсказка применяетсяНет Тип Имя файла Значение по умолчанию datadir/mysql.keytabИмя файла таблицы ключей на стороне сервера (“keytab”), содержащего ключи службы Kerberos для аутентификации билетов службы MySQL, полученных от клиентов. Имя файла должно быть указано как абсолютный путь. Если эта переменная не задана, значение по умолчанию —
mysql.keytabв каталоге данных.Файл должен существовать и содержать допустимый ключ для имени субъекта службы (SPN), иначе аутентификация клиентов будет невозможна. (SPN и тот же ключ также должны быть созданы на сервере Kerberos.) Файл может содержать несколько имен субъектов службы и их соответствующие комбинации ключей.
Файл должен быть сгенерирован администратором сервера Kerberos и скопирован в место, доступное серверу MySQL. Файл можно проверить, чтобы убедиться, что он правильный и был скопирован правильно, используя эту команду:
klist -k
file_nameДля получения информации о файлах keytab см. https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html.
-
authentication_kerberos_service_principalФормат командной строки --authentication-kerberos-service-principal=nameСистемная переменная authentication_kerberos_service_principalОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию mysql/host_name@realm_nameИмя субъекта службы Kerberos (SPN), которое сервер MySQL отправляет клиентам.
Значение состоит из имени службы (
mysql), имени узла и имени области. Значение по умолчанию —mysql/. Область в имени субъекта службы позволяет извлекать точный ключ службы.host_name@realm_nameЧтобы использовать значение, отличное от значения по умолчанию, установите значение, используя тот же формат. Например, чтобы использовать имя узла
krbauth.example.comи областьMYSQL.LOCAL, установитеauthentication_kerberos_service_principalвmysql/krbauth.example.com@MYSQL.LOCAL.Имя субъекта службы и ключ службы уже должны присутствовать в базе данных, управляемой сервером KDC.
Могут существовать имена субъектов службы, которые различаются только именем области.
-
authentication_ldap_sasl_auth_method_nameФормат командной строки --authentication-ldap-sasl-auth-method-name=valueСистемная переменная authentication_ldap_sasl_auth_method_nameОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию SCRAM-SHA-1Допустимые значения SCRAM-SHA-1SCRAM-SHA-256GSSAPIДля SASL LDAP-аутентификации, имя метода аутентификации. Связь между плагином аутентификации и LDAP-сервером происходит в соответствии с этим методом аутентификации для обеспечения безопасности пароля.
Допускаются следующие значения метода аутентификации:
-
SCRAM-SHA-1: Использовать механизм SASL challenge-response.Плагин
authentication_ldap_sasl_clientна стороне клиента взаимодействует с SASL-сервером, используя пароль для создания вызова и получения буфера запроса SASL, а затем передает этот буфер плагинуauthentication_ldap_saslна стороне сервера. Клиентские и серверные SASL LDAP-плагины используют сообщения SASL для безопасной передачи учетных данных в протоколе LDAP, чтобы избежать отправки пароля в открытом тексте между клиентом и сервером MySQL. -
SCRAM-SHA-256: Использовать механизм SASL challenge-response.Этот метод аналогичен
SCRAM-SHA-1, но более безопасен. Требуется сервер OpenLDAP, собранный с использованием Cyrus SASL 2.1.27 или выше. -
GSSAPI: Использовать Kerberos, протокол без пароля на основе билетов.GSSAPI/Kerberos поддерживается в качестве метода аутентификации для клиентов и серверов MySQL только в Linux. Он полезен в средах Linux, где приложения обращаются к LDAP с использованием Microsoft Active Directory, в котором Kerberos включен по умолчанию.
Плагин
authentication_ldap_sasl_clientна стороне клиента получает билет службы, используя билет предоставления билетов (TGT) от Kerberos, но не использует службы LDAP напрямую. Серверный плагинauthentication_ldap_saslмаршрутизирует сообщения Kerberos между клиентским плагином и LDAP-сервером. Используя полученные таким образом учетные данные, серверный плагин затем взаимодействует с LDAP-сервером для интерпретации сообщений LDAP-аутентификации и извлечения групп LDAP.
-
-
authentication_ldap_sasl_bind_base_dnФормат командной строки --authentication-ldap-sasl-bind-base-dn=valueСистемная переменная authentication_ldap_sasl_bind_base_dnОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию NULLДля SASL LDAP-аутентификации, базовое различающееся имя (DN). Эта переменная может использоваться для ограничения области поиска путем их привязки в определенном месте (“base”) в дереве поиска.
Предположим, что члены одного набора записей пользователей LDAP имеют следующий формат:
uid=
user_name,ou=People,dc=example,dc=comИ что члены другого набора записей пользователей LDAP имеют следующий формат:
uid=
user_name,ou=Admin,dc=example,dc=comТогда поиск работает следующим образом для разных значений базового DN:
Если базовое DN —
ou=People,dc=example,dc=com: Поиск находит записи пользователей только в первом наборе.Если базовое DN —
ou=Admin,dc=example,dc=com: Поиск находит записи пользователей только во втором наборе.Если базовое DN —
ou=dc=example,dc=com: Поиск находит записи пользователей в первом или втором наборе.
В общем, более конкретные значения базового DN приводят к более быстрому поиску, поскольку они сильнее ограничивают область поиска.
-
authentication_ldap_sasl_bind_root_dnФормат командной строки --authentication-ldap-sasl-bind-root-dn=valueСистемная переменная authentication_ldap_sasl_bind_root_dnОбласть действия Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию NULLДля SASL LDAP-аутентификации, корневое различающееся имя (DN). Эта переменная используется вместе с
authentication_ldap_sasl_bind_root_pwdв качестве учетных данных для аутентификации на LDAP-сервере с целью выполнения поиска. Аутентификация использует одну или две операции привязки LDAP в зависимости от того, указывают ли имена учетных записей MySQL на DN пользователя LDAP:Если учетная запись не указывает на DN пользователя:
authentication_ldap_saslвыполняет начальную привязку LDAP, используяauthentication_ldap_sasl_bind_root_dnиauthentication_ldap_sasl_bind_root_pwd. (Они оба пусты по умолчанию, поэтому, если они не установлены, LDAP-сервер должен разрешать анонимные подключения.) Полученная дескриптор привязки LDAP используется для поиска DN пользователя на основе имени пользователя клиента.authentication_ldap_saslвыполняет вторую привязку, используя DN пользователя и предоставленный клиентом пароль.Если учетная запись указывает на DN пользователя: Первая операция привязки в этом случае не нужна.
authentication_ldap_saslвыполняет одну привязку, используя DN пользователя и предоставленный клиентом пароль. Это быстрее, чем если учетная запись MySQL не указывает DN пользователя LDAP.
-
authentication_ldap_sasl_bind_root_pwdФормат командной строки --authentication-ldap-sasl-bind-root-pwd=valueСистемная переменная authentication_ldap_sasl_bind_root_pwdОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию NULLДля SASL LDAP-аутентификации, пароль для корневого distinguished name. Эта переменная используется вместе с
authentication_ldap_sasl_bind_root_dn. См. описание этой переменной. -
authentication_ldap_sasl_ca_pathФормат командной строки --authentication-ldap-sasl-ca-path=valueСистемная переменная authentication_ldap_sasl_ca_pathОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию NULLДля SASL LDAP-аутентификации, абсолютный путь к файлу сертификата центра сертификации. Укажите этот файл, если необходимо, чтобы плагин аутентификации выполнял проверку сертификата сервера LDAP.
ПримечаниеВ дополнение к установке переменной
authentication_ldap_sasl_ca_pathв имя файла, необходимо добавить соответствующие сертификаты центра сертификации в файл и включить системную переменнуюauthentication_ldap_sasl_tls. Эти переменные могут быть установлены для переопределения конфигурации OpenLDAP TLS по умолчанию; см. LDAP Pluggable Authentication and ldap.conf -
authentication_ldap_sasl_connect_timeoutФормат командной строки --authentication-ldap-sasl-connect-timeout=#Системная переменная authentication_ldap_sasl_connect_timeoutОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 30Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Указывает время (в секундах), которое сервер MySQL ожидает подключения к серверу LDAP с использованием TCP.
Когда учетная запись MySQL выполняет аутентификацию с использованием LDAP, сервер MySQL пытается установить TCP-соединение с сервером LDAP, которое он использует для отправки запроса LDAP bind по соединению. Если сервер LDAP не отвечает на TCP-handshake после настроенного времени, MySQL отменяет попытку TCP-handshake и выдает сообщение об ошибке. Если параметр тайм-аута равен нулю, сервер MySQL игнорирует настройку этой системной переменной. Для получения дополнительной информации см. Setting Timeouts for LDAP Pluggable Authentication.
ПримечаниеЕсли вы установите эту переменную в значение тайм-аута, которое больше, чем значение по умолчанию для хост-системы, используется меньшее системное время ожидания.
-
authentication_ldap_sasl_group_search_attrФормат командной строки --authentication-ldap-sasl-group-search-attr=valueСистемная переменная authentication_ldap_sasl_group_search_attrОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию cnДля SASL LDAP-аутентификации, имя атрибута, который указывает имена групп в записях каталога LDAP. Если
authentication_ldap_sasl_group_search_attrимеет значение по умолчаниюcn, поиск возвращает значениеcnв качестве имени группы. Например, если запись LDAP со значениемuidравнымuser1имеет атрибутcnравныйmygroup, поискuser1возвращаетmygroupв качестве имени группы.Эта переменная должна быть пустой строкой, если вы не хотите использовать групповую или прокси-аутентификацию.
Если атрибут поиска группы является
isMemberOf, LDAP-аутентификация напрямую извлекает значение атрибута пользователяisMemberOfи назначает его в качестве информации о группе. Если атрибут поиска группы не являетсяisMemberOf, LDAP-аутентификация ищет все группы, членами которых является пользователь. (Последнее является поведением по умолчанию.) Это поведение основано на том, как информация о группах LDAP может храниться двумя способами: 1) Запись группы может иметь атрибут с именемmemberUidилиmemberсо значением, которое является именем пользователя; 2) Запись пользователя может иметь атрибут с именемisMemberOfсо значениями, которые являются именами групп. -
authentication_ldap_sasl_group_search_filterФормат командной строки --authentication-ldap-sasl-group-search-filter=valueСистемная переменная authentication_ldap_sasl_group_search_filterОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию (|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))Для SASL LDAP-аутентификации, пользовательский фильтр поиска групп.
Значение фильтра поиска может содержать обозначения
{UA}и{UD}для представления имени пользователя и полного DN пользователя. Например,{UA}заменяется именем пользователя, таким как"admin", тогда как{UD}заменяется полным DN пользователя, таким как"uid=admin,ou=People,dc=example,dc=com". Следующее значение является значением по умолчанию, которое поддерживает как OpenLDAP, так и Active Directory:(|(&(objectClass=posixGroup)(memberUid={UA})) (&(objectClass=group)(member={UD})))В некоторых случаях для сценария пользователя
memberOfявляется простым атрибутом пользователя, который не содержит информации о группах. Для дополнительной гибкости необязательный префикс{GA}может использоваться с атрибутом поиска группы. Любой атрибут группы с префиксом {GA} рассматривается как атрибут пользователя, имеющий имена групп. Например, со значением{GA}MemberOf, если значение группы является DN, первое значение атрибута из DN группы возвращается как имя группы.
-
authentication_ldap_sasl_init_pool_sizeФормат командной строки --authentication-ldap-sasl-init-pool-size=#Системная переменная authentication_ldap_sasl_init_pool_sizeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 32767Единица измерения соединений Для аутентификации SASL LDAP — начальный размер пула соединений с сервером LDAP. Выберите значение для этой переменной, основываясь на среднем количестве одновременных запросов аутентификации на сервере LDAP.
Плагин использует
authentication_ldap_sasl_init_pool_sizeиauthentication_ldap_sasl_max_pool_sizeсовместно для управления пулом соединений:При инициализации плагином аутентификации создаётся
authentication_ldap_sasl_init_pool_sizeсоединений, еслиauthentication_ldap_sasl_max_pool_size=0не отключить пулинг.Если плагин получает запрос на аутентификацию, когда в текущем пуле соединений нет свободных соединений, плагин может создать новое соединение, вплоть до максимального размера пула соединений, заданного
authentication_ldap_sasl_max_pool_size.Если плагин получает запрос, когда размер пула уже достигнут максимума, и нет свободных соединений, аутентификация завершается неудачно.
При разгрузке плагина все подключенные соединения закрываются.
Изменения настроек системной переменной плагина могут не повлиять на соединения, уже присутствующие в пуле. Например, изменение хоста, порта или настроек TLS сервера LDAP не влияет на существующие подключения. Однако, если исходные значения переменных были неверными и пул соединений не мог быть инициализирован, плагин пытается повторно инициализировать пул для следующего запроса LDAP. В этом случае для повторной инициализации используются новые значения системных переменных.
Если
authentication_ldap_sasl_max_pool_size=0отключить пулинг, каждое подключение к LDAP, открытое плагином, использует значения системных переменных на тот момент. -
authentication_ldap_sasl_log_statusФормат командной строки --authentication-ldap-sasl-log-status=#Системная переменная authentication_ldap_sasl_log_statusОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1Минимальное значение 1Максимальное значение 6Для аутентификации SASL LDAP — уровень ведения журнала для сообщений, записываемых в журнал ошибок. Следующая таблица показывает разрешённые значения уровня и их значения.
Таблица 8.29 Уровни ведения журнала для authentication_ldap_sasl_log_status
Таблица 8.29 Уровни ведения журнала для authentication_ldap_sasl_log_status Значение параметра Типы регистрируемых сообщений 1Нет сообщений 2Сообщения об ошибках 3Сообщения об ошибках и предупреждениях 4Сообщения об ошибках, предупреждениях и информации 5Как предыдущий уровень плюс отладочные сообщения из MySQL 6Как предыдущий уровень плюс отладочные сообщения из библиотеки LDAP На стороне клиента сообщения могут быть записаны в стандартный вывод, установив переменную среды
AUTHENTICATION_LDAP_CLIENT_LOG. Разрешённые и значения по умолчанию такие же, как дляauthentication_ldap_sasl_log_status.Переменная среды
AUTHENTICATION_LDAP_CLIENT_LOGприменяется только к аутентификации SASL LDAP. Она не имеет эффекта для простой аутентификации LDAP, так как клиентский плагин в этом случае являетсяmysql_clear_password, который ничего не знает об операциях LDAP. -
authentication_ldap_sasl_max_pool_sizeФормат командной строки --authentication-ldap-sasl-max-pool-size=#Системная переменная authentication_ldap_sasl_max_pool_sizeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1000Минимальное значение 0Максимальное значение 32767Единица измерения соединений Для аутентификации SASL LDAP — максимальный размер пула соединений с сервером LDAP. Для отключения пула соединений установите эту переменную в 0.
Эта переменная используется совместно с
authentication_ldap_sasl_init_pool_size. См. описание этой переменной. -
authentication_ldap_sasl_referralФормат командной строки --authentication-ldap-sasl-referral[={OFF|ON}]Системная переменная authentication_ldap_sasl_referralОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию OFFДля аутентификации SASL LDAP — разрешить ли переадресацию поиска LDAP. См. Переадресация поиска LDAP.
Эта переменная может быть установлена для переопределения конфигурации переадресации OpenLDAP по умолчанию; см. Плагин аутентификации LDAP и ldap.conf
-
authentication_ldap_sasl_response_timeoutФормат командной строки --authentication-ldap-sasl-response-timeout=#Системная переменная authentication_ldap_sasl_response_timeoutОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 30Минимальное значение 0Максимальное значение 31536000Единица измерения секунд Указывает время (в секундах), которое сервер MySQL ждёт ответа от сервера LDAP на запрос LDAP-связывания.
При аутентификации учётной записи MySQL с помощью LDAP сервер MySQL отправляет запрос LDAP-связывания на сервер LDAP. Если сервер LDAP не отвечает на запрос после заданного времени, сервер MySQL оставляет запрос и выводит сообщение об ошибке. Если значение таймаута равно нулю, сервер MySQL игнорирует это системное переменное значение. Дополнительную информацию см. в разделе Установка таймаутов для плагина аутентификации LDAP.
-
authentication_ldap_sasl_server_hostФормат командной строки --authentication-ldap-sasl-server-host=host_nameСистемная переменная authentication_ldap_sasl_server_hostОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Для аутентификации SASL LDAP хост LDAP-сервера. Разрешенные значения для этой переменной зависят от метода аутентификации:
Для
authentication_ldap_sasl_auth_method_name=SCRAM-SHA-1: хост LDAP-сервера может быть именем хоста или IP-адресом.Для
authentication_ldap_sasl_auth_method_name=SCRAM-SHA-256: хост LDAP-сервера может быть именем хоста или IP-адресом.
-
authentication_ldap_sasl_server_portФормат командной строки --authentication-ldap-sasl-server-port=port_numСистемная переменная authentication_ldap_sasl_server_portОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Целое число Значение по умолчанию 389Минимальное значение 1Максимальное значение 32376Для аутентификации SASL LDAP номер порта TCP/IP LDAP-сервера.
Если номер порта LDAP настроен как 636 или 3269, плагин использует LDAPS (LDAP через SSL) вместо LDAP. (LDAPS отличается от
startTLS.) -
Формат командной строки --authentication-ldap-sasl-tls[={OFF|ON}]Системная переменная authentication_ldap_sasl_tlsОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Булево Значение по умолчанию OFFДля аутентификации SASL LDAP, будут ли подключения плагина к LDAP-серверу защищены. Если эта переменная включена, плагин использует TLS для безопасного подключения к LDAP-серверу. Эта переменная может быть установлена для переопределения стандартной конфигурации OpenLDAP TLS; см. LDAP-плагины аутентификации и ldap.conf. Если вы включили эту переменную, вы также можете установить переменную
authentication_ldap_sasl_ca_path.Плагины MySQL LDAP поддерживают метод StartTLS, который инициализирует TLS поверх обычного подключения LDAP.
LDAPS можно использовать, установив системную переменную
authentication_ldap_sasl_server_port. -
authentication_ldap_sasl_user_search_attrФормат командной строки --authentication-ldap-sasl-user-search-attr=valueСистемная переменная authentication_ldap_sasl_user_search_attrОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию uidДля аутентификации SASL LDAP имя атрибута, определяющего имена пользователей в записях каталога LDAP. Если имя пользователя с именем не предоставлено, плагин аутентификации ищет имя, используя этот атрибут. Например, если значение
authentication_ldap_sasl_user_search_attrравноuid, поиск пользователя с именемuser1находит записи с значениемuidравнымuser1. -
authentication_ldap_simple_auth_method_nameФормат командной строки --authentication-ldap-simple-auth-method-name=valueСистемная переменная authentication_ldap_simple_auth_method_nameОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию SIMPLEДопустимые значения SIMPLEAD-FORESTДля простой аутентификации LDAP имя метода аутентификации. Взаимодействие между плагином аутентификации и LDAP-сервером происходит в соответствии с этим методом аутентификации.
ПримечаниеДля всех методов простой аутентификации LDAP рекомендуется также устанавливать параметры TLS для обеспечения того, чтобы взаимодействие с LDAP-сервером происходило по защищенным соединениям.
Допустимые значения методов аутентификации:
SIMPLE: Использовать простую аутентификацию LDAP. Этот метод использует одну или две операции привязки LDAP, в зависимости от того, указывает ли имя MySQL-аккаунта имя пользователя LDAP. См. описаниеauthentication_ldap_simple_bind_root_dn.AD-FOREST: ВариантSIMPLE, такой, что аутентификация ищет все домены в лесу Active Directory, выполняя привязку LDAP к каждому домену Active Directory, пока пользователь не будет найден в каком-то домене.
-
authentication_ldap_simple_bind_base_dnФормат командной строки --authentication-ldap-simple-bind-base-dn=valueСистемная переменная authentication_ldap_simple_bind_base_dnОбласть действия Глобальная Динамическая Да SET_VARПрименимоНет Тип Строка Значение по умолчанию NULLДля простой аутентификации LDAP базовое различающее имя (DN). Эта переменная может использоваться для ограничения области поиска, привязывая их к определенному месту (базовому) в дереве поиска.
Предположим, что члены одного набора записей пользователей LDAP имеют следующий вид:
uid=
user_name,ou=People,dc=example,dc=comИ члены другого набора записей пользователей LDAP имеют следующий вид:
uid=
user_name,ou=Admin,dc=example,dc=comТогда поиск работает следующим образом для различных значений базового DN:
Если базовое DN равно
ou=People,dc=example,dc=com: Поиск находит записи пользователей только в первом наборе.Если базовое DN равно
ou=Admin,dc=example,dc=com: Поиск находит записи пользователей только во втором наборе.Если базовое DN равно
ou=dc=example,dc=com: Поиск находит записи пользователей в первом или втором наборе.
В общем случае, более специфические значения базового DN приводят к более быстрому поиску, поскольку они более ограничивают область поиска.
-
authentication_ldap_simple_bind_root_dnФормат командной строки --authentication-ldap-simple-bind-root-dn=valueСистемная переменная authentication_ldap_simple_bind_root_dnОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию NULLДля простого аутентификации по LDAP, корневое имя (DN). Эта переменная используется совместно с
authentication_ldap_simple_bind_root_pwdв качестве учетных данных для аутентификации на сервере LDAP с целью выполнения запросов. Аутентификация использует одну или две операции привязки LDAP, в зависимости от того, указывает ли имя учетной записи MySQL имя DN пользователя LDAP:Если имя учетной записи не указывает DN пользователя:
authentication_ldap_simpleвыполняет начальную привязку LDAP, используяauthentication_ldap_simple_bind_root_dnиauthentication_ldap_simple_bind_root_pwd. (Оба значения по умолчанию пусты, поэтому, если они не установлены, сервер LDAP должен разрешать анонимные подключения.) Полученный обработчик привязки LDAP используется для поиска DN пользователя на основе имени пользователя клиента.authentication_ldap_simpleвыполняет вторую привязку с использованием DN пользователя и пароля, предоставленного клиентом.Если имя учетной записи указывает DN пользователя: В этом случае первая операция привязки не нужна.
authentication_ldap_simpleвыполняет одиночную привязку с использованием DN пользователя и пароля, предоставленного клиентом. Это быстрее, чем если имя учетной записи MySQL не указывает DN пользователя LDAP.
-
authentication_ldap_simple_bind_root_pwdФормат командной строки --authentication-ldap-simple-bind-root-pwd=valueСистемная переменная authentication_ldap_simple_bind_root_pwdОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию NULLДля простого аутентификации по LDAP, пароль для корневого имени (DN). Эта переменная используется совместно с
authentication_ldap_simple_bind_root_dn. Смотрите описание этой переменной. -
authentication_ldap_simple_ca_pathФормат командной строки --authentication-ldap-simple-ca-path=valueСистемная переменная authentication_ldap_simple_ca_pathОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию NULLДля простого аутентификации по LDAP, абсолютный путь к файлу сертификата центра сертификации. Укажите этот файл, если требуется, чтобы плагин аутентификации проверял сертификат сервера LDAP.
ПримечаниеПомимо установки переменной
authentication_ldap_simple_ca_pathс именем файла, необходимо добавить соответствующие сертификаты центра сертификации в файл и включить системную переменнуюauthentication_ldap_simple_tls. Эти переменные можно установить, чтобы переопределить стандартную конфигурацию TLS OpenLDAP; см. LDAP Плагинная аутентификация и ldap.conf -
authentication_ldap_simple_connect_timeoutФормат командной строки --authentication-ldap-simple-connect-timeout=#Системная переменная authentication_ldap_simple_connect_timeoutОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое Значение по умолчанию 30Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Указывает время (в секундах), которое сервер MySQL ожидает подключения к серверу LDAP с использованием TCP.
При аутентификации пользователя MySQL с использованием LDAP сервер MySQL пытается установить TCP-соединение с сервером LDAP, которое используется для отправки запроса LDAP на соединение. Если сервер LDAP не отвечает на TCP-рукопожатие после заданного количества времени, MySQL отказывается от попытки TCP-рукопожатия и выводит сообщение об ошибке. Если значение таймаута равно нулю, сервер MySQL игнорирует это значение системной переменной. Дополнительную информацию см. в Установка таймаутов для плагина аутентификации LDAP.
ПримечаниеЕсли вы установите эту переменную на значение таймаута, превышающее значение по умолчанию для системной среды, используется более короткое значение системного таймаута.
-
authentication_ldap_simple_group_search_attrФормат командной строки --authentication-ldap-simple-group-search-attr=valueСистемная переменная authentication_ldap_simple_group_search_attrОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию cnДля простого аутентификации по LDAP, имя атрибута, указывающего имена групп в записях каталога LDAP. Если
authentication_ldap_simple_group_search_attrимеет значение по умолчаниюcn, результаты поиска возвращают значениеcnв качестве имени группы. Например, если запись LDAP со значениемuidравнымuser1имеет атрибутcnсо значениемmygroup, результаты поискаuser1возвращаютmygroupв качестве имени группы.Если атрибут поиска группы равен
isMemberOf, LDAP-аутентификация напрямую извлекает значение атрибута пользователяisMemberOfи присваивает его в качестве информации о группе. Если атрибут поиска группы не равенisMemberOf, LDAP-аутентификация ищет все группы, где пользователь является членом. (Последнее - поведение по умолчанию.) Это поведение основано на том, как информация о группах LDAP может быть хранится двумя способами: 1) запись группы может иметь атрибут, названныйmemberUidилиmemberсо значением, являющимся именем пользователя; 2) запись пользователя может иметь атрибут, названныйisMemberOfсо значениями, являющимися именами групп.
-
authentication_ldap_simple_group_search_filterФормат командной строки --authentication-ldap-simple-group-search-filter=valueПеременная системы authentication_ldap_simple_group_search_filterОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Строка Значение по умолчанию (|(&(objectClass=posixGroup)(memberUid=%s))(&(objectClass=group)(member=%s)))Для простого LDAP-аутентификации, пользовательский фильтр поиска групп.
Значение фильтра поиска может содержать
{UA}и{UD}обозначения для представления имени пользователя и полного DN пользователя. Например,{UA}заменяется именем пользователя, таким как"admin", а{UD}заменяется полным DN пользователя, таким как"uid=admin,ou=People,dc=example,dc=com". Следующее значение является значением по умолчанию, которое поддерживает как OpenLDAP, так и Active Directory:(|(&(objectClass=posixGroup)(memberUid={UA})) (&(objectClass=group)(member={UD})))В некоторых случаях для сценария пользователя,
memberOfявляется простым атрибутом пользователя, не содержащим информации о группе. Для дополнительной гибкости можно использовать необязательное префикс{GA}с атрибутом поиска группы. Любой атрибут группы с префиксом {GA} обрабатывается как атрибут пользователя, содержащий имена групп. Например, со значением{GA}MemberOf, если значение группы — DN, первое значение атрибута из DN группы возвращается как имя группы. -
authentication_ldap_simple_init_pool_sizeФормат командной строки --authentication-ldap-simple-init-pool-size=#Переменная системы authentication_ldap_simple_init_pool_sizeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 32767Единица измерения соединения Для простого LDAP-аутентификации, начальный размер пула соединений с LDAP-сервером. Выберите значение для этой переменной на основе среднего количества одновременных запросов аутентификации на LDAP-сервер.
Плагин использует
authentication_ldap_simple_init_pool_sizeиauthentication_ldap_simple_max_pool_sizeсовместно для управления пулом соединений:При инициализации плагина аутентификации создаётся
authentication_ldap_simple_init_pool_sizeсоединений, еслиauthentication_ldap_simple_max_pool_size=0не отключено пулинг.Если плагин получает запрос аутентификации, когда в текущем пуле соединений нет свободных соединений, плагин может создать новое соединение до максимального размера пула соединений, заданного
authentication_ldap_simple_max_pool_size.Если плагин получает запрос, когда размер пула уже достигнут максимума и нет свободных соединений, аутентификация завершается неудачно.
При разгрузке плагина он закрывает все подключенные соединения.
Изменения в настройках переменных системы плагина могут не повлиять на соединения, уже находящиеся в пуле. Например, изменение хоста, порта или настроек TLS LDAP-сервера не влияет на существующие подключения. Однако, если первоначальные значения переменных были неверными, и пул соединений не мог быть инициализирован, плагин пытается повторно инициализировать пул для следующего запроса LDAP. В этом случае новые значения переменной системы используются для попытки повторной инициализации.
Если
authentication_ldap_simple_max_pool_size=0для отключения пулинга, каждое LDAP-соединение, открытое плагином, использует значения переменных системы на тот момент. -
authentication_ldap_simple_log_statusФормат командной строки --authentication-ldap-simple-log-status=#Переменная системы authentication_ldap_simple_log_statusОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1Минимальное значение 1Максимальное значение 6Для простого LDAP-аутентификации, уровень логирования сообщений, записываемых в журнал ошибок. Следующая таблица показывает допустимые значения уровней и их значения.
Таблица 8.30 Уровни логирования для authentication_ldap_simple_log_status
Таблица 8.30 Уровни логирования для authentication_ldap_simple_log_status Значение параметра Типы регистрируемых сообщений 1Нет сообщений 2Сообщения об ошибках 3Сообщения об ошибках и предупреждения 4Сообщения об ошибках, предупреждениях и информации 5Как предыдущий уровень плюс сообщения отладки из MySQL 6Как предыдущий уровень плюс сообщения отладки из LDAP-библиотеки
-
authentication_ldap_simple_max_pool_sizeФормат командной строки --authentication-ldap-simple-max-pool-size=#Переменная системы authentication_ldap_simple_max_pool_sizeОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Целое число Значение по умолчанию 1000Минимальное значение 0Максимальное значение 32767Единица измерения соединения Для простого LDAP-аутентификации, максимальный размер пула соединений с LDAP-сервером. Для отключения пулинга соединений установите эту переменную в значение 0.
Эта переменная используется совместно с
authentication_ldap_simple_init_pool_size. См. описание этой переменной. -
authentication_ldap_simple_referralФормат командной строки --authentication-ldap-simple-referral[={OFF|ON}]Переменная системы authentication_ldap_simple_referralОбласть действия Глобальная Динамическая Да SET_VARПрименяется подсказкаНет Тип Булево Значение по умолчанию OFFДля простого LDAP-аутентификации, включение LDAP-ссылок на поиск. См. LDAP-ссылка на поиск.
-
authentication_ldap_simple_response_timeoutФормат командной строки --authentication-ldap-simple-response-timeout=#Системная переменная authentication_ldap_simple_response_timeoutОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 30Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Указывает время (в секундах), в течение которого сервер MySQL ожидает ответа от LDAP-сервера на запрос LDAP bind.
Когда учетная запись MySQL выполняет аутентификацию с использованием LDAP, сервер MySQL отправляет запрос LDAP bind на LDAP-сервер. Если LDAP-сервер не отвечает на запрос в течение заданного времени, MySQL прерывает запрос и выдает сообщение об ошибке. Если значение тайм-аута равно нулю, сервер MySQL игнорирует это значение системной переменной. Для получения дополнительной информации см. Setting Timeouts for LDAP Pluggable Authentication.
-
authentication_ldap_simple_server_hostФормат командной строки --authentication-ldap-simple-server-host=host_nameСистемная переменная authentication_ldap_simple_server_hostОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Для простой LDAP-аутентификации, хост LDAP-сервера. Допустимые значения для этой переменной зависят от метода аутентификации:
Для
authentication_ldap_simple_auth_method_name=SIMPLE: Хост LDAP-сервера может быть именем хоста или IP-адресом.-
Для
authentication_ldap_simple_auth_method_name=AD-FOREST. Хост LDAP-сервера может быть именем домена Active Directory. Например, для URL-адреса LDAP-сервераldap://example.mem.local:389, имя домена может бытьmem.local.Настройка леса Active Directory может содержать несколько доменов (IP-адреса LDAP-серверов), которые можно обнаружить с помощью DNS. В Unix-подобных системах может потребоваться дополнительная настройка для конфигурирования DNS-сервера с записями SRV, которые указывают LDAP-серверы для домена Active Directory. Для получения информации о DNS SRV см. RFC 2782.
Предположим, что ваша конфигурация имеет следующие свойства:
Сервер имен, который предоставляет информацию о доменах Active Directory, имеет IP-адрес
10.172.166.100.LDAP-серверы имеют имена от
ldap1.mem.localдоldap3.mem.localи IP-адреса от10.172.166.101до10.172.166.103.
Необходимо, чтобы LDAP-серверы были доступны с помощью поиска SRV. Например, в командной строке команда, подобная этой, должна отображать список LDAP-серверов:
host -t SRV _ldap._tcp.mem.local
Выполните конфигурацию DNS следующим образом:
-
Добавьте строку в
/etc/resolv.conf, чтобы указать сервер имен, который предоставляет информацию о доменах Active Directory:nameserver 10.172.166.100
-
Настройте соответствующий файл зоны для сервера имен с записями SRV для LDAP-серверов:
_ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap1.mem.local. _ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap2.mem.local. _ldap._tcp.mem.local. 86400 IN SRV 0 100 389 ldap3.mem.local.
-
Может также потребоваться указать IP-адрес для LDAP-серверов в
/etc/hosts, если имя хоста сервера не может быть разрешено. Например, добавьте в файл строки, подобные этим:10.172.166.101 ldap1.mem.local 10.172.166.102 ldap2.mem.local 10.172.166.103 ldap3.mem.local
С настроенным DNS, как описано выше, плагин LDAP на стороне сервера может обнаружить LDAP-серверы и попытается выполнить аутентификацию во всех доменах, пока аутентификация не завершится успешно или не останется больше серверов.
Windows не требует таких настроек, как описано выше. Учитывая хост LDAP-сервера в значении
authentication_ldap_simple_server_host, библиотека LDAP Windows выполняет поиск во всех доменах и пытается выполнить аутентификацию.
-
authentication_ldap_simple_server_portФормат командной строки --authentication-ldap-simple-server-port=port_numСистемная переменная authentication_ldap_simple_server_portОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Целое число Значение по умолчанию 389Минимальное значение 1Максимальное значение 32376Для простой LDAP-аутентификации, номер порта TCP/IP LDAP-сервера.
Если номер порта LDAP настроен как 636 или 3269, плагин использует LDAPS (LDAP по SSL) вместо LDAP. (LDAPS отличается от
startTLS.) -
authentication_ldap_simple_tlsФормат командной строки --authentication-ldap-simple-tls[={OFF|ON}]Системная переменная authentication_ldap_simple_tlsОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Логическое Значение по умолчанию OFFДля простой LDAP-аутентификации, являются ли соединения плагина с LDAP-сервером защищенными. Если эта переменная включена, плагин использует TLS для безопасного подключения к LDAP-серверу. Эта переменная может быть установлена для переопределения конфигурации OpenLDAP TLS по умолчанию; см. LDAP Pluggable Authentication and ldap.conf Если вы включаете эту переменную, вы также можете установить переменную
authentication_ldap_simple_ca_path.Плагины MySQL LDAP поддерживают метод StartTLS, который инициализирует TLS поверх обычного соединения LDAP.
LDAPS можно использовать, установив системную переменную
authentication_ldap_simple_server_port. -
authentication_ldap_simple_user_search_attrФормат командной строки --authentication-ldap-simple-user-search-attr=valueСистемная переменная authentication_ldap_simple_user_search_attrОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Значение по умолчанию uidДля простой LDAP-аутентификации, имя атрибута, который указывает имена пользователей в записях каталога LDAP. Если полное имя пользователя не указано, плагин аутентификации выполняет поиск имени, используя этот атрибут. Например, если значение
authentication_ldap_simple_user_search_attrравноuid, поиск имени пользователяuser1находит записи со значениемuidравнымuser1. -
Формат командной строки --authentication-webauthn-rp-id=valueСистемная переменная authentication_webauthn_rp_idОбласть видимости Глобальная Динамическая Да SET_VARПодсказка применяетсяНет Тип Строка Эта переменная указывает идентификатор доверенной стороны, используемый для установки плагина на стороне сервера, регистрации устройств и аутентификации WebAuthn. Если выполняется попытка аутентификации WebAuthn, и это значение не совпадает с ожидаемым устройством, устройство предполагает, что оно не взаимодействует с правильным сервером, и возникает ошибка. Максимальная длина значения составляет 255 символов.
© 2025 Oracle
Licensed under the GPLv2 License.