在Web應用中限制用戶須經過權限認證才能登入存取特定網頁的機制,雖然可由程式設計師撰寫程式來實現,但其實Apache網站伺服器本身即提供相當多的認證模組來滿足權限控管的要求。本文介紹各種Apache支援的方式,包括自行建立帳號和密碼資訊、直接利用系統上原有的使用者帳號,以及運用MySQL資料庫來進行權限控管。
在一般的Web應用系統之中,通常會區分為前端系統和後端管理系統二種。前端系統指的是一般使用者均可以使用的系統(即一般所瀏覽的網頁),而後端管理系統即是系統管理者才可以登入使用的系統,後端管理系統通常需要經過權限認證,才能登入管理系統來進行管理。
此種前端系統與後端管理系統的解決方案,通常都得依賴程式設計師撰寫程式來達到權限控管的要求,但如果是使用Apache來當作網站伺服器,該伺服器本身即提供相當多的認證模組來滿足權限控管的要求,亦即不必撰寫任何一行程式即可達到相同的效果。在本解決方案中,期望能使用認證模組達到下列幾項功能:
1. 使用者可自行建立帳號和密碼的資訊來進行權限控管。
2. 使用者可利用系統上的帳號來進行權限控管。
3. 使用者可利用MySQL資料庫來進行權限控管。
解決方案內所需的套件
以Apache模組實作網頁權限認證功能(一)
Apache內建基本驗證機制 快速啟用mod_auth網頁認證?
以mod_auth進行網頁認證的驗證方式,可說是Apache最基本的驗證型式,其利用使用者自行建立的帳號和密碼來進行控管。
以Apache模組實作網頁權限認證功能(二)
直接抓取系統使用者帳號 驗證Apache網頁權限?
利用Apache內建的mod_auth模組來進行網頁認證,須要自行建立相關的帳號及名稱資訊,如果想要讓系統主機上的使用者均可登入,就必須自行利用htpasswd程式手動一筆一筆地建立相關的帳號資訊,在使用上較為不便。有鑑於此,Apache伺服器也針對此種需求提供mod_authnz_external模組搭配pwauth驗證程式,如此即可利用系統上的帳號資訊來進行網頁控管。
以Apache模組實作網頁權限認證功能(三)
用MySQL資料庫 提供Apache控管帳號權限
運用Apache伺服器的mod_authnz_external模組搭配pwauth驗證程式,即可利用系統上原有的使用者帳號來認證進行網頁控管,而不必透過htpasswd程式來一個一個新增帳號。但如此的做法還是不夠彈性,如果能夠利用資料庫來進行帳號控管就更理想,接下來說明如何利用MySQL資料庫來實作網頁認證。