新增「IIS」遇到「認證」時,總是會有許多「困惑」,這回我還是做做筆記吧,相信使用「Windows」系統,架設「IIS」遇到「安全性」功能時,裡面都有這三樣「Windows 驗證」、「基本驗證」、「摘要式驗證」。
PS.
當您新增「IIS」預設會啟用「匿名驗證」
到底這四種「認證關係」有什麼樣的差別呢?
我知道各位一定很好奇,因為我也很好奇,好奇之前,要花時間將下面看完。
「匿名驗證」
若「網站」啟用「匿名驗證」方法,則任何使用者都可以直接利用「匿名」來連接「網站」,不需要輸入「帳戶」與「密碼」,「Windows Server 2008 R2」 內建一個名稱為「IUSR」的「特殊群組帳戶」,當使用「匿名驗證」連接「網站」同時,網站則是使用「IUSR」,來代表這個「使用者」,因為使用者的「權限」就是與「IUSR」權限相同。
「基本驗證」
「基本驗證」會要求「使用者」輸入「使用名稱」與「密碼」,絕大部份瀏覽器都支援此「方法」,但是「傳送給」「網站」的「使用者名稱」與「密碼」並沒有被「加密」,因此容易被居心不良者「攔截」資料,故若要使用「基本驗證」的話,應該要搭配「SSL」( Secure Sockets Layer ) 連線。
「Windows 驗證」
「Windows」驗證,也會要求,輸入「使用名稱」與「密碼」,而且「使用者名稱」與「密碼」在透過「網路傳送前」,也會經過「雜湊」處理 (hashed),因此可以確保「安全性」。
Windows 驗證 支援以下「兩種」驗證通訊協定:
「Kerberos v5」 驗證
如果「IIS」電腦是「Active Directory」網域成員,而且用戶端也支援「Kerberos v5」驗證的話,則「IIS」網站會採用「Kerberos v5」驗證方法。一般來說,「
Kerberos」 會被防火牆阻擋。
「NTLM」驗證
如果「IIS」電腦不是「Active Directory」網域成員 或 用戶端不支援「Kerberos v5」驗證的話,則「IIS」網站,會採用「NTLM」驗證方法。一般來說,代理伺服器 ( Proxy Server ) 不支援「NTLM」。
由於「Kerberos」會被「防火牆」阻擋且「代理伺服器」不支援「NTLM」,因此「Windows 驗證」,比較適合用來「連接內部」網路。用戶端利用「Windows 驗證」,來連接「內部」網站時,會自動利用「目前」的「使用者」與「密碼」,連接「網站」,因此若「使用者」沒有「權利」連接網站的話,就會要求「使用者」自行另外輸入「使用者名稱」與「密碼」。
「摘要式驗證」
「摘要式驗證」也會要求使「帳戶」與「密碼」,不過它比「基本驗證」更為安全,因為「使用者」的「帳戶」與「密碼」會經過「MD5」演算來處理,然後將處理後所產生的「雜湊」值 ( hash ) 傳送到網站。攔截此「雜湊」值得人,並無法從「雜湊」值得知「帳戶」與「密碼」。
必須具備以下條件,才可以使用「摘要式驗證」
* 瀏覽器必須支援 「HTTP 1.1」,例如 Internet Explorer 5.0 (含) 以上的版本。
* IIS 電腦必須是 「Active Directory」 網域的「成員伺服器」或「網站控制站」
* 使用帳戶必須是「Active Directory」網域使用者,而且此帳戶必須與「IIS」電腦位於同一個「網域」,或是「信任」的「網域」
各種驗證方法的比較
驗證方法
|
安全等級
|
如何傳送密碼
|
是否可通過防火牆或代理伺服器
|
用戶端的要求
|
匿名驗證
|
無
|
是
|
任何瀏覽器皆可
|
|
基本驗證
|
低
|
明文 (未加密)
|
是
|
大部分的瀏覽器
|
摘要式驗證
|
中
|
雜湊處理
|
是
|
Internet Explorer5 (含)以上
|
Windows驗證
|
高
|
Kerberos:
Kerberos
ticket
NTLM:
雜湊處理
|
Kerberos:
可通過代理伺服器,但會被防火牆阻擋
NTLM:
可通過防火牆,但是無法通過代理伺服器 |
Kerber:
Windows 2000以後的系統,且使用Internet Explorer5 (含)以上
NTLM:
Internet Explorer 2.0(含)以上 |
靜思: 世上有兩件事不能等「孝順」與「行善」。
參考資料:
「戴有煒」-「Windows Server 2008 R2 網路管理與架站」