文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁面 (TGZ) - 258.2Kb
手冊頁面 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  可插拔驗證系統變數

8.4.1.12 可插拔驗證系統變數

除非已安裝適當的伺服器端外掛程式,否則這些變數不可用

  • authentication_ldap_sasl 用於名稱為 authentication_ldap_sasl_xxx 形式的系統變數

  • authentication_ldap_simple 用於名稱為 authentication_ldap_simple_xxx 形式的系統變數

表 8.28 驗證外掛程式系統變數摘要

名稱 命令列 選項檔案 系統變數 狀態變數 變數範圍 動態
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=檔案名稱
    系統變數 authentication_kerberos_service_key_tab
    範圍 全域
    動態
    SET_VAR 提示語適用
    類型 檔案名稱
    預設值 datadir/mysql.keytab

    伺服器端金鑰表(keytab)檔案的名稱,其中包含用於驗證從客戶端收到的 MySQL 服務票證的 Kerberos 服務金鑰。檔案名稱應以絕對路徑名稱給出。如果未設定此變數,則預設值為資料目錄中的 mysql.keytab

    該檔案必須存在,並且包含服務主體名稱(SPN)的有效金鑰,否則客戶端的驗證將失敗。(SPN 和相同的金鑰也必須在 Kerberos 伺服器中建立。)該檔案可能包含多個服務主體名稱及其各自的金鑰組合。

    該檔案必須由 Kerberos 伺服器管理員產生,並複製到 MySQL 伺服器可存取的位置。可以使用此命令驗證該檔案是否正確並已正確複製

    klist -k file_name

    有關金鑰表檔案的資訊,請參閱 https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html

  • authentication_kerberos_service_principal

    命令列格式 --authentication-kerberos-service-principal=名稱
    系統變數 authentication_kerberos_service_principal
    範圍 全域
    動態
    SET_VAR 提示語適用
    類型 字串
    預設值 mysql/主機名稱@領域名稱

    MySQL 伺服器傳送給客戶端的 Kerberos 服務主體名稱(SPN)。

    該值由服務名稱(mysql)、主機名稱和領域名稱組成。預設值為 mysql/主機名稱@領域名稱。服務主體名稱中的領域可啟用擷取精確的服務金鑰。

    若要使用非預設值,請使用相同格式設定該值。例如,若要使用主機名稱 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=值
    系統變數 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,一種無密碼和基於票證的協定。

      僅在 Linux 上支援將 GSSAPI/Kerberos 作為 MySQL 用戶端和伺服器的驗證方法。它在應用程式使用預設啟用 Kerberos 的 Microsoft Active Directory 存取 LDAP 的 Linux 環境中很有用。

      用戶端 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=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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 作為群組名稱。

    如果您不想要群組或 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.29 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=值
    系統變數 authentication_ldap_simple_bind_base_dn
    範圍 全域
    動態
    SET_VAR 提示語適用
    類型 字串
    預設值 NULL

    對於簡單 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_simple_bind_root_dn

    命令列格式 --authentication-ldap-simple-bind-root-dn=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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=值
    系統變數 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.30 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=主機名稱
    系統變數 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 的系統上,可能需要額外的設定,才能使用指定 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=值
    系統變數 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 個字元。