除非已安裝適當的伺服器端外掛程式,否則這些變數不可用
authentication_ldap_sasl
用於名稱形式為authentication_ldap_sasl_
的系統變數xxx
authentication_ldap_simple
用於名稱形式為authentication_ldap_simple_
的系統變數xxx
表格 8.29 驗證外掛程式系統變數摘要
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_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=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.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=value
系統變數 authentication_ldap_sasl_group_search_attr
範圍 全域 動態 是 SET_VAR
提示適用否 類型 字串 預設值 cn
對於 SASL LDAP 驗證,指定 LDAP 目錄項目中群組名稱的屬性名稱。如果
authentication_ldap_sasl_group_search_attr
的預設值為cn
,則搜尋會傳回cn
值作為群組名稱。例如,如果uid
值為user1
的 LDAP 項目具有mygroup
的cn
屬性,則搜尋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.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_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=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_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=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.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=value
系統變數 authentication_ldap_simple_group_search_attr
範圍 全域 動態 是 SET_VAR
提示適用否 類型 字串 預設值 cn
對於簡易 LDAP 驗證,這是指定 LDAP 目錄項目中群組名稱的屬性名稱。如果
authentication_ldap_simple_group_search_attr
的預設值為cn
,搜尋會傳回cn
值作為群組名稱。例如,如果uid
值為user1
的 LDAP 項目具有mygroup
的cn
屬性,則對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=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_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.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.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=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
範圍 全域 動態 是 SET_VAR
提示適用否 類型 字串 此變數指定用於伺服器端外掛程式安裝、裝置註冊和 WebAuthn 驗證的信賴方 ID。如果嘗試進行 WebAuthn 驗證,且此值不是裝置預期的值,則裝置會認為它沒有與正確的伺服器通訊,並發生錯誤。最大值長度為 255 個字元。