MySQL 工作台  / 第 5 章 MySQL Workbench 中的连接  / 5.3 管理服务器连接  /  5.3.4 LDAP 和本机 Kerberos 连接方法

5.3.4 LDAP 和本机 Kerberos 连接方法

MySQL 企业版支持使 MySQL 服务器能够使用 LDAP(轻量级目录访问协议)、带 Kerberos 的 LDAP 或本机 Kerberos 对 MySQL 用户进行身份验证的身份验证方法。MySQL Workbench 8.0.27(及更高版本)提供了几种允许您使用 LDAP 和 Kerberos 身份验证的连接方法。

笔记

服务器端 LDAP 和 Kerberos 身份验证插件仅包含在 MySQL 企业版中。这些服务器端插件不包含在 MySQL 社区发行版中。客户端插件包含在所有 MySQL Workbench 发行版中,包括社区发行版。这使来自任何 MySQL Workbench 发行版的用户都可以连接到加载了服务器端插件的服务器。

尽管 MySQL Workbench 在所有发行版中都包含客户端插件,但对 LDAP 和 Kerberos 身份验证的具体支持取决于平台。例如,当 MySQL Workbench 在 macOS 上运行时,不支持身份验证。下表显示了每种连接方法的平台支持。

表 5.1 连接方式和支持平台

连接方式 视窗 Linux 苹果系统
LDAP 用户/密码 支持的 支持的 不支持
LDAP Sasl/Kerberos 不支持 支持的 不支持
本机 Kerberos 支持的 支持的 不支持

通常,必须满足以下要求才能使用 LDAP 或 Kerberos 可插入身份验证:

  • 服务器端和客户端插件需要兼容,必须安装服务器端插件。为尽量减少不兼容的可能性,请定期及时升级服务器和 MySQL Workbench。

  • MySQL Enterprise Edition 必须针对正在使用的身份验证协议类型进行配置。适用于每种身份验证方法的特定库、服务和服务器必须对 MySQL 服务器可用。

    笔记

    MySQL Workbench 将基于 SASL 的 LDAP 身份验证的使用限制为使用通用安全服务应用程序编程接口 (GSSAPI)/Kerberos 身份验证方法的配置。不支持在 LDAP 协议中专门使用 SASL 消息来安全传输凭据。

  • 必须使用指定帐户身份验证方式的语法来创建或更改 MySQL 用户帐户。例如,要创建skylar使用简单 LDAP 身份验证(和 LDAP 用户/密码连接方法)的帐户,请使用类似于以下的语法形式:

    CREATE USER 'skylar'@'localhost' 
      IDENTIFIED WITH authentication_ldap_simple 
      [BY 'LDAP user DN'];

    此示例中的BY子句指示 MySQL 帐户根据哪个 LDAP 条目进行身份验证。专有名称 (DN) 的特定属性可能因 LDAP 服务器而异。

要从 MySQL Workbench 设置客户端连接:

  1. 单击主屏幕上的管理连接图标 ( ) 以打开“管理服务器连接”对话框。

  2. 连接选项卡中,从列表中选择 LDAP 用户/密码LDAP Sasl/Kerberos或 本机 Kerberos连接方法。

    图 5.16 管理服务器连接 - LDAP 和 Kerberos 身份验证

    内容在周围的文字中描述。

满足服务器要求后,您可以从 MySQL Workbench 配置命名连接的参数。本节的其余部分介绍了每种连接方法的设置。

LDAP 用户/密码

MySQL 使用 LDAP 获取用户、凭证和组信息。MySQL Workbench 用户通过提供 MySQL 用户名和 LDAP 密码连接到 MySQL 服务器。

连接方法支持简单的LDAP User/PasswordLDAP 身份验证。客户端插件与 服务器端mysql_clear_password插件兼容 。MySQL Workbench显式为此连接方法 authentication_ldap_simple启用客户端 身份验证插件。mysql_clear_password

开始之前必须加载服务器端插件(请参阅 安装 LDAP 可插入身份验证)。有关 LDAP 身份验证如何与 MySQL 一起工作的概述,请参阅 MySQL 用户的 LDAP 身份验证如何工作

连接方法的连接值LDAP User/Password 包括:

参数选项卡

  • Hostname:与LDAP服务器通信的MySQL服务器的主机名或IP地址。

  • 用户名:待认证帐号的用户名。由 MySQL 认证的 LDAP 用户必须存在于 LDAP 服务器管理的目录中。

  • 密码:用户帐户的 LDAP 密码。如果您在此处不输入密码,当 MySQL Workbench 尝试建立连接时,系统会提示您输入密码。MySQL Workbench 可以将密码存储在保险库中。

  • Default Schema:建立与服务器的连接后,此选项设置成为默认模式的模式,供 MySQL Workbench 的其他部分使用。为简单起见,您可以在初始设置期间将默认架构值留空,并在以后根据需要设置默认值。

SSL 选项卡

此连接方法的 SSL 选项与第 5.3.1 节“标准 TCP/IP 连接方法” 中描述的选项相同 。

重要的

此连接方法的客户端和服务器端插件以明文形式传送密码。不使用密码散列或加密,因此建议在 MySQL Workbench 和服务器之间建立安全连接以防止密码泄露。

LDAP Sasl/Kerberos

LDAP Sasl/Kerberos仅支持连接方法作为 Linux 上的 MySQL 服务器和 MySQL Workbench 的 LDAP 身份验证方法 。使用 GSSAPI 安全抽象接口,这种类型的连接向 Kerberos 进行身份验证以获取服务凭证,然后依次使用这些凭证来实现对其他服务的安全访问。GSSAPI 库和 Kerberos 服务必须对 MySQL 服务器可用(请参阅 GSSAPI/Kerberos 身份验证方法)。

小费

如果托管 MySQL Workbench 的 Linux 环境可以通过 Microsoft Active Directory 访问 LDAP,则默认情况下会启用 Kerberos。

MySQL Workbench 提供了 authentication_ldap_sasl_client客户端插件来支持这种连接方式。它与authentication_ldap_sasl服务器端插件兼容,该插件必须安装在托管连接的 MySQL 服务器上(请参阅 安装 LDAP 可插入身份验证)。此外, authentication_ldap_sasl_auth_method_name 必须设置系统变量才能使用该GSSAPI 方法。有关在使用服务器端插件时可以(或应该)配置的其他变量,请参阅 为 GSSAPI/Kerberos 配置服务器端 SASL LDAP 身份验证插件

连接方法的连接值LDAP Sasl/Kerberos 包括:

参数选项卡

  • 主机名: MySQL 服务器的主机名或 IP 地址,其帐户以 Kerberos 主体名称作为用户名,并使用 SASL LDAP 插件进行身份验证。

  • 用户名:与 MySQL 帐户关联的 Kerberos 主体的用户名。对于 LDAP Kerberos 身份验证,帐户名的用户部分包括主体域,因此 user@ default_realm (例如,skylar@MYSQL.LOCAL)是用户名。

  • 密码:与 MySQL 帐户关联的 Kerberos 主体的密码。如果您在此处不输入密码,当 MySQL Workbench 尝试建立连接时,系统会提示您输入密码。MySQL Workbench 可以将密码存储在保险库中。

  • Default Schema:建立与服务器的连接后,此选项设置成为默认模式的模式,供 MySQL Workbench 的其他部分使用。为简单起见,您可以在初始设置期间将默认架构值留空,并在以后根据需要设置默认值。

SSL 选项卡

此连接方法的 SSL 选项与第 5.3.1 节“标准 TCP/IP 连接方法” 中描述的选项相同 。

高级选项卡

Path to plugin directory选项使您能够指定客户端插件的替代路径 。可能需要替代路径以确保客户端和服务器端插件保持兼容。

本机 Kerberos

connections 方法使用命令Native Kerberos生成的身份验证令牌对 MySQL 用户进行身份验证 。kinit使用这种连接方法,MySQL Workbench 和 MySQL 服务器能够使用 Kerberos 身份验证协议来相互验证用户和 MySQL 服务。这样用户和服务器都能够验证彼此的身份。没有密码通过网络发送,并且 Kerberos 协议消息受到保护以防止窃听和重放攻击。

MySQL Workbench 提供了 authentication_kerberos_client客户端插件来支持这种连接方式。它与authentication_kerberos服务器端插件兼容,必须在托管连接的 MySQL 服务器上安装和加载该插件(请参阅 安装 Kerberos 可插入身份验证)。

有关服务器配置设置详细信息和 Kerberos 身份验证的操作概述,请参阅:

连接方法的连接值Native Kerberos 包括:

参数选项卡

  • 主机名: MySQL 服务器的主机名或 IP 地址,其帐户以 Kerberos 主体名称作为用户名,并使用 Kerberos 插件进行身份验证。

  • 用户名:与 MySQL 帐户关联的用户名。

    客户端 Kerberos 身份验证插件结合您提供的用户名(例如, skylar)和用户帐户中指定的领域(例如,MYSQL.LOCAL)来构造用户主体名称 (UPN),例如 skylar@MYSQL.LOCAL。客户端插件使用 UPN 和密码获取票证授予票证 (TGT),使用 TGT 获取 MySQL 服务票证 (ST),并使用 ST 向 MySQL 服务器进行身份验证。

  • 密码:与 MySQL 帐户关联的密码。如果您在此处不输入密码,当 MySQL Workbench 尝试建立连接时,系统会提示您输入密码。MySQL Workbench 可以将密码存储在保险库中。

    笔记

    如果该kinit命令用于验证 Kerberos 主体名称(在 MySQL Workbench 之外),则 MySQL Workbench 会在不检查(或提示)密码的情况下授权用户。即使密码存储在保管库中,此行为也适用。

  • Default Schema:建立与服务器的连接后,此选项设置成为默认模式的模式,供 MySQL Workbench 的其他部分使用。为简单起见,您可以在初始设置期间将默认架构值留空,并在以后根据需要设置默认值。

SSL 选项卡

此连接方法的 SSL 选项与第 5.3.1 节“标准 TCP/IP 连接方法” 中描述的选项相同 。

高级选项卡

Path to plugin directory选项使您能够指定客户端插件的替代路径 。可能需要替代路径以确保客户端和服务器端插件保持兼容。