除非已安裝適當的伺服器端外掛程式,否則這些變數不可用
authentication_ldap_sasl
用於名稱為authentication_ldap_sasl_
形式的系統變數xxx
authentication_ldap_simple
用於名稱為authentication_ldap_simple_
形式的系統變數xxx
表 8.28 驗證外掛程式系統變數摘要
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_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
命令列格式 --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.confauthentication_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) 群組條目可以有名為memberUid
或member
的屬性,其值為使用者名稱;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_size
和authentication_ldap_sasl_max_pool_size
來進行連線池管理。當驗證外掛程式初始化時,它會建立
authentication_ldap_sasl_init_pool_size
個連線,除非authentication_ldap_sasl_max_pool_size=0
,以停用池化功能。如果外掛程式在目前的連線池中沒有可用連線時收到驗證請求,則外掛程式可以建立新的連線,最多可達到
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
最大值 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_auth_method_name=SCRAM-SHA-1
:LDAP 伺服器主機可以是主機名稱或 IP 位址。對於
authentication_ldap_sasl_auth_method_name=SCRAM-SHA-256
:LDAP 伺服器主機可以是主機名稱或 IP 位址。
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[={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-FOREST
:SIMPLE
的變體,驗證會在 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_dn
和authentication_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.confauthentication_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) 群組條目可以有名為memberUid
或member
的屬性,其值為使用者名稱;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_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
最大值 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.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 網域相關資訊的名稱伺服器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 不需要如上所述的設定。根據
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
範圍 全域 動態 是 SET_VAR
提示語適用否 類型 字串 此變數指定用於伺服器端外掛程式安裝、裝置註冊和 WebAuthn 驗證的依賴方 ID。如果嘗試進行 WebAuthn 驗證,而此值不是裝置預期的值,則裝置會假設它沒有與正確的伺服器通訊,並發生錯誤。最大值長度為 255 個字元。