这些变量只有在安装了适当的服务器端插件时才可用:
-
authentication_ldap_sasl
for system variables with names of the formauthentication_ldap_sasl_
xxx
-
authentication_ldap_simple
for system variables with names of the formauthentication_ldap_simple_
xxx
表 8.31 身份验证插件系统变量摘要
-
Command-Line Format --authentication-fido-rp-id=value
Deprecated 是 System Variable 身份验证 FIDO RP ID
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value MySQL
该变量指定了用于 FIDO 设备注册和 FIDO 身份验证的依赖方 ID。如果 FIDO 身份验证尝试并且该值不是 FIDO 设备所期望的值,则设备假设它不是与正确的服务器通信,并出现错误。最大值长度为 255 个字符。
Note该插件变量已弃用,并将在未来 MySQL 版本中删除。它被
身份验证 WebAuthn RP ID
变量所取代,该变量支持 WebAuthn 身份验证。有关信息,请参阅 第 8.4.1.11 节,“WebAuthn 可插拔身份验证”。 -
Command-Line Format --authentication-kerberos-service-key-tab=file_name
System Variable 身份验证 Kerberos 服务密钥表
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 文件名 Default Value datadir/mysql.keytab
服务器端密钥表(“keytab”)文件的名称,包含 Kerberos 服务密钥以身份验证来自客户端的 MySQL 服务票据。如果未设置该变量,默认值为
mysql.keytab
在数据目录中。该文件必须存在并包含服务主体名称(SPN)或身份验证客户端将失败。(SPN 和同一个密钥也必须在 Kerberos 服务器中创建。)该文件可以包含多个服务主体名称及其相应的密钥组合。
该文件必须由 Kerberos 服务器管理员生成,并复制到 MySQL 服务器可以访问的位置。可以使用以下命令验证文件是否正确并正确复制:
klist -k file_name
有关密钥表文件的信息,请参阅 https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html。
-
Command-Line Format --authentication-kerberos-service-principal=name
System Variable 身份验证 Kerberos 服务主体
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value mysql/host_name@realm_name
MySQL 服务器发送给客户端的 Kerberos 服务主体名称(SPN)。
该值由服务名称(
mysql
)、主机名称和领域名称组成。默认值为mysql/
。领域在服务主体名称中启用了 exact 服务密钥的检索。host_name
@realm_name
要使用非默认值,请使用相同的格式设置值。例如,要使用主机名称
krbauth.example.com
和领域MYSQL.LOCAL
,请将身份验证 Kerberos 服务主体
设置为mysql/krbauth.example.com@MYSQL.LOCAL
。服务主体名称和服务密钥必须已经存在于 KDC 服务器管理的数据库中。
可以有服务主体名称仅通过领域名称不同。
-
Command-Line Format --authentication-ldap-sasl-auth-method-name=value
System Variable LDAP SASL 认证方法名称
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value SCRAM-SHA-1
Valid Values SCRAM-SHA-1
SCRAM-SHA-256
GSSAPI
对于 SASL LDAP 认证,认证方法名称。根据这个认证方法,认证插件与 LDAP 服务器之间的通信以确保密码安全。
允许的认证方法值有:
-
SCRAM-SHA-1
:使用 SASL 挑战响应机制。客户端
authentication_ldap_sasl_client
插件与 SASL 服务器通信,使用密码创建挑战并获取 SASL 请求缓冲区,然后将其传递给服务器端authentication_ldap_sasl
插件。客户端和服务器端 SASL LDAP 插件使用 SASL 消息在 LDAP 协议中安全地传输凭证,以避免在 MySQL 客户端和服务器之间发送明文密码。 -
SCRAM-SHA-256
:使用 SASL 挑战响应机制。该方法与
SCRAM-SHA-1
相似,但更加安全。它需要使用 Cyrus SASL 2.1.27 或更高版本构建的 OpenLDAP 服务器。 -
GSSAPI
:使用 Kerberos,一个无密码的票据基于协议。GSSAPI/Kerberos 只在 Linux 环境中支持 MySQL 客户端和服务器的认证方法,在 Linux 环境中应用程序访问 LDAP 使用 Microsoft Active Directory,默认情况下启用 Kerberos。
客户端
authentication_ldap_sasl_client
插件使用 Kerberos 获取服务票据,然后将其传递给服务器端authentication_ldap_sasl
插件。服务器端插件然后与 LDAP 服务器通信,以解释 LDAP 认证消息并检索 LDAP 组。
-
-
Command-Line Format --authentication-ldap-sasl-bind-base-dn=value
System Variable LDAP SASL 绑定基本 DN
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于 SASL LDAP 认证,基本 DN(distinguished name)。该变量可以用来限制搜索范围,通过将其锚定在搜索树中的某个位置(“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 值将导致搜索速度更快,因为它们限制了搜索范围。
-
-
Command-Line Format --authentication-ldap-sasl-bind-root-dn=value
System Variable LDAP SASL 绑定根 DN
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于 SASL LDAP 认证,根 DN(distinguished name)。该变量与
authentication_ldap_sasl_bind_root_pwd
一起使用,作为 LDAP 服务器的认证凭证,以便执行搜索。认证使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户名称是否指定 LDAP 用户 DN:-
如果账户不指定用户DN:
authentication_ldap_sasl
使用authentication_ldap_sasl_bind_root_dn
和authentication_ldap_sasl_bind_root_pwd
执行初始LDAP绑定。(这些变量默认为空,因此如果它们未设置,LDAP服务器必须允许匿名连接。) 结果绑定LDAP句柄用于搜索用户DN,基于客户端用户名。authentication_ldap_sasl
使用用户DN和客户端提供的密码执行第二个绑定。 -
如果账户指定用户DN:在这种情况下,第一个绑定操作是不必要的。
authentication_ldap_sasl
使用用户DN和客户端提供的密码执行单个绑定。这比MySQL账户不指定LDAP用户DN的情况要快。
-
-
authentication_ldap_sasl_bind_root_pwd
Command-Line Format --authentication-ldap-sasl-bind-root-pwd=值
System Variable authentication_ldap_sasl_bind_root_pwd
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于SASL LDAP身份验证,根DN的密码。此变量与
authentication_ldap_sasl_bind_root_dn
一起使用。请参阅该变量的描述。 -
authentication_ldap_sasl_ca_path
Command-Line Format --authentication-ldap-sasl-ca-path=值
System Variable authentication_ldap_sasl_ca_path
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于SASL LDAP身份验证,证书颁发机构文件的绝对路径。指定此文件,以便身份验证插件执行LDAP服务器证书的验证。
Note除了设置
authentication_ldap_sasl_ca_path
变量为文件名外,还需要将适当的证书颁发机构证书添加到文件中,并启用authentication_ldap_sasl_tls
系统变量。这些变量可以设置以覆盖默认的OpenLDAP TLS配置;请参阅LDAP Pluggable Authentication and ldap.conf -
authentication_ldap_sasl_connect_timeout
Command-Line Format --authentication-ldap-sasl-connect-timeout=#
System Variable authentication_ldap_sasl_connect_timeout
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 30
Minimum Value 0
Maximum Value 31536000
Unit 秒 指定MySQL服务器等待连接到LDAP服务器的时间(以秒为单位).
当MySQL账户使用LDAP身份验证时,MySQL服务器尝试建立与LDAP服务器的TCP连接,以便发送LDAP绑定请求。 如果LDAP服务器在配置的时间内没有响应TCP握手,MySQL服务器将放弃TCP握手尝试并发出错误消息。如果超时设置为零,MySQL服务器将忽略该系统变量设置。有关更多信息,请参阅Setting Timeouts for LDAP Pluggable Authentication.
Note如果您将此变量设置为大于主机系统默认值的超时值,则使用较短的系统超时。
-
Command-Line Format --authentication-ldap-sasl-group-search-attr=值
System Variable LDAP SASL 组搜索属性
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value cn
对于 SASL LDAP 身份验证,指定 LDAP 目录条目中组名称的属性名称。如果
LDAP SASL 组搜索属性
的默认值为cn
,则搜索将返回cn
值作为组名称。例如,如果 LDAP 条目具有uid
值user1
,并且具有cn
属性mygroup
,则搜索user1
将返回mygroup
作为组名称。如果您不想进行组或代理身份验证,请将此变量设置为空字符串。
如果组搜索属性为
isMemberOf
,LDAP 身份验证将直接检索用户属性isMemberOf
值并将其分配为组信息。如果组搜索属性不是isMemberOf
,LDAP 身份验证将搜索所有组,其中用户是成员。(后者是默认行为。)这基于 LDAP 组信息可以以两种方式存储:1)组条目可以具有名为memberUid
或member
的属性,值为用户名;2)用户条目可以具有名为isMemberOf
的属性,值为组名称。 -
Command-Line Format --authentication-ldap-sasl-group-search-filter=值
System Variable LDAP SASL 组搜索过滤器
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value (|(&(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 中返回第一个属性值作为组名称。 -
Command-Line Format --authentication-ldap-sasl-init-pool-size=#
System Variable LDAP SASL 初始化池大小
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 0
Maximum Value 32767
Unit 连接 对于 SASL LDAP 身份验证,LDAP 服务器的初始连接池大小。根据 LDAP 服务器的平均并发身份验证请求数选择此变量的值。
插件使用
LDAP SASL 初始化池大小
和LDAP SASL 最大池大小
共同管理连接池:-
当身份验证插件初始化时,它创建
authentication_ldap_sasl_init_pool_size
连接,除非authentication_ldap_sasl_max_pool_size=0
禁用池。 -
如果插件在当前连接池中没有免费连接时收到身份验证请求,插件可以创建新连接,直到最大连接池大小由
authentication_ldap_sasl_max_pool_size
给定。 -
如果插件在池大小已经达到最大值且没有免费连接时收到请求,身份验证失败。
-
当插件卸载时,它关闭所有池连接。
插件系统变量设置的更改可能对池中的连接没有影响。例如,修改 LDAP 服务器主机、端口或 TLS 设置不会影响现有连接。但是,如果原始变量值无效且连接池无法初始化,插件将尝试使用新系统变量值重新初始化池。
如果
authentication_ldap_sasl_max_pool_size=0
禁用池,每个 LDAP 连接由插件打开时使用当前系统变量值。 -
-
authentication_ldap_sasl_log_status
Command-Line Format --authentication-ldap-sasl-log-status=#
System Variable authentication_ldap_sasl_log_status
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1
Minimum Value 1
Maximum Value 6
对于 SASL LDAP 身份验证,错误日志中的日志级别。下表显示了允许的级别值及其含义。
表 8.32 authentication_ldap_sasl_log_status 的日志级别
Option Value Types of Messages Logged 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
Command-Line Format --authentication-ldap-sasl-max-pool-size=#
System Variable authentication_ldap_sasl_max_pool_size
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1000
Minimum Value 0
Maximum Value 32767
Unit 连接 对于 SASL LDAP 身份验证,LDAP 服务器的最大连接池大小。要禁用连接池,请将此变量设置为 0。
此变量与
authentication_ldap_sasl_init_pool_size
一起使用。请参阅该变量的描述。 -
authentication_ldap_sasl_referral
Command-Line Format --身份验证LDAP SASL引用[={OFF|ON}]
System Variable 身份验证_ldap_sasl_referral
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
对于SASL LDAP身份验证,是否启用LDAP搜索引用。请参阅LDAP搜索引用。
此变量可以设置以覆盖默认的OpenLDAP引用配置;请参阅LDAP可插拔身份验证和ldap.conf
-
身份验证_ldap_sasl_response_timeout
Command-Line Format --身份验证-ldap-sasl-response-timeout=#
System Variable 身份验证_ldap_sasl_response_timeout
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 30
Minimum Value 0
Maximum Value 31536000
Unit 秒 指定MySQL服务器等待LDAP服务器响应LDAP绑定请求的时间(以秒为单位)。
当MySQL帐户使用LDAP身份验证时,MySQL服务器将发送LDAP绑定请求到LDAP服务器。如果LDAP服务器在配置的时间内没有响应请求,MySQL服务器将放弃请求并发出错误消息。如果超时设置为零,MySQL服务器将忽略该系统变量设置。有关更多信息,请参阅设置LDAP可插拔身份验证超时。
-
Command-Line Format --身份验证-ldap-sasl-server-host=主机名
System Variable 身份验证_ldap_sasl_server_host
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 对于SASL LDAP身份验证,LDAP服务器主机。该变量的允许值取决于身份验证方法:
-
对于
身份验证_ldap_sasl_auth_method_name=SCRAM-SHA-1
:LDAP服务器主机可以是主机名或IP地址。 -
对于
身份验证_ldap_sasl_auth_method_name=SCRAM-SHA-256
:LDAP服务器主机可以是主机名或IP地址。
-
-
Command-Line Format --身份验证-ldap-sasl-server-port=端口号
System Variable 身份验证_ldap_sasl_server_port
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 389
Minimum Value 1
Maximum Value 32376
对于SASL LDAP身份验证,LDAP服务器的TCP/IP端口号。
如果LDAP端口号配置为636或3269,插件将使用LDAPS(LDAP over SSL)而不是LDAP。(LDAPS不同于
startTLS
。) -
Command-Line Format --身份验证-ldap-sasl-tls[={OFF|ON}]
System Variable 身份验证_ldap_sasl_tls
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
对于SASL LDAP身份验证,插件是否连接到LDAP服务器的连接是否安全。如果启用了这个变量,插件将使用TLS安全连接到LDAP服务器。此变量可以用来覆盖OpenLDAP TLS配置的默认值;见LDAP可插拔身份验证和ldap.conf如果您启用了这个变量,也可能需要设置
authentication_ldap_sasl_ca_path
变量。MySQL LDAP插件支持StartTLS方法,该方法在普通LDAP连接上初始化TLS。
可以通过设置
authentication_ldap_sasl_server_port
系统变量来使用LDAPS。 -
authentication_ldap_sasl_user_search_attr
Command-Line Format --authentication-ldap-sasl-user-search-attr=value
System Variable authentication_ldap_sasl_user_search_attr
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value uid
对于SASL LDAP身份验证,LDAP目录条目中指定用户名的属性名称。如果未提供用户的区分名称,身份验证插件将使用该属性搜索用户名。例如,如果
authentication_ldap_sasl_user_search_attr
值为uid
,那么搜索用户名user1
将找到uid
值为user1
的条目。 -
authentication_ldap_simple_auth_method_name
Command-Line Format --authentication-ldap-simple-auth-method-name=value
System Variable authentication_ldap_simple_auth_method_name
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value SIMPLE
Valid Values SIMPLE
AD-FOREST
对于简单LDAP身份验证,身份验证方法名称。身份验证插件和LDAP服务器之间的通信根据该身份验证方法进行。
Note对于所有简单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
Command-Line Format --authentication-ldap-simple-bind-base-dn=value
System Variable authentication_ldap_simple_bind_base_dn
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value 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值会导致搜索速度更快,因为它们限制了搜索范围。
-
-
Command-Line Format --身份验证-ldap-simple-bind-root-dn=value
System Variable 身份验证_ldap_simple_bind_root_dn
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于简单LDAP身份验证,根区分名称(DN)。此变量与
身份验证_ldap_simple_bind_root_pwd
一起使用,以便对LDAP服务器进行身份验证,以便执行搜索。身份验证使用一个或两个LDAP绑定操作,具体取决于MySQL帐户是否命名LDAP用户DN:-
如果帐户不命名用户DN:
身份验证_ldap_simple
执行初始LDAP绑定,使用身份验证_ldap_simple_bind_root_dn
和身份验证_ldap_simple_bind_root_pwd
。(这些默认为空,因此如果它们未设置,LDAP服务器必须允许匿名连接。)结果绑定LDAP句柄用于搜索用户DN,基于客户端用户名。身份验证_ldap_simple
执行第二个绑定,使用用户DN和客户端提供的密码。 -
如果帐户命名用户DN:在这种情况下,不需要第一次绑定操作。
身份验证_ldap_simple
执行单个绑定,使用用户DN和客户端提供的密码。这比MySQL帐户不指定LDAP用户DN的情况要快。
-
-
身份验证_ldap_simple_bind_root_pwd
Command-Line Format --身份验证-ldap-simple-bind-root-pwd=value
System Variable 身份验证_ldap_simple_bind_root_pwd
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于简单LDAP身份验证,根区分名称的密码。此变量与
身份验证_ldap_simple_bind_root_dn
一起使用。请参阅该变量的描述。 -
Command-Line Format --身份验证-ldap-simple-ca-path=value
System Variable 身份验证_ldap_simple_ca_path
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL
对于简单LDAP身份验证,证书颁发机构文件的绝对路径。指定此文件,以便身份验证插件验证LDAP服务器证书。
Note除了设置
身份验证_ldap_simple_ca_path
变量为文件名外,还需要将适当的证书颁发机构证书添加到文件中,并启用身份验证_ldap_simple_tls
系统变量。这些变量可以设置以覆盖默认的OpenLDAP TLS配置;请参阅 LDAP Pluggable Authentication and ldap.conf -
身份验证_ldap_simple_connect_timeout
Command-Line Format --身份验证ldap简单连接超时=#
System Variable 身份验证ldap简单连接超时
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 30
Minimum Value 0
Maximum Value 31536000
Unit 秒 指定 MySQL 服务器等待连接到 LDAP 服务器的时间(以秒为单位).
当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器尝试使用 TCP 连接到 LDAP 服务器,以便发送 LDAP 绑定请求。 如果 LDAP 服务器在配置的时间内没有响应 TCP 握手,MySQL 服务器将放弃 TCP 握手尝试并发出错误消息。 如果超时设置为零,MySQL 服务器将忽略该系统变量设置。 有关更多信息,请参阅 设置 LDAP 可插拔身份验证超时.
Note如果您将该变量设置为大于主机系统默认值的超时值,则使用较短的系统超时。
-
Command-Line Format --身份验证ldap简单组搜索属性=value
System Variable 身份验证ldap简单组搜索属性
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value cn
对于简单 LDAP 身份验证,指定组名称的属性名称在 LDAP 目录条目中。 如果 身份验证ldap简单组搜索属性 的默认值为
cn
,搜索将返回cn
值作为组名称。 例如,如果 LDAP 条目具有uid
值为user1
的cn
属性为mygroup
,搜索user1
将返回mygroup
作为组名称。如果组搜索属性为
isMemberOf
,LDAP 身份验证将直接检索用户属性isMemberOf
值并将其分配为组信息。 如果组搜索属性不是isMemberOf
,LDAP 身份验证将搜索所有组,其中用户是成员。 (后者是默认行为。) 这种行为基于 LDAP 组信息可以以两种方式存储:1) 组条目可以具有名为memberUid
或member
的属性,值为用户名;2) 用户条目可以具有名为isMemberOf
的属性,值为组名称。 -
Command-Line Format --身份验证ldap简单组搜索过滤器=value
System Variable 身份验证ldap简单组搜索过滤器
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value (|(&(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 中返回第一个属性值作为组名称。 -
Command-Line Format --authentication-ldap-simple-init-pool-size=#
System Variable LDAP简单身份验证初始池大小
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 0
Maximum Value 32767
Unit 连接 对于简单LDAP身份验证,初始池大小的LDAP服务器连接数。根据LDAP服务器的平均并发身份验证请求次数选择该变量的值。
插件使用
LDAP简单身份验证初始池大小
和LDAP简单身份验证最大池大小
共同管理连接池:-
当身份验证插件初始化时,它创建
LDAP简单身份验证初始池大小
连接,除非LDAP简单身份验证最大池大小=0
禁用池。 -
如果插件收到身份验证请求时没有空闲连接池中的连接,该插件可以创建新的连接,直到最大连接池大小
LDAP简单身份验证最大池大小
。 -
如果插件收到请求时池大小已经达到最大值且没有空闲连接,身份验证失败。
-
当插件卸载时,它关闭所有池连接。
插件系统变量设置的更改可能不会影响池中的现有连接。例如,修改LDAP服务器主机、端口或TLS设置不会影响现有连接。但是,如果原始变量值无效且连接池无法初始化,插件将尝试使用新系统变量值重新初始化池。
如果
LDAP简单身份验证最大池大小=0
禁用池,每个LDAP连接由插件打开时使用当前系统变量值。 -
-
Command-Line Format --authentication-ldap-simple-log-status=#
System Variable LDAP简单身份验证日志状态
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1
Minimum Value 1
Maximum Value 6
对于简单LDAP身份验证,错误日志中的日志级别。下表显示了允许的级别值及其含义。
表 8.33 authentication_ldap_simple_log_status 的日志级别
Option Value Types of Messages Logged 1
无消息 2
错误消息 3
错误和警告消息 4
错误、警告和信息消息 5
与前一个级别相同,另外还有来自MySQL的调试消息 6
与前一个级别相同,另外还有来自LDAP库的调试消息 -
Command-Line Format --authentication-ldap-simple-max-pool-size=#
System Variable LDAP简单身份验证最大池大小
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1000
Minimum Value 0
Maximum Value 32767
Unit 连接 对于简单LDAP身份验证,连接到LDAP服务器的池连接的最大大小。要禁用连接池,请将此变量设置为0。
此变量与
authentication_ldap_simple_init_pool_size
一起使用。请参阅该变量的描述。 -
authentication_ldap_simple_referral
Command-Line Format --authentication-ldap-simple-referral[={OFF|ON}]
System Variable authentication_ldap_simple_referral
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
对于简单LDAP身份验证,是否启用LDAP搜索引用。请参阅LDAP搜索引用。
-
authentication_ldap_simple_response_timeout
Command-Line Format --authentication-ldap-simple-response-timeout=#
System Variable authentication_ldap_simple_response_timeout
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 30
Minimum Value 0
Maximum Value 31536000
Unit 秒 指定MySQL服务器等待LDAP服务器响应LDAP绑定请求的时间(以秒为单位)。
当MySQL帐户使用LDAP身份验证时,MySQL服务器将LDAP绑定请求发送到LDAP服务器。如果LDAP服务器在配置的时间内没有响应请求,MySQL将放弃请求并发出错误消息。如果超时设置为零,MySQL服务器将忽略该系统变量设置。有关更多信息,请参阅设置LDAP可插拔身份验证超时。
-
authentication_ldap_simple_server_host
Command-Line Format --authentication-ldap-simple-server-host=host_name
System Variable authentication_ldap_simple_server_host
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 对于简单LDAP身份验证,LDAP服务器主机。该变量的允许值取决于身份验证方法:
-
对于
authentication_ldap_simple_auth_method_name=SIMPLE
:LDAP服务器主机可以是主机名或IP地址。 -
对于
authentication_ldap_simple_auth_method_name=AD-FOREST
:LDAP服务器主机可以是Active Directory域名。例如,对于LDAP服务器URLldap://example.mem.local:389
,域名可以是mem.local
。Active Directory森林设置可以具有多个域(LDAP服务器IP),这些域可以使用DNS发现。在Unix和类Unix系统上,可能需要进行一些额外的设置以配置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
。
您想使LDAP服务器使用SRV搜索可发现。例如,在命令行上,类似于以下命令的命令应该列出LDAP服务器:
host -t SRV _ldap._tcp.mem.local
执行DNS配置如下:
-
添加到
/etc/resolv.conf
中的一行,以指定提供活动目录信息的名称服务器:nameserver 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.
-
也可能需要在
/etc/hosts
文件中指定 LDAP 服务器的 IP 地址,如果服务器主机无法解析。例如,添加以下行到文件中: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
值中,Windows LDAP 库将搜索所有域并尝试身份验证。 -
-
-
authentication_ldap_simple_server_port
Command-Line Format --authentication-ldap-simple-server-port=port_num
System Variable authentication_ldap_simple_server_port
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 389
Minimum Value 1
Maximum Value 32376
对于简单 LDAP 身份验证,LDAP 服务器的 TCP/IP 端口号。
如果 LDAP 端口号配置为 636 或 3269,插件将使用 LDAPS(LDAP over SSL)而不是 LDAP。(LDAPS 与
startTLS
不同。) -
authentication_ldap_simple_tls
Command-Line Format --authentication-ldap-simple-tls[={OFF|ON}]
System Variable authentication_ldap_simple_tls
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
对于简单 LDAP 身份验证,插件是否使用 TLS 连接到 LDAP 服务器。如果启用此变量,插件将使用 TLS 连接到 LDAP 服务器。此变量可以覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP 可插拔身份验证和 ldap.conf 如果您启用此变量,也可能需要设置
authentication_ldap_simple_ca_path
变量。MySQL LDAP 插件支持 StartTLS 方法,该方法在普通 LDAP 连接上初始化 TLS。
LDAPS 可以通过设置
authentication_ldap_simple_server_port
系统变量来使用。 -
authentication_ldap_simple_user_search_attr
Command-Line Format --authentication-ldap-simple-user-search-attr=value
System Variable authentication_ldap_simple_user_search_attr
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value uid
对于简单 LDAP 身份验证,指定用户名在 LDAP 目录条目中的属性名称。如果未提供用户的区分名称,身份验证插件将使用该属性搜索用户名。例如,如果
authentication_ldap_simple_user_search_attr
值为uid
,则搜索用户名user1
将找到uid
值为user1
的条目。 -
Command-Line Format --authentication-webauthn-rp-id=value
System Variable authentication_webauthn_rp_id
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 此变量指定了用于服务器端插件安装、设备注册和 WebAuthn 身份验证的依赖方 ID。如果尝试 WebAuthn 身份验证且此值不是设备所期望的值,设备将假设它不是与正确的服务器通信,并出现错误。最大值长度为 255 个字符。