文档主页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  可插拔身份验证系统变量

8.4.1.13 可插拔身份验证系统变量

除非安装了相应的服务器端插件,否则这些变量不可用

  • authentication_ldap_sasl 用于名称格式为 authentication_ldap_sasl_xxx 的系统变量

  • authentication_ldap_simple 用于名称格式为 authentication_ldap_simple_xxx 的系统变量

表 8.29 身份验证插件系统变量摘要

名称 命令行 选项文件 系统变量 状态变量 变量范围 动态
authentication_kerberos_service_key_tab 全局
authentication_kerberos_service_principal 全局
authentication_ldap_sasl_auth_method_name 全局
authentication_ldap_sasl_bind_base_dn 全局
authentication_ldap_sasl_bind_root_dn 全局
authentication_ldap_sasl_bind_root_pwd 全局
authentication_ldap_sasl_ca_path 全局
authentication_ldap_sasl_connect_timeout 全局
authentication_ldap_sasl_group_search_attr 全局
authentication_ldap_sasl_group_search_filter 全局
authentication_ldap_sasl_init_pool_size 全局
authentication_ldap_sasl_log_status 全局
authentication_ldap_sasl_max_pool_size 全局
authentication_ldap_sasl_referral 全局
authentication_ldap_sasl_response_timeout 全局
authentication_ldap_sasl_server_host 全局
authentication_ldap_sasl_server_port 全局
authentication_ldap_sasl_tls 全局
authentication_ldap_sasl_user_search_attr 全局
authentication_ldap_simple_auth_method_name 全局
authentication_ldap_simple_bind_base_dn 全局
authentication_ldap_simple_bind_root_dn 全局
authentication_ldap_simple_bind_root_pwd 全局
authentication_ldap_simple_ca_path 全局
authentication_ldap_simple_connect_timeout 全局
authentication_ldap_simple_group_search_attr 全局
authentication_ldap_simple_group_search_filter 全局
authentication_ldap_simple_init_pool_size 全局
authentication_ldap_simple_log_status 全局
authentication_ldap_simple_max_pool_size 全局
authentication_ldap_simple_referral 全局
authentication_ldap_simple_response_timeout 全局
authentication_ldap_simple_server_host 全局
authentication_ldap_simple_server_port 全局
authentication_ldap_simple_tls 全局
authentication_ldap_simple_user_search_attr 全局
authentication_policy 全局
authentication_webauthn_rp_id 全局
authentication_windows_log_level 全局
authentication_windows_use_principal_name 全局

  • authentication_kerberos_service_key_tab

    命令行格式 --authentication-kerberos-service-key-tab=file_name
    系统变量 authentication_kerberos_service_key_tab
    范围 全局
    动态
    SET_VAR 提示适用
    类型 文件名
    默认值 datadir/mysql.keytab

    包含 Kerberos 服务密钥的服务器端密钥表(keytab)文件的名称,用于验证从客户端接收到的 MySQL 服务票证。文件名应以绝对路径名给出。如果未设置此变量,则默认值为数据目录中的 mysql.keytab

    该文件必须存在,并且包含服务主体名称 (SPN) 的有效密钥,否则客户端身份验证将失败。(SPN 和同一个密钥也必须在 Kerberos 服务器中创建。)该文件可能包含多个服务主体名称及其各自的密钥组合。

    该文件必须由 Kerberos 服务器管理员生成,并复制到 MySQL 服务器可访问的位置。可以使用以下命令验证文件以确保其正确且已正确复制

    klist -k file_name

    有关 keytab 文件的信息,请参阅 https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html

  • authentication_kerberos_service_principal

    命令行格式 --authentication-kerberos-service-principal=name
    系统变量 authentication_kerberos_service_principal
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 mysql/host_name@realm_name

    MySQL 服务器发送给客户端的 Kerberos 服务主体名称 (SPN)。

    该值由服务名称 (mysql)、主机名和域名称组成。默认值为 mysql/host_name@realm_name。服务主体名称中的域可用于检索准确的服务密钥。

    要使用非默认值,请使用相同的格式设置该值。例如,要使用主机名为 krbauth.example.com 且域名为 MYSQL.LOCAL 的值,请将 authentication_kerberos_service_principal 设置为 mysql/[email protected]

    服务主体名称和服务密钥必须已存在于 KDC 服务器管理的数据库中。

    可能存在仅在域名称上有所不同的服务主体名称。

  • authentication_ldap_sasl_auth_method_name

    命令行格式 --authentication-ldap-sasl-auth-method-name=value
    系统变量 authentication_ldap_sasl_auth_method_name
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 SCRAM-SHA-1
    有效值

    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 环境中很有用,在这些环境中,应用程序使用默认情况下启用了 Kerberos 的 Microsoft Active Directory 访问 LDAP。

      客户端 authentication_ldap_sasl_client 插件使用 Kerberos 中的票证授予票证 (TGT) 获取服务票证,但不直接使用 LDAP 服务。服务器端 authentication_ldap_sasl 插件在客户端插件和 LDAP 服务器之间路由 Kerberos 消息。使用由此获得的凭据,服务器端插件随后与 LDAP 服务器通信以解释 LDAP 身份验证消息并检索 LDAP 组。

  • authentication_ldap_sasl_bind_base_dn

    命令行格式 --authentication-ldap-sasl-bind-base-dn=value
    系统变量 authentication_ldap_sasl_bind_base_dn
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于 SASL 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 值会导致更快的搜索,因为它们可以更有效地限制搜索范围。

  • authentication_ldap_sasl_bind_root_dn

    命令行格式 --authentication-ldap-sasl-bind-root-dn=value
    系统变量 authentication_ldap_sasl_bind_root_dn
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于 SASL LDAP 身份验证,该值是根可区分名称 (DN)。此变量与 authentication_ldap_sasl_bind_root_pwd 配合使用,作为对 LDAP 服务器进行身份验证以执行搜索的凭据。身份验证使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否指定 LDAP 用户 DN

    • 如果帐户未指定用户 DN:authentication_ldap_sasl 使用 authentication_ldap_sasl_bind_root_dnauthentication_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

    命令行格式 --authentication-ldap-sasl-bind-root-pwd=value
    系统变量 authentication_ldap_sasl_bind_root_pwd
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于 SASL LDAP 身份验证,该值是根可区分名称的密码。此变量与 authentication_ldap_sasl_bind_root_dn 配合使用。请参阅该变量的描述。

  • authentication_ldap_sasl_ca_path

    命令行格式 --authentication-ldap-sasl-ca-path=value
    系统变量 authentication_ldap_sasl_ca_path
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于 SASL LDAP 身份验证,该值是证书颁发机构文件的绝对路径。如果希望身份验证插件执行 LDAP 服务器证书验证,请指定此文件。

    注意

    除了将 authentication_ldap_sasl_ca_path 变量设置为文件名之外,您还必须将相应的证书颁发机构证书添加到该文件中,并启用 authentication_ldap_sasl_tls 系统变量。可以设置这些变量来覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP Pluggable Authentication and ldap.conf

  • authentication_ldap_sasl_connect_timeout

    命令行格式 --authentication-ldap-sasl-connect-timeout=#
    系统变量 authentication_ldap_sasl_connect_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 0
    最大值 31536000
    单位

    指定 MySQL 服务器使用 TCP 连接到 LDAP 服务器等待的时间(以秒为单位)。

    当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会尝试与 LDAP 服务器建立 TCP 连接,并使用该连接通过连接发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后未响应 TCP 握手,则 MySQL 会放弃 TCP 握手尝试并发出错误消息。如果超时设置值为零,则 MySQL 服务器会忽略此系统变量设置。有关详细信息,请参阅 Setting Timeouts for LDAP Pluggable Authentication.

    注意

    如果您将此变量设置为大于主机系统默认值的超时值,则将使用较短的系统超时值。

  • authentication_ldap_sasl_group_search_attr

    命令行格式 --authentication-ldap-sasl-group-search-attr=value
    系统变量 authentication_ldap_sasl_group_search_attr
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 cn

    对于 SASL LDAP 身份验证,该值是指定 LDAP 目录条目中组名称的属性名称。如果 authentication_ldap_sasl_group_search_attr 的默认值为 cn,则搜索将返回 cn 值作为组名称。例如,如果具有 uid 值为 user1 的 LDAP 条目具有 cn 属性 mygroup,则对 user1 的搜索将返回 mygroup 作为组名称。

    如果要禁用组或代理身份验证,则此变量应为空字符串。

    如果组搜索属性为 isMemberOf,则 LDAP 身份验证会直接检索用户属性 isMemberOf 值并将其分配为组信息。如果组搜索属性不是 isMemberOf,则 LDAP 身份验证会搜索用户是成员的所有组。(后者是默认行为。)此行为基于 LDAP 组信息可以以两种方式存储:1)组条目可以具有名为 memberUidmember 的属性,其值为用户名;2)用户条目可以具有名为 isMemberOf 的属性,其值为组名称。

  • authentication_ldap_sasl_group_search_filter

    命令行格式 --authentication-ldap-sasl-group-search-filter=value
    系统变量 authentication_ldap_sasl_group_search_filter
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 (|(&(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 的第一个属性值作为组名称。

  • 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_sizeauthentication_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
    最大值 6

    对于 SASL LDAP 身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。

    表 8.30 authentication_ldap_sasl_log_status 的日志级别

    选项值 记录的消息类型
    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

    命令行格式 --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[={OFF|ON}]
    系统变量 authentication_ldap_sasl_referral
    范围 全局
    动态
    SET_VAR 提示适用
    类型 布尔值
    默认值 OFF

    对于 SASL LDAP 身份验证,是否启用 LDAP 搜索引用。请参阅 LDAP 搜索引用

    此变量可以设置为覆盖默认的 OpenLDAP 引用配置;请参阅 LDAP 可插拔身份验证和 ldap.conf

  • authentication_ldap_sasl_response_timeout

    命令行格式 --authentication-ldap-sasl-response-timeout=#
    系统变量 authentication_ldap_sasl_response_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 0
    最大值 31536000
    单位

    指定 MySQL 服务器等待 LDAP 服务器响应 LDAP 绑定请求的时间(以秒为单位)。

    当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会向 LDAP 服务器发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间后没有响应请求,则 MySQL 会放弃请求并发出错误消息。如果超时设置为零,则 MySQL 服务器会忽略此系统变量设置。有关更多信息,请参阅 为 LDAP 可插拔身份验证设置超时

  • 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_server_port

    命令行格式 --authentication-ldap-sasl-server-port=port_num
    系统变量 authentication_ldap_sasl_server_port
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 389
    最小值 1
    最大值 32376

    对于 SASL LDAP 身份验证,LDAP 服务器 TCP/IP 端口号。

    如果 LDAP 端口号配置为 636 或 3269,则插件将使用 LDAPS(LDAP over SSL)而不是 LDAP。(LDAPS 不同于 startTLS。)

  • authentication_ldap_sasl_tls

    命令行格式 --authentication-ldap-sasl-tls[={OFF|ON}]
    系统变量 authentication_ldap_sasl_tls
    范围 全局
    动态
    SET_VAR 提示适用
    类型 布尔值
    默认值 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

    命令行格式 --authentication-ldap-sasl-user-search-attr=value
    系统变量 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=value
    系统变量 authentication_ldap_simple_auth_method_name
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 SIMPLE
    有效值

    SIMPLE

    AD-FOREST

    对于简单 LDAP 身份验证,身份验证方法名称。身份验证插件和 LDAP 服务器之间的通信将根据此身份验证方法进行。

    注意

    对于所有简单 LDAP 身份验证方法,建议还设置 TLS 参数以要求与 LDAP 服务器的通信在安全连接上进行。

    允许使用以下身份验证方法值

    • SIMPLE:使用简单 LDAP 身份验证。此方法使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否命名 LDAP 用户区分名称。请参阅 authentication_ldap_simple_bind_root_dn 的描述。

    • AD-FORESTSIMPLE 的变体,以便身份验证搜索 Active Directory 林中的所有域,对每个 Active Directory 域执行 LDAP 绑定,直到在某个域中找到用户。

  • authentication_ldap_simple_bind_base_dn

    命令行格式 --authentication-ldap-simple-bind-base-dn=value
    系统变量 authentication_ldap_simple_bind_base_dn
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 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 值会导致更快的搜索,因为它们可以更有效地限制搜索范围。

  • authentication_ldap_simple_bind_root_dn

    命令行格式 --authentication-ldap-simple-bind-root-dn=value
    系统变量 authentication_ldap_simple_bind_root_dn
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于简单 LDAP 身份验证,根区分名称 (DN)。此变量与 authentication_ldap_simple_bind_root_pwd 结合使用,作为向 LDAP 服务器进行身份验证以执行搜索的凭据。身份验证使用一个或两个 LDAP 绑定操作,具体取决于 MySQL 帐户是否命名 LDAP 用户 DN

    • 如果帐户没有命名用户 DN: authentication_ldap_simple 使用 authentication_ldap_simple_bind_root_dnauthentication_ldap_simple_bind_root_pwd 执行初始 LDAP 绑定。(这些默认情况下都是空的,因此如果未设置,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=value
    系统变量 authentication_ldap_simple_bind_root_pwd
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于简单 LDAP 身份验证,根区分名称的密码。此变量与 authentication_ldap_simple_bind_root_dn 结合使用。请参阅该变量的描述。

  • authentication_ldap_simple_ca_path

    命令行格式 --authentication-ldap-simple-ca-path=value
    系统变量 authentication_ldap_simple_ca_path
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 NULL

    对于简单 LDAP 身份验证,证书颁发机构文件的绝对路径。如果希望身份验证插件执行 LDAP 服务器证书验证,则指定此文件。

    注意

    除了将 authentication_ldap_simple_ca_path 变量设置为文件名外,您还必须将适当的证书颁发机构证书添加到文件中并启用 authentication_ldap_simple_tls 系统变量。这些变量可以设置为覆盖默认的 OpenLDAP TLS 配置;请参阅 LDAP 可插拔身份验证和 ldap.conf

  • authentication_ldap_simple_connect_timeout

    命令行格式 --authentication-ldap-simple-connect-timeout=#
    系统变量 authentication_ldap_simple_connect_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 0
    最大值 31536000
    单位

    指定 MySQL 服务器使用 TCP 连接到 LDAP 服务器等待的时间(以秒为单位)。

    当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会尝试与 LDAP 服务器建立 TCP 连接,并使用该连接通过连接发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间量后未响应 TCP 握手,则 MySQL 会放弃 TCP 握手尝试并发出错误消息。如果超时设置值为零,则 MySQL 服务器会忽略此系统变量设置。有关详细信息,请参阅 Setting Timeouts for LDAP Pluggable Authentication.

    注意

    如果您将此变量设置为大于主机系统默认值的超时值,则将使用较短的系统超时值。

  • authentication_ldap_simple_group_search_attr

    命令行格式 --authentication-ldap-simple-group-search-attr=value
    系统变量 authentication_ldap_simple_group_search_attr
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 cn

    对于简单 LDAP 身份验证,指定 LDAP 目录条目中组名的属性的名称。如果 authentication_ldap_simple_group_search_attr 的默认值为 cn,则搜索将返回 cn 值作为组名。例如,如果具有 uid 值为 user1 的 LDAP 条目的 cn 属性为 mygroup,则对 user1 的搜索将返回 mygroup 作为组名。

    如果组搜索属性为 isMemberOf,则 LDAP 身份验证会直接检索用户属性 isMemberOf 值并将其分配为组信息。如果组搜索属性不是 isMemberOf,则 LDAP 身份验证会搜索用户是成员的所有组。(后者是默认行为。)此行为基于 LDAP 组信息可以以两种方式存储:1)组条目可以具有名为 memberUidmember 的属性,其值为用户名;2)用户条目可以具有名为 isMemberOf 的属性,其值为组名称。

  • authentication_ldap_simple_group_search_filter

    命令行格式 --authentication-ldap-simple-group-search-filter=value
    系统变量 authentication_ldap_simple_group_search_filter
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 (|(&(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 的第一个属性值作为组名称。

  • 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_sizeauthentication_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
    最大值 6

    对于简单的 LDAP 身份验证,写入错误日志的消息的日志级别。下表显示了允许的级别值及其含义。

    表 8.31 authentication_ldap_simple_log_status 的日志级别

    选项值 记录的消息类型
    1 无消息
    2 错误消息
    3 错误和警告消息
    4 错误、警告和信息消息
    5 与前一级相同,另外还有来自 MySQL 的调试消息
    6 与前一级相同,另外还有来自 LDAP 库的调试消息

  • 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[={OFF|ON}]
    系统变量 authentication_ldap_simple_referral
    范围 全局
    动态
    SET_VAR 提示适用
    类型 布尔值
    默认值 OFF

    对于简单的 LDAP 身份验证,是否启用 LDAP 搜索转发。请参阅 LDAP 搜索转发

  • authentication_ldap_simple_response_timeout

    命令行格式 --authentication-ldap-simple-response-timeout=#
    系统变量 authentication_ldap_simple_response_timeout
    范围 全局
    动态
    SET_VAR 提示适用
    类型 整数
    默认值 30
    最小值 0
    最大值 31536000
    单位

    指定 MySQL 服务器等待 LDAP 服务器响应 LDAP 绑定请求的时间(以秒为单位)。

    当 MySQL 帐户使用 LDAP 进行身份验证时,MySQL 服务器会向 LDAP 服务器发送 LDAP 绑定请求。如果 LDAP 服务器在配置的时间后没有响应请求,则 MySQL 会放弃请求并发出错误消息。如果超时设置为零,则 MySQL 服务器会忽略此系统变量设置。有关更多信息,请参阅 为 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=SIMPLE:LDAP 服务器主机可以是主机名或 IP 地址。

    • 对于 authentication_ldap_simple_auth_method_name=AD-FOREST。LDAP 服务器主机可以是 Active Directory 域名。例如,对于 LDAP 服务器 URL ldap://example.mem.local:389,域名可以是 mem.local

      Active Directory 林设置可以有多个域(LDAP 服务器 IP),可以使用 DNS 发现。在 Unix 和类 Unix 系统上,可能需要一些额外的设置来配置 DNS 服务器,使其包含指定 Active Directory 域的 LDAP 服务器的 SRV 记录。有关 DNS SRV 的信息,请参阅 RFC 2782

      假设您的配置具有以下属性

      • 提供有关 Active Directory 域的信息的名称服务器的 IP 地址为 10.172.166.100

      • LDAP 服务器的名称为 ldap1.mem.localldap3.mem.local,IP 地址为 10.172.166.10110.172.166.103

      您希望 LDAP 服务器可以使用 SRV 搜索发现。例如,在命令行中,类似于以下的命令应该列出 LDAP 服务器

      host -t SRV _ldap._tcp.mem.local

      按照以下步骤执行 DNS 配置

      1. 将一行添加到 /etc/resolv.conf 中以指定提供有关 Active Directory 域的信息的名称服务器

        nameserver 10.172.166.100
      2. 使用 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.
      3. 如果无法解析服务器主机,可能还需要在 /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 不需要上述设置。给定 authentication_ldap_simple_server_host 值中的 LDAP 服务器主机,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 端口号。

    如果 LDAP 端口号配置为 636 或 3269,则插件将使用 LDAPS(LDAP over SSL)而不是 LDAP。(LDAPS 不同于 startTLS。)

  • authentication_ldap_simple_tls

    命令行格式 --authentication-ldap-simple-tls[={OFF|ON}]
    系统变量 authentication_ldap_simple_tls
    范围 全局
    动态
    SET_VAR 提示适用
    类型 布尔值
    默认值 OFF

    对于简单的 LDAP 身份验证,插件连接到 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

    命令行格式 --authentication-ldap-simple-user-search-attr=value
    系统变量 authentication_ldap_simple_user_search_attr
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串
    默认值 uid

    对于简单的 LDAP 身份验证,指定 LDAP 目录条目中用户名属性的名称。如果没有提供用户标识名,则身份验证插件将使用此属性搜索名称。例如,如果 authentication_ldap_simple_user_search_attr 值为 uid,则搜索用户名 user1 将找到具有 uid 值为 user1 的条目。

  • authentication_webauthn_rp_id

    命令行格式 --authentication-webauthn-rp-id=value
    系统变量 authentication_webauthn_rp_id
    范围 全局
    动态
    SET_VAR 提示适用
    类型 字符串

    此变量指定用于服务器端插件安装、设备注册和 WebAuthn 身份验证的依赖方 ID。如果尝试进行 WebAuthn 身份验证并且此值不是设备期望的值,则设备会假设它没有与正确的服务器通信,并且会发生错误。最大值长度为 255 个字符。