文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式 Letter) - 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

    伺服器端金鑰表(keytab)檔案的名稱,其中包含 Kerberos 服務金鑰,用於驗證從用戶端接收的 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/krbauth.example.com@MYSQL.LOCAL

    服務主體名稱和服務金鑰必須已存在於 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 環境中很有用,在這些環境中,應用程式使用 Microsoft Active Directory 存取 LDAP,而 Microsoft Active Directory 預設啟用 Kerberos。

      用戶端 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)。此變數可用於透過將搜尋錨定在搜尋樹狀結構中的特定位置(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 值會導致更快的搜尋,因為它們會更限制搜尋範圍。

  • 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 可插拔驗證和 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 伺服器會忽略此系統變數設定。如需詳細資訊,請參閱 設定 LDAP 可插拔驗證的逾時

    注意

    如果您將此變數設定為大於主機系統預設值的逾時值,則會使用較短的系統逾時。

  • 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 項目具有 mygroupcn 屬性,則搜尋 user1 會傳回 mygroup 作為群組名稱。

    如果您不想進行群組或 Proxy 驗證,則此變數應為空字串。

    如果群組搜尋屬性是 isMemberOf,LDAP 驗證會直接擷取使用者屬性 isMemberOf 的值,並將其指定為群組資訊。如果群組搜尋屬性不是 isMemberOf,LDAP 驗證會搜尋使用者所屬的所有群組。(後者為預設行為。) 此行為基於 LDAP 群組資訊的兩種儲存方式:1) 群組項目可以有一個名為 memberUidmember 的屬性,其值為使用者名稱;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=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=主機名稱
    系統變數 authentication_ldap_sasl_server_host
    範圍 全域
    動態
    SET_VAR 提示適用
    類型 字串

    針對 SASL LDAP 驗證,LDAP 伺服器主機。此變數的允許值取決於驗證方法

  • authentication_ldap_sasl_server_port

    命令列格式 --authentication-ldap-sasl-server-port=埠號
    系統變數 authentication_ldap_sasl_server_port
    範圍 全域
    動態
    SET_VAR 提示適用
    類型 整數
    預設值 389
    最小值 1
    最大值 32376

    針對 SASL LDAP 驗證,LDAP 伺服器 TCP/IP 埠號。

    如果 LDAP 埠號設定為 636 或 3269,則插件會使用 LDAPS (透過 SSL 的 LDAP) 而不是 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=值
    系統變數 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 提示適用
    類型 字串
    預設值 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 驗證,這是基礎識別名稱 (Distinguished Name, 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 伺服器會忽略此系統變數設定。如需詳細資訊,請參閱 設定 LDAP 可插拔驗證的逾時

    注意

    如果您將此變數設定為大於主機系統預設值的逾時值,則會使用較短的系統逾時。

  • 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 項目具有 mygroupcn 屬性,則對 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://example.mem.local:389 的 LDAP 伺服器 URL,網域名稱可以是 mem.local

      Active Directory 樹系設定可以有多個網域 (LDAP 伺服器 IP),可以使用 DNS 探索。在 Unix 和類 Unix 系統上,可能需要一些額外的設定來使用指定 Active Directory 網域之 LDAP 伺服器的 SRV 記錄來設定您的 DNS 伺服器。如需有關 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

      您希望使用 SRV 搜尋來探索 LDAP 伺服器。例如,在命令列中,像這樣的命令應該會列出 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 (透過 SSL 的 LDAP) 而不是 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。

    可以透過設定 authentication_ldap_simple_server_port 系統變數來使用 LDAPS。

  • 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=值
    系統變數 authentication_webauthn_rp_id
    範圍 全域
    動態
    SET_VAR 提示適用
    類型 字串

    此變數指定用於伺服器端外掛程式安裝、裝置註冊和 WebAuthn 驗證的信賴方 ID。如果嘗試進行 WebAuthn 驗證,且此值不是裝置預期的值,則裝置會認為它沒有與正確的伺服器通訊,並發生錯誤。最大值長度為 255 個字元。