綠色(sè)資源網:您身邊最放心的(de)安(ān)全(quán)下載站(zhàn)! 最新軟件(jiàn)|熱門排行|軟(ruǎn)件分類(lèi)|軟(ruǎn)件(jiàn)專題|廠商大全

綠(lǜ)色(sè)資源網(wǎng)

技術教程
您的(de)位(wèi)置:首頁(yè)服務器(qì)類Web服務器 → IIS服務器身份(fèn)驗證的(de)方式原理

IIS服(fú)務器身份(fèn)驗證(zhèng)的方式原理

我要評論(lùn) 2010/05/26 12:02:37 來源:綠色(sè)資源網 編輯:綠色軟件(jiàn)站 [ ] 評論:0 點擊:278次(cì)

IIS服務器具有身份驗證(zhèng)功能,可以有以下幾種驗證方式:

匿名訪問

這(zhè)種方(fāng)式不驗證訪問用戶的身份,客戶(hù)端不需要提供任何身份驗證的憑據,服務端把這(zhè)樣的訪問作為匿(nì)名的訪問,並(bìng)把這樣的訪問用戶都(dōu)映射到(dào)一個服(fú)務端(duān)的賬戶,一般為IUSER_MACHINE這個用(yòng)戶,可(kě)以修改映射到的(de)用(yòng)戶:

集成windows身(shēn)份驗證

這種驗證方(fāng)式(shì)裏(lǐ)麵也(yě)分為兩(liǎng)種(zhǒng)情況

NTLM驗證

這種驗證方式需(xū)要把用戶的用(yòng)戶名和密碼傳(chuán)送到(dào)服務端,服務端驗(yàn)證(zhèng)用戶名和密碼是否和服務器的此用戶的密碼一(yī)致。用(yòng)戶名用明碼傳送,但是密碼經過處理(lǐ)後派生出一(yī)個8字(zì)節的key加(jiā)密質詢(xún)碼後傳送。

Kerberos驗(yàn)證

這(zhè)種驗證方式隻把客戶端訪問IIS的驗證票發送到IIS服務器,IIS收到(dào)這(zhè)個票(piào)據(jù)就(jiù)能確定客戶端的身份,不需要(yào)傳送用戶的密碼。需(xū)要kerberos驗證的(de)用戶一定是域用戶(hù)。

每一個(gè)登錄用戶(hù)在登錄被驗證後都會(huì)被(bèi)域(yù)中的驗證服務器生成一個票據授權票(TGT)作為這個用戶訪問其他服務所(suǒ)要驗證票的憑證(這(zhè)是為了實現一次登錄就(jiù)能訪(fǎng)問(wèn)域中所有需要驗證(zhèng)的資源的所謂單點登錄SSO功能),而訪問(wèn)IIS服務器(qì)的驗證票是通過此用戶(hù)的票(piào)據授權票(TGT)向IIS獲取的(de)。之後(hòu)此客戶訪問此IIS都(dōu)使用這個驗證票。同樣訪問其他需要驗證的(de)服(fú)務也(yě)是憑(píng)這個TGT獲取(qǔ)該(gāi)服務的驗證票。

下(xià)麵(miàn)是kerberos比較詳(xiáng)細的原(yuán)理。

Kerberos原理介紹:

工作(zuò)站端運行著一個票據授權的服(fú)務,叫Kinit,專門用做工作站(zhàn)同認證服務器Kerberos間的身份認(rèn)證的(de)服(fú)務。

1. 用戶開始登錄,輸入用(yòng)戶名,驗證(zhèng)服務(wù)器收(shōu)到用戶名,在(zài)用戶數據庫中(zhōng)查找(zhǎo)這個(gè)用戶,結果發現了這(zhè)個用戶(hù)。

2. 驗證(zhèng)服務器生成一個(gè)驗證服務(wù)器跟這個登錄用戶(hù)之間共享(xiǎng)的一個會話口令(Session key),這(zhè)個口(kǒu)令隻有(yǒu)驗證服(fú)務(wù)器跟這個登錄用戶(hù)之(zhī)間使(shǐ)用,用來做相互驗(yàn)證對方使用。同時驗證服(fú)務(wù)器(qì)給這個(gè)登錄用戶生成(chéng)一個票據授(shòu)權票(ticket-granting ticket),工作站以後就(jiù)可以憑這個票據授權票(piào)來向驗證服務器請求其他(tā)的票(piào)據(jù),而不用(yòng)再次驗證自(zì)己的身份了。驗證(zhèng)服務器把(bǎ){ Session key + ticket-granting ticket }用登錄用戶的(de)口令加密後發(fā)回到工作站。

3. 工作(zuò)站用自己(jǐ)的口令解密驗證服務器(qì)返(fǎn)回(huí)的數據包,如果解密正確則驗證成功。解密後能(néng)夠獲得登錄(lù)用戶與驗(yàn)證服務器共(gòng)享的Session key和一張ticket-granting ticket。到此,登錄用戶(hù)沒有在網絡(luò)上(shàng)發(fā)送口令,通(tōng)過驗證服務器使用用(yòng)戶口令加密驗證(zhèng)授權票(piào)的方法驗證(zhèng)了用戶,用戶跟驗證(zhèng)服務器之間(jiān)建立了(le)關係,在工作站上也(yě)保(bǎo)存來相應的(de)身份證明(míng),以(yǐ)後要(yào)是用(yòng)網絡中的其他服務,可以通過這個身份(fèn)證明向驗證(zhèng)服務器(qì)申請相(xiàng)應服務器的(de)服(fú)務票,來獲得(dé)相(xiàng)應服(fú)務身份驗證。

4. 如果用(yòng)戶第(dì)一次訪問IIS服務器,工(gōng)作站的kinit查看(kàn)本機上沒有訪問IIS服務器(qì)的驗證(zhèng)票(piào),於是kinit會向驗(yàn)證服務器發出請求(qiú),請求(qiú)訪問IIS服務的驗證(zhèng)票。Kinit先要生(shēng)成一(yī)個驗證器,驗證器是這樣的:{用(yòng)戶(hù)名:工(gōng)作站地址(zhǐ)}用跟驗(yàn)證服務(wù)器間的Session key加密(mì)。Kinit將驗證器、票(piào)據授權(quán)票、你的名字、你(nǐ)的工作站地址、IIS服務名字發送的驗證服務(wù)器,驗證服務(wù)器驗證驗證授權票真實有效,然後(hòu)用跟你共享(xiǎng)的(de)Session key解(jiě)開驗證器,獲取其中的用戶名和地址,與發送(sòng)這(zhè)個請求的用戶和地址比較,如(rú)果相符,說明(míng)驗證通(tōng)過,這(zhè)個請求合法。

5. 驗證(zhèng)服務(wù)器先生成這個用戶跟IIS服務器之間的Session key會話口令,之後根據用(yòng)戶請求生(shēng)成IIS服務器的(de)驗(yàn)證票,是這(zhè)個樣子的:{會話口令(lìng):用戶名:用戶機器地(dì)址:服務名:有(yǒu)效期:時間戳},這個驗證票用IIS服務器的密碼(驗證服務器知道所有授權服務的密碼)進(jìn)行加密形成最(zuì)終(zhōng)的驗(yàn)證票。最(zuì)後,驗證(zhèng)服(fú)務(wù)器{會(huì)話口令+加好密的驗證票}用(yòng)用戶(hù)口令加密(mì)後發送給用(yòng)戶。

6. 工作站收到驗證(zhèng)服務(wù)器(qì)返回(huí)的數據包,用(yòng)自己的口(kǒu)令解密,獲得(dé)跟IIS服務器的Session key和(hé)IIS服務(wù)器的驗(yàn)證票(piào)。

7. 工(gōng)作站kinit同樣(yàng)要生成一個(gè)驗證(zhèng)器,驗證(zhèng)器是這(zhè)樣的(de):{用戶名:工作(zuò)站地址}用跟(gēn)IIS服務器(qì)間(jiān)的(de)Session key加密。將驗證器(qì)和IIS驗證票(piào)一起發(fā)送到IIS服務器。

8.IIS服務(wù)器先用自己的(de)服務器密碼解開IIS驗證票,如果解(jiě)密成功,說明此驗證票真實(shí)有效,然(rán)後查看(kàn)此驗(yàn)證(zhèng)票(piào)是否在有效期內,在有效期內,用驗證(zhèng)票中帶的會話(huà)口令去解密驗證器,獲得其中的用戶名和(hé)工作站地址(zhǐ),如果跟驗證票中(zhōng)的(de)用戶名和地址相符則說明發送此驗證票的用戶就是驗證(zhèng)票的所有者,從而驗(yàn)證本次請(qǐng)求有效。

基本身份驗證

這種驗(yàn)證方式完全(quán)是把用戶名和(hé)明文用明文(經過base64編碼,但是base64編碼不(bú)是加(jiā)密的,經(jīng)過轉換(huàn)就能轉換(huàn)成原始的明文(wén))傳送到服務端驗證。服務器直接驗(yàn)證服務器本地是否用用(yòng)戶跟客戶端提(tí)供的用戶(hù)名和密(mì)碼相(xiàng)匹配的,如果有則通過驗(yàn)證。

關鍵詞(cí):IIS服務器身份驗證(zhèng)

閱讀本(běn)文後您有什麽感想(xiǎng)? 已有(yǒu) 人給出評價!

  • 1 歡迎(yíng)喜歡(huān)
  • 1 白癡
  • 1 拜托
  • 1 哇
  • 1 加油
  • 1 鄙視