Spec-Zone.ru › MySQL Connectors 1.0

4.4 Аутентификация Connector/NET

MySQL Connector/NET реализует различные плагины аутентификации, которые MySQL Server может использовать для аутентификации пользователя. Подключаемая аутентификация позволяет серверу определить, какой плагин применим, основываясь на имени пользователя и имени хоста, которые ваше приложение передает серверу при установлении соединения. Более подробное описание процесса аутентификации см. .

Connector/NET предоставляет следующие плагины и методы аутентификации:

  • authentication_kerberos_client

  • authentication_ldap_sasl_client

  • authentication_oci_client

  • authentication_openid_connect_client

  • authentication_webauthn_client

  • authentication_windows_client

  • caching_sha2_password

  • mysql_clear_password

  • mysql_native_password

  • sha256_password

authentication_kerberos_client

Для общей информации см. .

Приложения и MySQL серверы могут использовать протокол аутентификации Kerberos для аутентификации учетных записей и служб пользователей MySQL Enterprise Edition. С помощью плагина authentication_kerberos_client и сервер могут проверять идентичность друг друга. Пароли никогда не передаются по сети, а сообщения протокола Kerberos защищены от перехвата и повторных атак. Плагин на стороне сервера поддерживается только на Linux.

Примечание

Параметр подключения Defaultauthenticationplugin является обязательным для поддержки аутентификации Kerberos без имени пользователя и пароля (см. Параметры для только классического протокола MySQL).

Доступность и требования к включению аутентификации Kerberos отличаются в зависимости от типа хоста. Connector/NET не предоставляет аутентификацию Kerberos для приложений .NET, работающих на macOS. В Windows режим Kerberos можно установить с помощью параметра подключения KerberosAuthMode (см. Раздел 4.5, «Справочник по параметрам подключения Connector/NET»).

Приложения, работающие на Linux и Windows, участвуют в аутентификации Kerberos на основе следующих интерфейсов:

  • Общий интерфейс прикладных программ для служб безопасности (GSSAPI)

    Минимальная версия:

    • Connector/NET 8.0.26 для подключений к классическому протоколу MySQL. Поддерживается только на Linux.

    • Connector/NET 8.0.32 для подключений к классическому протоколу MySQL через библиотеку MIT Kerberos. Поддерживается только в Windows.

    Библиотека MIT Kerberos должна быть установлена на каждом клиенте для обеспечения аутентификации билетов запросов Connector/NET MySQL сервером. Требуется библиотека libgssapi_krb5.so.2 для Linux. В Windows используйте переменные среды KRB5_CONFIG и KRB5CCNAME для указания местоположения конфигурации и кэша при использовании GSSAPI через библиотеку MIT Kerberos.

    Обзор процесса подключения см. .

  • Интерфейс поставщиков безопасности (SSPI) для Windows

    Минимальная версия: Connector/NET 8.0.27 для подключений к классическому протоколу MySQL. Поддерживается только в Windows.

    Connector/NET использует SSPI/Kerberos для аутентификации. В Windows SSPI реализует GSSAPI. Различия в поведении между SSPI и GSSAPI включают:

    • Конфигурация. Клиенты Windows не используют внешние библиотеки или конфигурации Kerberos. Например, с GSSAPI можно установить время истечения срока действия билета TGT, порт KDC и так далее. С SSPI вы не можете установить ни один из этих параметров.

    • Кэширование билетов TGT. Если вы предоставляете имя пользователя и пароль для аутентификации в режиме SSPI, эти учетные данные могут быть получены из кэша Windows в памяти, но полученные билеты не сохраняются в кэше Kerberos. Новые билеты получаются каждый раз.

    • Аутентификация без имени пользователя и пароля. В режиме SSPI используются имя пользователя и учетные данные пользователя, вошедшего в систему в Windows. Клиент Windows должен быть частью домена Active Directory сервера для успешного входа в систему.

    Обзор процесса подключения см. .

authentication_ldap_sasl_client

Для общей информации см. .

Аутентификация LDAP на основе SASL требует MySQL Enterprise Edition и может использоваться только для установления подключений к классическому протоколу MySQL. Этот протокол аутентификации применяется к приложениям, работающим на Linux, Windows (частичная поддержка), но не на macOS.

Минимальная версия:

  • Connector/NET 8.0.22 (SCRAM-SHA-1) на Linux и Windows.

  • Connector/NET 8.0.23 (SCRAM-SHA-256) на Linux и Windows.

  • Connector/NET 8.0.24 (GSSAPI) только на Linux.

    Библиотека MIT Kerberos должна быть установлена на каждом клиенте для обеспечения аутентификации билетов запросов Connector/NET MySQL сервером. Плагин authentication_ldap_sasl должен быть настроен для использования механизма GSSAPI, а пользователь приложения должен быть идентифицирован следующим образом:

    IDENTIFIED WITH 'authentication_ldap_sasl'

    Требуется библиотека libgssapi_krb5.so.2 для Linux.

authentication_oci_client

Минимальная версия: Connector/NET 8.0.27 только для подключений по классическому протоколу MySQL.

Connector/NET поддерживает подключаемую аутентификацию Oracle Cloud Infrastructure, что позволяет приложениям .NET получать доступ к HeatWave Service безопасным способом без использования паролей. Эта подключаемая аутентификация не поддерживается для .NET Framework 4.5.x реализаций.

Предварительными условиями для этого типа подключения являются доступ к домену, экземпляру Compute, системе БД, подключенной к частной сети, и должным образом сконфигурированным группам, компартментам и политикам. Администратор Oracle Cloud Infrastructure может предоставить базовую настройку для учетных записей пользователей MySQL.

Кроме того, система БД должна иметь установленный и загруженный серверный плагин аутентификации перед попыткой подключения. Connector/NET реализует плагин аутентификации на стороне клиента.

Во время аутентификации плагин на стороне клиента находит конфигурационный файл Oracle Cloud Infrastructure клиента, из которого он получает файл ключа подписи. Местоположение конфигурационного файла можно указать с помощью параметра подключения ociConfigFile; в противном случае используется значение по умолчанию. В Connector/NET 8.0.33 параметр подключения OciConfigProfile позволяет выбрать профиль в конфигурационном файле для использования в процессе аутентификации. Connector/NET затем подписывает токен, полученный от сервера, использует токен для создания SHA256 RSA подписи, которую возвращает на сервер, и ожидает результата процесса аутентификации.

Для поддержки аутентификации Oracle Cloud Infrastructure на основе временных ключей Connector/NET 8.0.33 (и более поздние версии) получает местоположение файла токена из записи security_token_file. Например:

[DEFAULT]
fingerprint=59:8a:0b[...]
key_file=~/.oci/sessions/DEFAULT/oci_api_key.pem
tenancy=ocid1.tenancy.oc1.[...]
region=us-ashburn-1
security_token_file=~/.oci/sessions/DEFAULT/token

Connector/NET отправляет на сервер атрибут JSON (называемый "token") со значением, извлечённым из поля security_token_file. Если целевой файл, на который ссылается профиль, не существует или файл превышает указанное максимальное значение, Connector/NET завершает действие и возвращает исключение с причиной.

Connector/NET отправляет пустое значение токена в JSON-загрузке, если:

  • Файл токена безопасности пуст.

  • Найден параметр конфигурации security_token_file, но значение в конфигурационном файле пусто.

Во всех остальных случаях Connector/NET добавляет содержимое файла токена безопасности в JSON-документ без изменений.

Возможные ошибки включают:

  • Private key could not be found at location given by OCI configuration entry 'key_file'.

    Connector/NET не смог найти закрытый ключ по указанному адресу.

  • OCI configuration entry 'key_file' does not reference a valid key file.

    Connector/NET не смог загрузить или использовать указанный закрытый ключ.

  • OCI configuration file does not contain a 'fingerprint' or 'key_file' entry.

    В конфигурационном файле отсутствует запись fingerprint, запись key_file или обе.

  • OCI configuration file could not be read

    Connector/NET не смог найти или загрузить конфигурационный файл. Убедитесь, что значение ociConfigFile соответствует расположению файла.

  • The OCI SDK cannot be found or is not installed

    Connector/NET не смог загрузить библиотеку Oracle Cloud Infrastructure SDK во время выполнения.

Connector/NET использует пакет NuGet OCI.DotNetSDK.Common из библиотеки Oracle Cloud Infrastructure SDK для чтения значений записей конфигурационного файла, и этот пакет должен быть доступен.

Подсказка

Для управления размером проекта .NET включайте только необходимый пакет для аутентификации, а не весь набор пакетов в библиотеке.

Для получения подробной информации об использовании и поддержке обратитесь к .

authentication_openid_connect_client

MySQL Enterprise Edition поддерживает аутентификацию на сервере MySQL 9.1.0 (и выше) с использованием OpenID Connect Authentication. Этот метод аутентификации использует пару плагинов, authentication_openid_connect на стороне сервера и authentication_openid_connect_client на стороне клиента.

Connector/NET требует токена идентификации, который передается в параметр подключения OpenidIdentityToken. По умолчанию Connector/NET использует имя пользователя входа в операционную систему, если оно не указано в строке подключения или при создании объекта MySqlConnection.

IdentityToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIi........."

var connStringBuilder = new MySqlConnectionStringBuilder()
{
    UserID = "openid-testuser",
    Server = Settings.Server,
    Port = Settings.Port,
    OpenIdIdentityToken = IdentityToken,
    DefaultAuthenticationPlugin = "authentication_openid_connect_client"
};

using (MySqlConnection conn = new MySqlConnection(connStringBuilder.ConnectionString))
{
    //
}

authentication_webauthn_client

Для получения общей информации обратитесь к .

MySQL Enterprise Edition поддерживает аутентификацию на сервере MySQL 8.2.0 (и выше) с помощью устройств, таких как смарт-карты, защищённые ключи и биометрические считыватели. Этот метод аутентификации основан на стандартах FIDO и FIDO2 и использует пару плагинов, authentication_webauthn на стороне сервера и authentication_webauthn_client на стороне клиента. Connector/NET 8.2.0 поддерживает плагин аутентификации WebAuthn на стороне клиента.

Метод аутентификации WebAuthn может быть использован напрямую для однофакторной аутентификации (1FA) или в сочетании с существующими методами аутентификации MySQL для поддержки учётных записей, использующих 2FA или 3FA. Connector/NET предоставляет механизм обратного вызова, уведомляющий приложение о необходимости взаимодействия пользователя с устройством FIDO/FIDO2 через его аутентификатор. Например:

public void OpenConnection()
{
    using(var connection = new MySQLConnection("host=foo; .. "))
      connection.WebAuthnActionRequested += WebAuthnActionRequested;
      connection.Open();
      // ...
}

public void WebAuthnActionRequested()
{
    Console.WriteLine("Please insert WebAuthn device and perform gesture action for authentication to complete.");
}

Если выполняются следующие требования, Connector/NET уведомляет приложение о необходимости взаимодействия пользователя с устройством FIDO/FIDO2:

  • Устройство FIDO/FIDO2 должно быть зарегистрировано для конкретного фактора аутентификации, связанного с каждой учётной записью пользователя.

  • Приложение, Connector/NET и устройство FIDO/FIDO2 должны быть доступны на одном хосте или в надёжной сети.

  • В Windows приложение должно запускаться с правами администратора для доступа к необходимой библиотеке libfido2, которая должна быть установлена на клиенте.

Процесс аутентификации завершается после истечения разумного промежутка времени без взаимодействия пользователь-устройство.

Примечание

Соответствующий плагин authentication_fido_client и обратный вызов FidoActionCallback (оба добавленные в Connector/NET 8.0.29) были удалены в Connector/NET 8.4.0 в пользу использования аутентификации WebAuthn.

authentication_windows_client

Поддерживается для всех версий Connector/NET. Для получения общей информации см. .

Приложения MySQL Connector/NET могут аутентифицироваться на сервере MySQL с помощью плагина аутентификации Windows Native Authentication. Пользователи, вошедшие в систему Windows, могут подключаться от программ-клиентов MySQL к серверу на основе информации в своей среде без указания дополнительного пароля. Интерфейс соответствует объекту MySql.Data.MySqlClient. Для включения, передайте Integrated Security в строку подключения со значением yes или sspi.

Передача идентификатора пользователя необязательна. При настройке аутентификации Windows создаётся и настраивается пользователь MySQL, который используется аутентификацией Windows. По умолчанию этот идентификатор пользователя называется auth_windows, но может быть определён с другим именем. Если используется имя по умолчанию, то передача идентификатора пользователя в строку подключения из Connector/NET необязательна, так как будет использоваться пользователь auth_windows. В противном случае имя должно быть передано в строку подключения с использованием стандартного элемента идентификатора пользователя.

caching_sha2_password

Минимальная версия: Connector/NET 8.0.11 только для подключений по классическому протоколу MySQL. Для получения общей информации см. .

mysql_clear_password

Минимальная версия: Connector/NET 8.0.22 только для подключений по классическому протоколу MySQL. Для получения общей информации см. .

mysql_clear_password требует безопасного подключения к серверу, что удовлетворяется одним из условий на стороне клиента:

  • Параметр подключения SslMode имеет значение отличное от Disabled или None (устарело в Connector/NET 8.0.29). Значение по умолчанию установлено в Preferred.

  • Параметр подключения ConnectionProtocol установлен в значение unix для сокетов Unix.

mysql_native_password

Поддерживается во всех версиях Connector/NET для установления подключений по классическому протоколу MySQL и протоколу X Protocol. Для получения общей информации см. .

Примечание

Плагин mysql_native_password отключён по умолчанию начиная с MySQL Server 8.4.0 и удалён начиная с MySQL Server 9.0.0.

sha256_password

Минимальная версия: Connector/NET 8.0.11 для подключений к классическому протоколу MySQL или подключений по протоколу X с механизмом MYSQL41 (см. Auth параметр подключения). Для общей информации, см. .

Примечание

Плагин sha256_password устарел начиная с MySQL Server 8.0.16 и подлежит удалению в будущей версии.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-authentication.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API