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

Apache 模組 mod_authn_dbd

可用的語言:  en  |  fr 

說明使用 SQL 資料庫進行使用者驗證
狀態擴充功能
模組識別碼authn_dbd_module
來源檔案mod_authn_dbd.c
相容性可於 Apache 2.1 及更新版本取得

摘要

本模組提供驗證前端,例如 mod_auth_digestmod_auth_basic ,可透過在 SQL 表格中尋找使用者進行驗證。例如,mod_authn_file 提供類似功能。

本模組仰賴 mod_dbd 指定後端資料庫驅動程式和連線參數,並管理資料庫連線。

在使用 mod_auth_basicmod_auth_digest 時,透過 AuthBasicProviderAuthDigestProvider 以及 dbd 值呼叫本模組。

Support Apache!

主題

指令

除錯清單

相關資訊

top

效能和快取

HTTPD 2.2/2.4 中 DBD 驗證的一些使用者回報它會給資料庫帶來問題負載。這很可能是因為一個 HTML 頁面包含數百個物件(例如圖片、腳本等),而每個物件都需要驗證。受到這種問題影響(或擔憂)的使用者應該使用 mod_authn_socache 來快取憑證,並從資料庫中移除大部分負載。

top

組態範例

這個簡單的範例說明在驗證和 DBD 架構的脈絡下如何使用這個模組。

# mod_dbd configuration
# UPDATED to include authentication caching
DBDriver pgsql
DBDParams "dbname=apacheauth user=apache password=xxxxxx"

DBDMin  4
DBDKeep 8
DBDMax  20
DBDExptime 300

<Directory "/usr/www/myhost/private">
  # mod_authn_core and mod_auth_basic configuration
  # for mod_authn_dbd
  AuthType Basic
  AuthName "My Server"

  # To cache credentials, put socache ahead of dbd here
  AuthBasicProvider socache dbd

  # Also required for caching: tell the cache to cache dbd lookups!
  AuthnCacheProvideFor dbd
  AuthnCacheContext my-server

  # mod_authz_core configuration
  Require valid-user

  # mod_authn_dbd SQL query to authenticate a user
  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
</Directory>
top

公開登入資訊

每次向資料庫伺服器進行查詢時,查詢在第一列中傳回的所有欄位值都會放置在環境中,並使用字首「AUTHENTICATE_」的環境變數。

如果資料庫查詢例如回傳使用者的使用者名稱、全名和電話號碼,CGI 程式可以存取這些資訊,無需執行第二次獨立資料庫查詢來收集這些額外資訊。

這可能會大幅簡化部分網路應用程式中需要的編碼和設定。

top

AuthDBDUserPWQuery 指令

說明SQL 查詢以查詢使用者的密碼
語法AuthDBDUserPWQuery 查詢
目錄目錄
狀態擴充功能
模組mod_authn_dbd

AuthDBDUserPWQuery 指令指定 SQL 查詢以查詢指定使用者的密碼。執行 SQL 查詢時,使用者的 ID 會傳遞為單一字串參數。它可以在查詢陳述中使用 %s 格式說明符來參照。

AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"

查詢陳述回傳的第一列第一行值應為含有加密密碼的字串。後續列會略過。如果未回傳任何列,使用者將不會透過 mod_authn_dbd 通過驗證。

查詢陳述回傳的第一列中任何額外的欄位值會儲存為環境變數,名稱格式為 AUTHENTICATE_

加密密碼格式取決於使用的驗證前端(例如 mod_auth_basicmod_auth_digest)。有關更多資訊,請參閱 密碼格式

top

AuthDBDUserRealmQuery 指令

說明SQL 查詢以查詢使用者的密碼雜湊和領域。
語法AuthDBDUserRealmQuery 查詢
目錄目錄
狀態擴充功能
模組mod_authn_dbd

AuthDBDUserRealmQuery 指定 SQL 查詢以在摘要驗證程序中查詢指定使用者的密碼和領域。執行 SQL 查詢時,使用者的 ID 和領域會按此順序傳遞為字串參數。它們可以在查詢陳述中使用 %s 格式說明符來參照。

AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"

查詢陳述回傳的第一列第一行值應為含有加密密碼的字串。後續列會略過。如果未回傳任何列,使用者將不會透過 mod_authn_dbd 通過驗證。

查詢陳述回傳的第一列中任何額外的欄位值會儲存為環境變數,名稱格式為 AUTHENTICATE_

加密密碼格式取決於使用的驗證前端(例如 mod_auth_basicmod_auth_digest)。有關更多資訊,請參閱 密碼格式

可用的語言:  en  |  fr 

top

意見回饋

注意
這不是問與答部分。放置在這裡的意見應指向改善文件或伺服器的建議,如果已實作或被視為無效/離題,我們的管理員可能會將其移除。關於如何管理 Apache HTTP 伺服器應直接尋求我們在 Libera.chat 上的 IRC 頻道 #httpd,或傳送至我們的 郵件清單