<-
Apache > HTTP Server > 說明文件 > 2.4 版 > 模組

Apache 模組 mod_auth_basic

可用的語言:  英文  |  法文  |  日文  |  韓文 

描述一般 HTTP 驗證
狀態基本
模組識別碼auth_basic_module
來源檔案mod_auth_basic.c
相容性Apache 2.1 以上版本適用

摘要

此模組允許透過查看所提供資料中的使用者,將 HTTP 基本驗證用於限制存取。HTTP 精粹驗證由 mod_auth_digest 提供。此模組通常應與至少一個驗證模組結合使用,例如 mod_authn_file,以及一個授權模組,例如 mod_authz_user

Support Apache!

指令

錯誤修正清單

另請參閱

top

AuthBasicAuthoritative 指令

描述設定是否將授權和驗證授予較低層級的模組
語法AuthBasicAuthoritative On|Off
預設值AuthBasicAuthoritative On
情境目錄、.htaccess
覆寫AuthConfig
狀態基本
模組mod_auth_basic

通常,每個列在 AuthBasicProvider 中的授權模組會嘗試驗證使用者,如果使用者在任一提供者中找不到,則存取會遭到拒絕。將 AuthBasicAuthoritative 指示明確設定為 Off 可以讓驗證和授權傳遞到其他非基於提供者的模組(如果沒有與供應的使用者 ID 相符的使用者 ID 或規則)。僅在將 mod_auth_basic 與未使用 AuthBasicProvider 指示進行組態的第三方模組結合時才需要這樣做。使用此類模組時,處理順序是由模組的原始碼決定的,無法進行組態。

top

AuthBasicFake 指令

描述使用給予的使用者名稱和密碼表達式進行虛擬基本驗證
語法AuthBasicFake off|使用者名稱 [密碼]
預設值
情境目錄、.htaccess
覆寫AuthConfig
狀態基本
模組mod_auth_basic
相容性Apache HTTP Server 2.4.5 及後續版本

指定的使用者名稱和密碼整合到授權標頭中,該標頭會傳遞到 Web 伺服器背後的伺服器或服務。使用者名稱和密碼欄位都使用 運算式分析器 來進行詮釋,這允許使用者名稱和密碼都根據要求的參數來設定。

如果沒有指定密碼,將會使用預設值「密碼」。若要停用 URL 空間的虛擬基本驗證,請指定「AuthBasicFake off」。

在這個範例中,我們傳遞固定的使用者名稱和密碼到後端伺服器。

固定範例

<Location "/demo">
    AuthBasicFake demo demopass
</Location>

在這個範例中,我們傳遞從用戶端憑證中萃取的電子郵件地址,擴充 SSLOptions 指令中的 FakeBasicAuth 選項的功能。與 FakeBasicAuth 選項相同,密碼會設定為固定字串「密碼」。

憑證範例

<Location "/secure">
    AuthBasicFake "%{SSL_CLIENT_S_DN_Email}"
</Location>

擴充上述範例後,我們透過使用固定密語對電子郵件地址進行雜湊並傳遞雜湊到後端伺服器,產生密碼。這可用於進入不支援用戶端憑證的舊有系統。

密碼範例

<Location "/secure">
    AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}"
</Location>

例外範例

<Location "/public">
    AuthBasicFake off
</Location>
top

AuthBasicProvider 指令

描述設定這個位置的驗證提供者
語法AuthBasicProvider 提供者名稱 [提供者名稱] ...
預設值AuthBasicProvider file
情境目錄、.htaccess
覆寫AuthConfig
狀態基本
模組mod_auth_basic

AuthBasicProvider 指令設定用於驗證這個位置 使用者的提供者。預設的 file 提供者由 mod_authn_file 模組實作。務必確認已在伺服器中提供所選的提供者模組。

範例

<Location "/secure">
    AuthType basic
    AuthName "private area"
    AuthBasicProvider  dbm
    AuthDBMType        SDBM
    AuthDBMUserFile    "/www/etc/dbmpasswd"
    Require            valid-user
</Location>

依序查詢供應商直到有供應商找到符合請求使用者名稱的比對,此時這個唯一的供應商將會嘗試檢查密碼。無法驗證密碼不會導致控制權傳遞到後續供應商。

供應商實作於 mod_authn_dbmmod_authn_filemod_authn_dbdmod_authnz_ldapmod_authn_socache

top

AuthBasicUseDigestAlgorithm 指令

描述檢查密碼是否與驗證供應商比對,就像實作摘要式驗證,而非基礎驗證。
語法AuthBasicUseDigestAlgorithm MD5|Off
預設值AuthBasicUseDigestAlgorithm Off
情境目錄、.htaccess
覆寫AuthConfig
狀態基本
模組mod_auth_basic
相容性Apache HTTP Server 2.4.7 及更新版本

通常,在使用基礎驗證時,在 AuthBasicProvider 中列出的供應商會嘗試透過檢查其儲存資料中的使用者名稱和關聯密碼來驗證使用者。已儲存的密碼通常加密過,但並非一定如此;每個供應商可選擇自己的密碼儲存方案。

在使用 AuthDigestProvider 和摘要式驗證時,供應商會執行類似的檢查,在其儲存資料中找到符合的使用者名稱。然而,不同於基礎驗證的情況,與每個已儲存使用者名稱關聯的數值必須是從使用者名稱、區域名稱和密碼組成的一個已加密的字串。(請參閱 RFC 2617 第 3.2.2.2 節 以取得有關用於此加密字串的格式的更多詳細資料。)

由於基礎驗證與摘要式驗證的儲存值存在差異,從摘要式驗證轉換成基礎驗證通常需要為所有使用者指派新的密碼,因為其現有密碼無法從強加於支援摘要式驗證供應商的密碼儲存方案中復原。

設定 AuthBasicUseDigestAlgorithm 指令為 MD5 會讓系統使用與摘要式驗證相同的加密格式檢查使用者的基礎驗證密碼。系統會先將由使用者名稱、區域名稱和密碼組成的字串使用 MD5 雜湊;然後將使用者名稱和這個加密字串傳遞給 AuthBasicProvider 中列出的供應商,就像將 AuthType 設定為 Digest,並且實作摘要式驗證一樣。

透過使用 AuthBasicUseDigestAlgorithm,網站可以從摘要式驗證切換到基礎驗證,而不需要使用者指派新的密碼。

從基本驗證轉換到摘要驗證的相反程序通常無法進行。只有在基本驗證密碼已儲存在純文字或可逆加密方案中時,才有可能恢復密碼並根據摘要驗證密碼儲存方案產生新的資料儲存區。
只有支援摘要驗證的提供者才能在 AuthBasicUseDigestAlgorithm 設定為 MD5 時驗證使用者。如果使用其他提供者會導致錯誤回應,而且伺服器會拒絕存取。

可用的語言:  英文  |  法文  |  日文  |  韓文 

top

留言

注意事項
此處並非問與答區段。置於此處的意見應針對改善文件或伺服器的建議而提出,若意見已實作或被認為無效/離題,我們的管理員可能會將其移除。有關如何管理 Apache HTTP Server 的問題,應轉向 Libera.chat 上的 IRC 頻道 #httpd 詢問,或寄送至我們的 郵件清單