認(rèn)證概念:
服務(wù)器需要通過(guò)某種方式來(lái)了解用戶的身份,一旦服務(wù)器知道了用戶的身份,就可以判定用戶可以訪問(wèn)事務(wù)和資源了;通常通過(guò)用戶名和密碼;
HTTP響應(yīng)/認(rèn)證框架
HTTP認(rèn)證模型:

質(zhì)詢/響應(yīng)認(rèn)證框架
HTTP的兩個(gè)官方的認(rèn)證協(xié)議:基本認(rèn)證和摘要認(rèn)證
認(rèn)證的四個(gè)步驟:
請(qǐng)求: 客戶端發(fā)起一條請(qǐng)求;第一條請(qǐng)求沒(méi)有認(rèn)證消息;
質(zhì)詢: 服務(wù)器對(duì)客戶端進(jìn)行質(zhì)詢;返回一條401 Unauthorized響應(yīng),并在www-Authenticate首部說(shuō)明如何以及在哪里進(jìn)行認(rèn)證;一般指定對(duì)哪個(gè)安全域進(jìn)行認(rèn)證;
授權(quán):客戶端收到401質(zhì)詢,彈出對(duì)話框,詢問(wèn)用戶名和密碼,用戶輸入用戶名和密碼后,客戶端會(huì)用一個(gè)冒號(hào)將其連接起來(lái),編碼成“經(jīng)過(guò)擾碼的”Base-64表示形式,然后將其放在Authorization首部中回送;
成功: 服務(wù)器對(duì)用戶名和密碼進(jìn)行解碼,驗(yàn)證它們的正確性,然后用一條HTTP 200 OK報(bào)文返回所請(qǐng)求的報(bào)文;

基本認(rèn)證實(shí)例

基本認(rèn)證首部
Base-64編碼:會(huì)把一個(gè)8位字節(jié)序列轉(zhuǎn)劃分成一些6位的塊,用每個(gè)6位的塊在一個(gè)特殊在一個(gè)特殊的由64個(gè)字符組成的字母表中選擇一個(gè)字符。

編碼實(shí)例
安全域:將受保護(hù)的文檔組織成一個(gè)安全域;每個(gè)安全域都可以有不同的授權(quán)用戶集;會(huì)在www-Authenticate首部包含realm指令;

服務(wù)器上的安全域

具有安全域的質(zhì)詢響應(yīng)
代理認(rèn)證
通過(guò)中間代理服務(wù)器實(shí)現(xiàn)對(duì)服務(wù)器內(nèi)部資源和文檔的統(tǒng)一訪問(wèn)控制;

與Web服務(wù)器的差異
狀態(tài)碼:407
首部:Proxy
基本認(rèn)證的安全缺陷:
Base-64安全性不高,容易解密;使用SSL加密信道;使用摘要認(rèn)證;