|
簡(jiǎn)介
如果你是一名使用Microsoft® Internet Information Server (IIS,Internet信息服務(wù)器) 3.0的開發(fā)人員,理解IIS如何使用驗(yàn)證(Authentication)和扮演(Impersonation)技術(shù)控制你的Web服務(wù)器的安全是十分重要的。當(dāng)在Microsoft的Internet開發(fā)人員支持小組工作時(shí),我發(fā)現(xiàn)我們處理的問(wèn)題中有四分之一與我們稱之為許可權(quán)(permissions)的主題有關(guān)。進(jìn)一步講,如果開發(fā)人員對(duì)驗(yàn)證的實(shí)現(xiàn)內(nèi)幕在概念上有更多的了解的話,這些問(wèn)題中的大部分都能夠被避免。驗(yàn)證只是一個(gè)簡(jiǎn)單的確定用戶身份的過(guò)程。當(dāng)一個(gè)用戶被肯定確認(rèn)后, Windows NT®隨即能夠控制該用戶可以訪問(wèn)的資源。當(dāng)不是具有特別的技術(shù)色彩時(shí),驗(yàn)證和安全易于混淆。對(duì)IIS如何控制安全的準(zhǔn)確理解將幫助你創(chuàng)建更有活力的站點(diǎn)和避免常見(jiàn)、費(fèi)時(shí)的問(wèn)題。
本文解釋了有關(guān)IIS的Windows NT安全,所以你能夠有效地解決與安全有關(guān)的問(wèn)題。我們的內(nèi)容包括三種驗(yàn)證形式,它們的差異,對(duì)你的Web服務(wù)器關(guān)鍵區(qū)域的幾種訪問(wèn)控制方式,以及重要的但被普遍誤解的“委托(delegation)”概念。對(duì)于任何使用IIS建立數(shù)據(jù)委托驅(qū)動(dòng)的Web站點(diǎn)的人員,必須理解授權(quán)。理解Windows NT如何處理不同的用戶將節(jié)省你在排除疑難時(shí)耗費(fèi)的成天甚至成周的時(shí)間。
ACLs, NTLM以及其它定義
在開始前,我們先定義一些常見(jiàn)術(shù)語(yǔ):
訪問(wèn)控制表(ACLs,Access Control Lists) 每個(gè)ACL是一個(gè)訪問(wèn)控制入口(Access Control Entries)列表,訪問(wèn)控制入口規(guī)定了NTFS(New Technology File System)硬盤上的Windows NT所使用的訪問(wèn)和審核信息。Windows NT通過(guò)訪問(wèn)ACLs確定已被授予訪問(wèn)特定資源(文件和文件夾)權(quán)限的用戶,以及用戶能夠得到的權(quán)限,包括讀、寫和執(zhí)行。在文件或文件夾資源上單擊鼠標(biāo)右鍵,選擇Properties(屬性),然后單擊Securities(安全)頁(yè)的Permissions(權(quán)限)按鈕,可以查看該資源的ACLs。 Windows NT 盤問(wèn)/響應(yīng)(Challenge/Response) 這是一個(gè)Windows NT 驗(yàn)證過(guò)程。在用戶或服務(wù)(如IIS)試圖通過(guò)網(wǎng)絡(luò)訪問(wèn)另一臺(tái)Windows NT計(jì)算機(jī)存儲(chǔ)的任何資源(諸如查詢一臺(tái)服務(wù)器上的一個(gè)共享資源)時(shí)都會(huì)發(fā)生盤問(wèn)/響應(yīng)。盤問(wèn)/響應(yīng)也能被IIS用來(lái)在用戶瀏覽Web站點(diǎn)時(shí)進(jìn)行驗(yàn)證。 NTLM這是Windows NT使用的盤問(wèn)/響應(yīng)驗(yàn)證機(jī)制。NTLM代表Windows NT LAN Manager,因?yàn)樗钤玳_發(fā)和使用于Microsoft LAN Manager, Microsoft最早的一種網(wǎng)絡(luò)產(chǎn)品。 SAM SAM (Security Account Manager,安全帳戶管理器)是存儲(chǔ)用戶和組帳戶信息的數(shù)據(jù)庫(kù)。SAM中并不包含密碼,但是它存儲(chǔ)了密碼散列表(后面將進(jìn)行說(shuō)明)。SAM存儲(chǔ)在注冊(cè)表的HKEY_LOCAL_MACHINE\SAM和HKEY_LOCAL_MACHINE\Security\SAM 子樹中。不必驚訝,SAM經(jīng)常是黑客的主要目標(biāo)。 扮演(Impersonation)
在不同的情況下,IIS會(huì)假扮成不同的用戶。在Windows NT計(jì)算機(jī)上的所有操作的處理都是運(yùn)行在一個(gè)有效的Windows NT帳戶上的。當(dāng)一個(gè)程序或處理(類似于IIS)代表一個(gè)用戶運(yùn)行時(shí),它可以說(shuō)是運(yùn)行在該用戶的安全上下文(security context)中。安全上下文的用途是使代表用戶運(yùn)行的處理對(duì)文件和資源的訪問(wèn)權(quán)不能超過(guò)用戶在本地運(yùn)行一個(gè)處理時(shí)所獲得的訪問(wèn)權(quán)。當(dāng)IIS代表一個(gè)用戶運(yùn)行時(shí),就說(shuō)它扮演了該用戶。
IIS設(shè)計(jì)將Web請(qǐng)求作為自動(dòng)的服務(wù)進(jìn)行處理。要實(shí)現(xiàn)這一點(diǎn),IIS需要運(yùn)行在一個(gè)有效的用戶安全上下文中。IIS需要對(duì)兩種請(qǐng)求作出反應(yīng):匿名請(qǐng)求(Anonymous Request)和驗(yàn)證的請(qǐng)求(Authenticated Request)。在匿名請(qǐng)求中, IIS對(duì)用戶情況一無(wú)所知。而在驗(yàn)證的請(qǐng)求中,IIS能夠準(zhǔn)確了解請(qǐng)求資源的用戶。因?yàn)槟涿?qǐng)求和驗(yàn)證式請(qǐng)求在進(jìn)行時(shí)都不會(huì)對(duì)用戶出現(xiàn)對(duì)話框或其它標(biāo)識(shí),所以使用何種方法并不總是一眼就能發(fā)現(xiàn)的。但是,對(duì)我們開發(fā)人員應(yīng)該總能知道使用何種方式,這是必須的。IIS扮演的帳戶,以及更大范圍而言,到IIS的處理能力,主要依賴于所使用的請(qǐng)求類型。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!