讓 Apache 呼叫腳本來測試身份驗證?

讓 Apache 呼叫腳本來測試身份驗證?

我想限制對 Apache 提供的某些目錄的存取。我希望客戶端必須輸入使用者名稱和密碼,但隨後我希望 Apache 會取得使用者輸入的使用者名稱和密碼,並將它們作為參數傳遞給我編寫的用於進行驗證的 python 腳本。然後,根據所述腳本的輸出,我希望 Apache 允許或拒絕存取。這可能嗎?

答案1

我知道做到這一點的唯一方法是使用mod_auth_external或者mod_python。第一個允許您實作自訂身份驗證系統;後者為 Apache 提供了一個嵌入式 Python 解釋器,可用於編寫自訂身份驗證腳本。兩者都不是標準的或非常流行的模組。

然而...

最簡單的方法是讓您的身分驗證系統更新 Apache 使用的密碼清單。 Apache 附帶了從 .htpasswd 或 .htdigest 檔案新增/更新/刪除使用者所需的所有工具(將htpasswd或命令掛接到任何使用者管理系統中應該很簡單htdigest)。

或者,您可以mod_auth透過以下模組(Apache 的預設驗證系統)從資料庫讀取資料:

我個人會走這條路,因為它比在單獨的文字檔案中複製使用者密碼雜湊(希望你沒有儲存密碼本身)更優雅,並且創建一個新的身份驗證系統似乎是重新發明輪子。

答案2

您可以使用 .htaccess 來限制對某些目錄的存取。

http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

您需要建立一個從 .htaccess 檔案引用的 htpasswd 文件

http://www.htaccesstools.com/htpasswd-generator/

Python:似乎有一個可以處理 htpasswd 檔案的函式庫:

http://pacopablo.com/wiki/pacopablo/blog/htpasswd-with-python

有關 python 和 htpasswd 的更多資訊:

http://packages.python.org/passlib/lib/passlib.apache.html

我對python不熟悉,無法給你完整的解決方案。不過,我認為這是可能的,而且如果你熟悉 python,並用谷歌搜尋一下,可能不會太複雜。

相關內容