在上篇博文中介紹了基于用戶端位址的通路控制,這種方法設定起來相對比較簡單,但是不具備太大的實用價值。在實際應用中,我們大都是希望通過對使用者進行身份驗證進而來進行通路控制,在這篇博文中将主要介紹這種基于使用者的通路控制方法。
在前面介紹IIS的時候曾提到過,在IIS中進行使用者身份驗證有3種方法,按照安全級别由高到低分别是:Windows身份驗證、摘要式身份驗證、基本身份驗證。其中使用比較多的是基本身份驗證。
Apache支援的身份驗證方法有基本認證(Basic)和摘要認證(Digest)兩種,應用較多的同樣也是基本認證。下面就以基本認證為例來進行介紹。
同基于用戶端位址的通路控制一樣,基于使用者的通路控制也是隻能針對伺服器上的某個目錄進行設定,設定内容必須包含在<Directory 目錄> …… </Directory>的區域中。
如果Apache中并沒有啟用虛拟主機,那麼可以将下面圖中的這部分區域設定内容添加在配置檔案中的Main server部分。
下面對其中的設定項目進行解釋:
<Directory “/movie”>……</Directory>,表示對目錄“/movie”進行通路控制設定。
AuthName:定義受保護的領域名稱,用戶端通路時在彈出的認證登陸對話框中将顯示該名稱。
AuthType:設定認證的類型,Basic為基本認證
AuthUserFile:設定用于儲存使用者帳号、密碼的認證檔案路徑。(檔案可以自由定義,但通常都是儲存于/etc/httpd/conf目錄中,并采用.htpasswd的檔案名,檔案名前面加.表示隐藏檔案。)
require valid-user:授權給認證檔案中的所有有效使用者。這一項也可以寫成“require user [使用者名]”,指定一個具體的使用者,這樣無論認證檔案中如何定義,也隻有該使用者才可以通路。
修改完配置檔案後,儲存退出。
下面再來添加認證使用者,需要注意的是,這個認證使用者與系統使用者沒有任何關系,也就是說我們并不需要先建立相應的系統使用者,而是可以直接來添加認證使用者。
對認證使用者進行管理需要用到htpasswd指令,執行下面的指令建立.htpasswd檔案并向其中添加harry使用者。
指令中用到的兩個選項的含義:
-c,建立使用者認證檔案 -m,MD5加密
如果要再加入别的使用者,那麼就不再需要-c選項。下面繼續将natasha添加為認證使用者:
我們可以檢視一下這個認證使用者檔案,其中的使用者密碼都經過了MD5加密:
全部設定完成後,重新開機httpd服務使配置生效:
# service httpd restart
本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1207231