Web網(wǎng)站身份驗證簡介
??? 身份驗證是驗證客戶端訪問Web網(wǎng)站身份的行為。一般情況下,客戶端端必須提供某些證據(jù),一般稱為憑據(jù),來證明其身份。
??? 通常,憑據(jù)包括用戶名和密碼,Internet信息服務(wù)(IIS)和ASP.NET都提供如下幾種身份驗證方案。
1、匿名身份驗證
匿名身份驗證可使用戶訪問Web站點的公共區(qū)域,不提示用戶輸入用戶名和密碼。iis使用特定用戶賬戶(IUSR_計算機名)將存儲好的憑據(jù)提供給Windows。默認情況下,IIS控制此賬戶的密碼。
2.集成Windows身份驗證
集成windows身份驗證可使用NTLM或Kerberos V5身份驗證。當Intemet Explorer試圖訪問受保護的資源時,IIS發(fā)送Negotiate和NTLM兩個WWW身份驗證頭;如果Intemet Explorer不能識別Negotiate,將使用NrLM;所使用的機制由Intemet Explorer與IIS之間協(xié)商決定。
集成windows身份驗證是Internet環(huán)境中最好的身份驗證方案,在這種方案下用戶擁有windows域賬戶。集成Windows身份驗證與簡要身份驗證一樣,不在網(wǎng)絡(luò)上傳遞用戶密碼,而是變換哈希值。
3.基本身份驗證
IIS實現(xiàn)基本身份驗證?;旧矸蒡炞C是HTTP I.O規(guī)范的一部分,它使用Windows用戶賬戶。使用基本身份驗證時,瀏覽器提示用戶輸入用戶名和密碼。然后此信息通過HTTP傳遞,在HTTP上使用Base64編碼方式將其編碼?;旧矸蒡炞C還是有固有的不安全性。由于解碼Base64編碼數(shù)據(jù)很容易,因此基本身份驗證實質(zhì)上就是將密碼作為純文本發(fā)送。默認情況下,基本身份驗證要求windows用戶賬戶具有Web服務(wù)器本地登錄權(quán)限。
4、摘要式身份驗證
摘要式身份驗證克服了基本身份驗證以純文本形式發(fā)送密碼的主要弱點。摘要身份驗證是一種質(zhì)詢/響應(yīng)機制,它在網(wǎng)上發(fā)送摘要(又稱為哈希)而非密碼。當客戶端試圖訪問要求摘要身份驗證的資源時,IIs向該客戶端發(fā)送一個質(zhì)詢,要求它創(chuàng)建一個摘要并將其發(fā)送到服務(wù)器。客戶端連接服務(wù)器和客戶端都知道的密碼和數(shù)據(jù),然后將一個摘要算法(由服務(wù)器指定)應(yīng)用到該組合數(shù)據(jù)。
客戶端將獲得的摘要發(fā)送到服務(wù)器作為對質(zhì)詢的響應(yīng)。服務(wù)器利用從Active Directory獲得的客戶端密碼副本,使用與客戶端相同的過程創(chuàng)建摘要。在Active Directory中使用可逆加密方法保存密碼。如果服務(wù)器創(chuàng)建的摘要與客戶端創(chuàng)建的摘要相匹配,則IIS驗證該客戶端的身份。
5.高級摘要式身份驗證
高級摘要式身份驗證是將用戶憑據(jù)作為MD5哈希存儲在域控制器中。因為將憑據(jù)作為MD5哈希存儲在Active Directory中,所以訪問域控制器的用戶根本無法發(fā)現(xiàn)用戶密碼,甚至域管理員也不能發(fā)現(xiàn)該密碼。在Web分布式創(chuàng)作和版本控制(WebDAV)目錄中可以使用高級摘要式身份驗證。在IIS 6.0中,高級摘要式身份驗證優(yōu)于摘要式身份驗證,但仍然可以使用摘要式身份驗證。
因為高級摘要式身份驗證依賴于HTTP1.1協(xié)議,所以并非所有的瀏覽器均支持這種驗證。如果與HTTP1.1不兼容的瀏覽器從使用高級摘要式身份驗證的服務(wù)器請求文件,則該服務(wù)器會要求客戶端提供高級摘要式身份驗證憑據(jù);與HTTP1.1不兼容的客戶端拒絕該請求,因為客戶端不支持高級摘要式身份驗證。
6、證書身份驗證
可以對兩種類型的驗證使用Web服務(wù)器的安全套接字層(SSL)安全功能??梢允褂谩胺?wù)器證書,允許用戶在傳送個人信息(如信用卡號碼)之前進行網(wǎng)站驗證。同樣,也可以使用“客
戶端證書”對請求網(wǎng)站信息的用戶進行驗證。
通過檢查登錄過程中用戶Web瀏覽器提交的加密數(shù)字標識的內(nèi)容進行SSL驗證。服務(wù)器證書通常包含關(guān)于公司以及發(fā)證機構(gòu)的信息??蛻舳俗C書通常包含關(guān)于用戶和發(fā)證機構(gòu)的識別信息。
因為訪問文件等資源時需要使用Windows用戶賬戶,所以可以將客戶端證書映射到web服務(wù)器上的windows用戶賬戶。創(chuàng)建并啟用證書映射后,每次用戶使用客戶端證書登錄時,windows服務(wù)器就會自動將用戶與相應(yīng)的Windows用戶賬戶關(guān)聯(lián)起來。這樣,就可以自動驗證使Windows證書登錄的用戶,而不必使用其他驗證方法,如基本身份驗證、摘要式身份驗證或集成windows身份驗證。
可以將一份客戶端證書映射到一個Windows用戶賬戶,或者將多個客戶端證書映射到一個賬戶。例如,在服務(wù)器上有幾個不同的部門或企業(yè)并且它們都有自己的網(wǎng)站,則可以使用多對一映射將每個部門或公司的所有客戶端證書映射到各自的網(wǎng)站。達樣,每個站點僅對自己的客戶提供訪問。
7、.NET Passport 身份驗證