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