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 设置客户端连接:
单击主屏幕上的管理连接图标 ( ) 以打开“管理服务器连接”对话框。
-
在连接选项卡中,从列表中选择 LDAP 用户/密码、 LDAP Sasl/Kerberos或 本机 Kerberos连接方法。
满足服务器要求后,您可以从 MySQL Workbench 配置命名连接的参数。本节的其余部分介绍了每种连接方法的设置。
MySQL 使用 LDAP 获取用户、凭证和组信息。MySQL Workbench 用户通过提供 MySQL 用户名和 LDAP 密码连接到 MySQL 服务器。
连接方法支持简单的LDAP User/Password
LDAP 身份验证。客户端插件与
服务器端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
仅支持连接方法作为 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选项使您能够指定客户端插件的替代路径 。可能需要替代路径以确保客户端和服务器端插件保持兼容。
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选项使您能够指定客户端插件的替代路径 。可能需要替代路径以确保客户端和服务器端插件保持兼容。