除非已安裝適當的伺服器端外掛程式,否則這些變數不可用
authentication_ldap_sasl用於名稱為authentication_ldap_sasl_形式的系統變數xxxauthentication_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-1SCRAM-SHA-256GSSAPI對於 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有效值 SIMPLEAD-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 個字元。