除非安装了适当的服务器端插件,否则这些变量是不可用的:
authentication_ldap_sasl
对于具有形式名称的系统变量authentication_ldap_sasl_
xxx
authentication_ldap_simple
对于具有形式名称的系统变量authentication_ldap_simple_
xxx
表6.29认证插件系统变量汇总
-
命令行格式 ——authentication-fido-rp-id =值
介绍了 8.0.27 系统变量 authentication_fido_rp_id
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 MySQL
此变量指定用于FIDO设备注册和FIOD身份验证的依赖方ID。如果尝试了FIDO身份验证,而该值不是FIDO设备所期望的值,则设备假定它没有与正确的服务器通信,并发生错误。最大长度为255个字符。
authentication_kerberos_service_key_tab
命令行格式 ——authentication-kerberos-service-key-tab = file_name
介绍了 8.0.26 系统变量 authentication_kerberos_service_key_tab
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 文件名称 默认值 datadir / mysql.keytab
服务器端键表的名称(”keytab”)文件,该文件包含Kerberos服务密钥,用于验证从客户端收到的MySQL服务票据。文件名应该作为绝对路径名给出。如果未设置此变量,则默认为
mysql.keytab
在数据目录中。该文件必须存在并包含服务主体名称(SPN)的有效密钥,否则客户端的身份验证将失败。(还必须在Kerberos服务器中创建SPN和相同的密钥。)该文件可能包含多个服务主体名称及其各自的键组合。
该文件必须由Kerberos服务器管理员生成,并复制到MySQL服务器可以访问的位置。可以使用以下命令验证文件,以确保它是正确的并被正确复制:
中- kfile_name
有关keytab文件的信息,请参见https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html.
authentication_kerberos_service_principal
命令行格式 ——authentication-kerberos-service-principal =名字
介绍了 8.0.26 系统变量 authentication_kerberos_service_principal
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 mysql / host_name@realm_name
MySQL服务器发送给客户机的Kerberos服务主体名称(SPN)。
该值由服务名(
mysql
)、一个主机名和一个域名。默认值为mysql /
.服务主体名称中的领域允许检索确切的服务键。host_name
@realm_name
若要使用非默认值,请使用相同的格式设置该值。例如,使用的主机名
krbauth.example.com
这是一个MYSQL。当地的
,设置authentication_kerberos_service_principal
来mysql / krbauth.example.com@MYSQL.LOCAL
.服务主体名称和服务密钥必须已经存在于KDC服务器管理的数据库中。
服务主体名称可能只与领域名称不同。
authentication_ldap_sasl_auth_method_name
命令行格式 ——authentication-ldap-sasl-auth-method-name =值
系统变量 authentication_ldap_sasl_auth_method_name
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 SCRAM-SHA-1
有效值(≥8.0.23) SCRAM-SHA-1
安全- sha - 256
GSSAPI
有效值(≥8.0.20,≤8.0.22) SCRAM-SHA-1
GSSAPI
有效值(≤8.0.19) SCRAM-SHA-1
对于SASL LDAP认证,认证方法名称。认证插件和LDAP服务器之间的通信就是按照这种认证方式进行的,保证了密码的安全性。
这些认证方法值是允许的:
SCRAM-SHA-1
:使用SASL挑战-响应机制。客户端
authentication_ldap_sasl_client
插件与SASL服务器通信,使用密码创建一个挑战并获得一个SASL请求缓冲区,然后将这个缓冲区传递到服务器端authentication_ldap_sasl
插件。客户端和服务器端SASL LDAP插件使用SASL消息在LDAP协议中安全传输凭证,以避免在MySQL客户端和服务器之间发送明文密码。安全- sha - 256
:使用SASL挑战-响应机制。这种方法类似于
SCRAM-SHA-1
,但更安全。它在MySQL 8.0.23及更高版本中可用。它需要使用Cyrus SASL 2.1.27或更高版本构建的OpenLDAP服务器。GSSAPI
:使用Kerberos,这是一种无密码和基于票据的协议。GSSAPI/Kerberos仅在Linux上支持作为MySQL客户端和服务器的身份验证方法。它在应用程序使用Microsoft Active Directory访问LDAP的Linux环境中非常有用,Microsoft Active Directory默认启用了Kerberos。
客户端
authentication_ldap_sasl_client
插件从Kerberos使用票证授权票证(TGT)获得服务票证,但不直接使用LDAP服务。服务器端authentication_ldap_sasl
plugin在客户端插件和LDAP服务器之间路由Kerberos消息。使用这样获得的凭据,服务器端插件与LDAP服务器通信,解释LDAP身份验证消息并检索LDAP组。
authentication_ldap_sasl_bind_base_dn
命令行格式 ——authentication-ldap-sasl-bind-base-dn =值
系统变量 authentication_ldap_sasl_bind_base_dn
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于SASL LDAP认证,基本区别名(DN)。此变量可用于限制搜索的范围,方法是将搜索锚定在某个位置”基地”)在搜索树中。
假设一组LDAP用户条目的成员都具有以下形式:
uid =user_nameou =人,dc =例子,dc = com
另一组LDAP用户条目的成员都具有以下形式:
uid =user_nameou = Admin, dc =示例中,dc = com
然后像这样搜索不同的基准DN值:
如果基准DN为
ou =人,dc =例子,dc = com
:搜索只在第一个集合中找到用户项。如果基准DN为
ou = Admin, dc =示例中,dc = com
:搜索只在第二个集合中找到用户项。如果基准DN为
ou = dc =示例中,dc = com
:在第一个或第二个集合中查找用户项。
一般来说,更特定的基准DN值会导致更快的搜索,因为它们限制了更多的搜索范围。
authentication_ldap_sasl_bind_root_dn
命令行格式 ——authentication-ldap-sasl-bind-root-dn =值
系统变量 authentication_ldap_sasl_bind_root_dn
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于SASL LDAP认证,根区别名(DN)。此变量与
authentication_ldap_sasl_bind_root_pwd
作为向LDAP服务器进行身份验证的凭据,以便执行搜索。认证使用一个或两个LDAP绑定操作,这取决于MySQL帐户名称是否为LDAP用户DN:如果帐号没有指定用户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帐户不指定LDAP用户DN要快。
authentication_ldap_sasl_bind_root_pwd
命令行格式 ——authentication-ldap-sasl-bind-root-pwd =值
系统变量 authentication_ldap_sasl_bind_root_pwd
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于SASL LDAP身份验证,为根惟一名称的密码。此变量与
authentication_ldap_sasl_bind_root_dn
.参见该变量的描述。authentication_ldap_sasl_ca_path
命令行格式 ——authentication-ldap-sasl-ca-path =值
系统变量 authentication_ldap_sasl_ca_path
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于SASL LDAP身份验证,为证书颁发机构文件的绝对路径。如果希望身份验证插件执行LDAP服务器证书的验证,则指定此文件。
请注意除了设置
authentication_ldap_sasl_ca_path
变量设置为文件名时,必须将适当的证书颁发机构证书添加到文件中,并启用authentication_ldap_sasl_tls
系统变量。可以设置这些变量来覆盖默认的OpenLDAP TLS配置;看到LDAP可插入认证和LDAP .confauthentication_ldap_sasl_group_search_attr
命令行格式 ——authentication-ldap-sasl-group-search-attr =值
系统变量 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
或成员
具有用户名的值;2)一个用户条目可以有一个名为的属性isMemberOf
使用组名的值。authentication_ldap_sasl_group_search_filter
命令行格式 ——authentication-ldap-sasl-group-search-filter =值
系统变量 authentication_ldap_sasl_group_search_filter
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 (| (& (objectClass = posixGroup) (memberUid = % s)) (& (objectClass =集团)(会员= % s)))
对于SASL LDAP身份验证,自定义组搜索过滤器。
搜索过滤器值可以包含
{UA}
而且{UD}
表示用户名和完整的用户DN。例如,{UA}
替换为用户名,例如“admin”
,而{UD}
替换为使用完整DN,例如“uid = admin, ou =人,dc =示例中,dc = com”
.以下为默认值,同时支持OpenLDAP和Active Directory:(| (& (objectClass = posixGroup) (memberUid = {UA})) (& (objectClass =集团)(会员= {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
禁用池功能。如果插件在当前连接池中没有空闲连接时收到一个anthentication请求,插件可以创建一个新的连接,最大连接池大小由
authentication_ldap_sasl_max_pool_size
.如果插件在池大小已达到最大且没有空闲连接时接收请求,则身份验证失败。
当插件卸载时,它关闭所有池连接。
对插件系统变量设置的更改可能对池中已经存在的连接没有影响。例如,修改LDAP服务器的主机、端口或TLS设置不会影响现有的连接。但是,如果原始变量值无效且无法初始化连接池,则插件将尝试为下一个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
最大值(≥8.0.18) 6
最大值(≤8.0.17) 5
对于SASL LDAP身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。
表6.30 authentication_ldap_sasl_log_status的日志级别
选项值 记录的消息类型 1
没有消息 2
错误消息 3.
错误和警告消息 4
错误、警告和信息消息 5
与上一层相同,加上来自MySQL的调试消息 6
与上一层相同,加上来自LDAP库的调试消息 MySQL 8.0.18版本的日志级别为6。
在客户端,可以将消息记录到标准输出
AUTHENTICATION_LDAP_CLIENT_LOG
环境变量。允许和默认值与for相同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[={|在}]
介绍了 8.0.20 系统变量 authentication_ldap_sasl_referral
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 布尔 默认值 从
对于SASL LDAP认证,是否启用LDAP搜索转介。看到LDAP搜索推荐.
可以设置此变量以覆盖默认的OpenLDAP引用配置;看到LDAP可插入认证和LDAP .conf
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 =安全- 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认证,LDAP服务器的TCP/IP端口号。
从MySQL 8.0.14开始,如果LDAP端口号被配置为636或3269,插件将使用LDAPS (LDAP over SSL)而不是LDAP。LDAPS不同于
startTLS
.)-
命令行格式 ——authentication-ldap-sasl-tls[={|在}]
系统变量 authentication_ldap_sasl_tls
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 布尔 默认值 从
对于SASL LDAP认证,插件连接到LDAP服务器是否安全。如果启用了此变量,则插件使用TLS安全地连接到LDAP服务器。可以设置此变量以覆盖默认的OpenLDAP TLS配置;看到LDAP可插入认证和LDAP .conf如果启用此变量,您可能还希望设置
authentication_ldap_sasl_ca_path
变量。MySQL LDAP插件支持StartTLS方法,该方法在普通LDAP连接的顶部初始化TLS。
从MySQL 8.0.14开始,可以通过设置
authentication_ldap_sasl_server_port
系统变量。 authentication_ldap_sasl_user_search_attr
命令行格式 ——authentication-ldap-sasl-user-search-attr =值
系统变量 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 =值
系统变量 authentication_ldap_simple_auth_method_name
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 简单的
有效值 简单的
ad森林
对于简单的LDAP身份验证,验证方法名称。认证插件和LDAP服务器之间的通信就是按照这种认证方式进行的。
请注意对于所有简单的LDAP身份验证方法,建议还设置TLS参数,以要求通过安全连接与LDAP服务器通信。
这些认证方法值是允许的:
简单的
:使用简单LDAP认证。该方法使用一个或两个LDAP绑定操作,具体取决于MySQL帐户是否使用LDAP用户专有名。参见authentication_ldap_simple_bind_root_dn
.ad森林
:一种变体简单的
这样,身份验证将搜索Active Directory林中的所有域,并对每个Active Directory域执行LDAP绑定,直到在某个域中找到用户为止。
authentication_ldap_simple_bind_base_dn
命令行格式 ——authentication-ldap-simple-bind-base-dn =值
系统变量 authentication_ldap_simple_bind_base_dn
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于简单的LDAP身份验证,使用基本区别名(DN)。此变量可用于限制搜索的范围,方法是将搜索锚定在某个位置”基地”)在搜索树中。
假设一组LDAP用户条目的成员都具有以下形式:
uid =user_nameou =人,dc =例子,dc = com
另一组LDAP用户条目的成员都具有以下形式:
uid =user_nameou = Admin, dc =示例中,dc = com
然后像这样搜索不同的基准DN值:
如果基准DN为
ou =人,dc =例子,dc = com
:搜索只在第一个集合中找到用户项。如果基准DN为
ou = Admin, dc =示例中,dc = com
:搜索只在第二个集合中找到用户项。如果基准DN为
ou = dc =示例中,dc = com
:在第一个或第二个集合中查找用户项。
一般来说,更特定的基准DN值会导致更快的搜索,因为它们限制了更多的搜索范围。
authentication_ldap_simple_bind_root_dn
命令行格式 ——authentication-ldap-simple-bind-root-dn =值
系统变量 authentication_ldap_simple_bind_root_dn
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于简单的LDAP身份验证,使用根区别名(DN)。此变量与
authentication_ldap_simple_bind_root_pwd
作为向LDAP服务器进行身份验证的凭据,以便执行搜索。认证使用一个或两个LDAP绑定操作,这取决于MySQL帐户名称是否为LDAP用户DN:如果帐号没有指定用户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帐户不指定LDAP用户DN要快。
authentication_ldap_simple_bind_root_pwd
命令行格式 ——authentication-ldap-simple-bind-root-pwd =值
系统变量 authentication_ldap_simple_bind_root_pwd
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于简单的LDAP身份验证,为根惟一名称的密码。此变量与
authentication_ldap_simple_bind_root_dn
.参见该变量的描述。authentication_ldap_simple_ca_path
命令行格式 ——authentication-ldap-simple-ca-path =值
系统变量 authentication_ldap_simple_ca_path
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 零
对于简单的LDAP身份验证,为证书颁发机构文件的绝对路径。如果希望身份验证插件执行LDAP服务器证书的验证,则指定此文件。
请注意除了设置
authentication_ldap_simple_ca_path
变量设置为文件名时,必须将适当的证书颁发机构证书添加到文件中,并启用authentication_ldap_simple_tls
系统变量。可以设置这些变量来覆盖默认的OpenLDAP TLS配置;看到LDAP可插入认证和LDAP .confauthentication_ldap_simple_group_search_attr
命令行格式 ——authentication-ldap-simple-group-search-attr =值
系统变量 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
或成员
具有用户名的值;2)一个用户条目可以有一个名为的属性isMemberOf
使用组名的值。authentication_ldap_simple_group_search_filter
命令行格式 ——authentication-ldap-simple-group-search-filter =值
系统变量 authentication_ldap_simple_group_search_filter
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 (| (& (objectClass = posixGroup) (memberUid = % s)) (& (objectClass =集团)(会员= % s)))
对于简单的LDAP身份验证,自定义组搜索过滤器。
搜索过滤器值可以包含
{UA}
而且{UD}
表示用户名和完整的用户DN。例如,{UA}
替换为用户名,例如“admin”
,而{UD}
替换为使用完整DN,例如“uid = admin, ou =人,dc =示例中,dc = com”
.以下为默认值,同时支持OpenLDAP和Active Directory:(| (& (objectClass = posixGroup) (memberUid = {UA})) (& (objectClass =集团)(会员= {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
.如果插件在池大小已达到最大且没有空闲连接时接收请求,则身份验证失败。
当插件卸载时,它关闭所有池连接。
对插件系统变量设置的更改可能对池中已经存在的连接没有影响。例如,修改LDAP服务器的主机、端口或TLS设置不会影响现有的连接。但是,如果原始变量值无效且无法初始化连接池,则插件将尝试为下一个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
最大值(≥8.0.18) 6
最大值(≤8.0.17) 5
对于简单的LDAP身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。
表6.31 authentication_ldap_simple_log_status的日志级别
选项值 记录的消息类型 1
没有消息 2
错误消息 3.
错误和警告消息 4
错误、警告和信息消息 5
与上一层相同,加上来自MySQL的调试消息 6
与上一层相同,加上来自LDAP库的调试消息 MySQL 8.0.18版本的日志级别为6。
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[={|在}]
介绍了 8.0.20 系统变量 authentication_ldap_simple_referral
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 布尔 默认值 从
对于简单LDAP认证,是否启用LDAP搜索引用。看到LDAP搜索推荐.
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 =简单
: LDAP服务器的主机可以是主机名或IP地址。为
authentication_ldap_simple_auth_method_name = ad森林
.LDAP服务器主机可以是Active Directory域名。例如,对于的LDAP服务器URLldap: / / example.mem.local: 389
,域名可以为mem.local
.Active Directory林设置可以有多个域(LDAP服务器ip),可以使用DNS发现这些域。在Unix和类Unix系统上,可能需要一些额外的设置来使用SRV记录配置DNS服务器,SRV记录为Active Directory域指定LDAP服务器。有关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
.
您希望使用SRV搜索可以发现LDAP服务器。例如,在命令行中,这样的命令应该列出LDAP服务器:
host -t SRV _ldap._tcp.mem.local
DNS的配置如下:
添加一行
/etc/resolv.conf
指定提供Active Directory域信息的名称服务器:命名服务器10.172.166.100
为名称服务器配置适当的区域文件,为LDAP服务器配置SRV记录:
_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。
中为LDAP服务器指定IP地址可能也是必要的
设置
如果服务器主机无法解析。例如,在文件中添加如下代码行:10.172.166.101 ldap1.mem。Local 10.172.166.102 ldap2.mem. Local。Local 10.172.166.103 ldap3.mem.local
通过如上所述的DNS配置,服务器端LDAP插件可以发现LDAP服务器并尝试在所有域中进行身份验证,直到身份验证成功或没有更多的服务器为止。
Windows不需要上述设置。中的LDAP服务器主机
authentication_ldap_simple_server_host
值时,Windows LDAP库将搜索所有域并尝试身份验证。
authentication_ldap_simple_server_port
命令行格式 ——authentication-ldap-simple-server-port = port_num
系统变量 authentication_ldap_simple_server_port
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 整数 默认值 389
最小值 1
最大值 32376
对于简单的LDAP身份验证,LDAP服务器的TCP/IP端口号。
从MySQL 8.0.14开始,如果LDAP端口号被配置为636或3269,插件将使用LDAPS (LDAP over SSL)而不是LDAP。LDAPS不同于
startTLS
.)authentication_ldap_simple_tls
命令行格式 ——authentication-ldap-simple-tls[={|在}]
系统变量 authentication_ldap_simple_tls
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 布尔 默认值 从
对于简单的LDAP身份验证,插件到LDAP服务器的连接是否安全。如果启用了此变量,则插件使用TLS安全地连接到LDAP服务器。可以设置此变量以覆盖默认的OpenLDAP TLS配置;看到LDAP可插入认证和LDAP .conf如果启用此变量,您可能还希望设置
authentication_ldap_simple_ca_path
变量。MySQL LDAP插件支持StartTLS方法,该方法在普通LDAP连接的顶部初始化TLS。
从MySQL 8.0.14开始,可以通过设置
authentication_ldap_simple_server_port
系统变量。authentication_ldap_simple_user_search_attr
命令行格式 ——authentication-ldap-simple-user-search-attr =值
系统变量 authentication_ldap_simple_user_search_attr
范围 全球 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 uid
对于简单的LDAP身份验证,在LDAP目录条目中指定用户名的属性的名称。如果未提供用户专有名称,身份验证插件将使用此属性搜索该名称。例如,如果
authentication_ldap_simple_user_search_attr
值是uid
,搜索用户名user1
查找具有uid
的价值user1
.