Apache是目前流行的Web服務器,可運行在linux、Unix、Windows等操作系統下,它可以很好地解決“用戶名+密碼”的認證問題。Apache用戶認證所需要的用戶名和密碼有兩種不同的存貯方式:一種是文本文件;另一種是MSQL、 Oracle、MySQL等數據庫。下面以Linux的Apache為例,就這兩種存貯方式,同時能對Windows的 Apache用戶認證作簡要的說明。下面我們來介紹下通過文本認證而實現的方式。
建立用戶的認證授權需要三個步驟:
1、建立用戶庫
2、配置服務器的保護域
3、告訴服務器哪些用戶擁有資源的訪問權限
廢話不多少舉例最清楚拉!~假如某一目錄下的文件如/home/ftp/pub需要做到用戶認證
創建認證用戶
@htpasswd –c /*/.password xuanfei
創建認證組
@vi /*/.group xuanfei-group:xuanfei xuanfei1
基本的Apache用戶認證方法:
在httpd.conf中加入下面的行
<> options indexes followsymlinks allowoverride authconfig order allow,deny allow from all <>
或者加到 /etc/httpd/conf.d/ 新建個文件名為.conf結尾的配置文件
〈Directory /home/ftp/pub> Options Indexes AllowOverride AuthConfig order allow,deny allow from all 〈/Directory>
用在目錄/home/ftp/pub下放文件.htaccess,內容如下:
authname "shared files" authtype basic authuserfile /*/.password require valid-user #require group xuanfei-group //接收組所以用戶 #requirre user xuanfei //接收xuanfei單個用戶
用隨Apache來的程序htpasswd 生成文件/etc/.passwd,每行一個用戶名:密碼
只要能提供正確的用戶名和密碼對,就允許登錄訪問,這是針對任何地址來的
請求都要求提供用戶名和密碼認證。
針對部分網段或地址要求認證。
若公司LAN所在網段為10.45.63.0/24,且有一防火牆專線接入Internet,
內部網卡的地址為10.45.63.1/32,則現在希望所有通過撥本地633通過
防火牆上的apache反向代理向LAN上的另一WWW服務器訪問時需要認證,而本地
LAN上的用戶不需認證。可以在httpd.conf中放入:
〈Directory /home/ftp/pub> Options Indexes FollowSymLinks AllowOverride AuthConfig order deny,allow deny from 10.45.63.1 〈/Directory>
且在/home/ftp/pub/.htaccess中放入:
AuthName "shared files" AuthType Basic AuthUserFile /etc/.passwd require valid-user satisfy any
對同一目錄及其下的子目錄有不同的權限,僅某些人可以存取一目錄下的子目錄。
如有一目錄/home/ftp/pub/host,有三個用戶user1,user2,user3都需要用戶名
和密碼進入/home/ftp/pub,但僅user1,user2能進入/home/ftp/pub/host.則
放下面的行到httpd.conf
〈Directory /home/ftp/pub> Options Indexes AllowOverride AuthConfig order allow,deny allow from all 〈/Directory> 〈Directory /home/ftp/pub/host> Options Indexes AllowOverride AuthConfig order allow,deny allow from all 〈/Directory>
且看/home/ftp/pub/.htaccess為:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
且看/home/ftp/pub/host/.htaccess
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
AuthGroupFile /etc/.hostgroup
require group manager
且文件/etc/.passwd內容為:
user1:passwd1
user2:passwd2
user3:passwd3
且文件/etc/.hostgroup內容為:
manager: user1 user2