我相信可以將 Apache 設定為使用 SQL Server 進行驗證。您提供資料庫連線參數和要執行的查詢。我想合約是這樣的:
如果查詢傳回某些內容,則表示使用者已通過身份驗證,如果查詢結果為空,則表示該使用者未知。
有誰知道我該如何配置這個?
答案1
我剛剛為 Windows 2012 上的 Apache 2.4 解決了這個問題。
取消註解 httpd.conf 中必要的 LoadModule 行:
- authn_dbd_模組
- authn_dbm_模組
- 資料庫模組
與 SQL Server 建立 ODBC 連線:
ODBC 資料來源管理器、系統 DNS、新增...,填寫您的具體信息,並記住「名稱」以供稍後使用。
在 Apache 中設定身份驗證:
DBDriver odbc
DBDParams "datasource=<Name here>,user=...,password=..."
<Location /secure>
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbd
Require valid-user
AuthDBDUserPWQuery "SELECT '$apr1$' + PasswordSalt + '$' + Password FROM <your table> WHERE UserName = %s"
</Location>
希望它能讓您朝著正確的方向前進。
答案2
不知道是否支援mssql。也許如果你把它加到 pam 然後再檢查一下。 mod_auth_mysql 用於 mysql,mod_auth_pgsql 用於 postgresql,mod_auth_dbi 用於通用資料庫介面。