




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、構(gòu)建安全的 ASP.NET 應(yīng)用程身份驗(yàn)證、授權(quán)和安全通信第5章一Intranet 安全性J.D. Meier、Alex Mackman、Michael Dunner 和 Srinath VasireddyMicrosoft Corporation2002年10月有關(guān)構(gòu)建安全的ASPNET應(yīng)用程序的起點(diǎn)和完整概述,請(qǐng)參見登陸頁(yè)面??偨Y(jié)本章介紹如何保護(hù)常見的Intranet應(yīng)用程序方案的安全。還介紹每種方案的特點(diǎn)以及保護(hù)各方案的安全所需的步驟。還包括分析部分以提供進(jìn)一步的信息。內(nèi)容ASP.NET 至U SQL ServerASP.NET 至ij Enterprise Services 至U SQ
2、L ServerASP.NET 到 Web 服務(wù)到 SQL ServerASP.NET 至ij Remoting 至U SQL Server點(diǎn)對(duì)點(diǎn)安全性將原調(diào)用方傳遞到數(shù)據(jù)庫(kù)總結(jié)對(duì)Intranet應(yīng)用程序的訪問(wèn)被限制到一組有限的授權(quán)用戶(例如,屬于某個(gè)域的雇員)。雖然Intranet設(shè)置限制了應(yīng)用程序的公開,但是當(dāng)您制定身份驗(yàn)證、 授權(quán)和安全通信策略時(shí),可能仍要面臨一些難題。例如,您可能包含非信任域,因此很難將 調(diào)用方的安全性上下文和標(biāo)識(shí)傳遞到系統(tǒng)內(nèi)的后端資源。另外,您的運(yùn)行環(huán)境可能 是具有混合瀏覽器類型的異類環(huán)境。因此,更加不便使用通用身份驗(yàn)證機(jī)制。如果同類Intranet中的所有計(jì)算機(jī)均運(yùn)
3、行 Microsoft? Windows? 2000或更高版本 的操作系統(tǒng),并且在域中信任用戶使用委派,則可以選擇將原調(diào)用方的安全性上下 文委派到后端。您還必須考慮安全通信問(wèn)題。盡管您的應(yīng)用程序運(yùn)行在Intranet環(huán)境中,也不能認(rèn)為在網(wǎng)絡(luò)中傳送的數(shù)據(jù)是安全的。除了需要保護(hù)應(yīng)用程序服務(wù)器和數(shù)據(jù)庫(kù)之間傳送 的數(shù)據(jù)外,可能還需要保護(hù)瀏覽器和Web服務(wù)器之間傳送的數(shù)據(jù)。本章使用以下常見的Intranet方案來(lái)闡釋主要的身份驗(yàn)證、授權(quán)和安全通信技術(shù): ASP.NETSQL Server ASP.NET 至ij Enterprise Services 至U SQL Server ASP.NET 到 We
4、b 服務(wù)到 SQL Server ASP.NET 至ij Remoting 至U SQL Server此外,本章還介紹了一個(gè)Windows 2000委派方案(“將原調(diào)用方傳遞到數(shù)據(jù)庫(kù)”)。在此方案中,使用中間Web服務(wù)器和應(yīng)用程序服務(wù)器,在操作系統(tǒng)級(jí)別將原調(diào)用方的安全性上下文和標(biāo)識(shí)從瀏覽器傳遞到數(shù)據(jù)庫(kù)。注意:本章中描述的幾個(gè)方案或者替換用于運(yùn)行ASP.NET應(yīng)用程序的默認(rèn)ASPNET帳戶,或者更改其密碼以允許在遠(yuǎn)程計(jì)算機(jī)上創(chuàng)建重復(fù)的帳戶。這些方 案更新 Machine.config中的processModel 元素。這樣,就可以將憑據(jù)以明文 形式存儲(chǔ)在 machine.config中。有關(guān)該主
5、題的詳細(xì)討論, 請(qǐng)參見第8章“ASP.NET 安全性”中的“訪問(wèn)網(wǎng)絡(luò)資源”。ASP.NET 至U SQL ServerIntranet中安全地提供每個(gè)用戶的數(shù)據(jù)。應(yīng)用在此方案中,人力資源數(shù)據(jù)庫(kù)在同類程序使用受信任的子系統(tǒng)模型并代表原調(diào)用方執(zhí)行調(diào)用。應(yīng)用程序使用集成Windows身份驗(yàn)證來(lái)驗(yàn)證調(diào)用方的身份,并使用 ASP.NET進(jìn)程標(biāo)識(shí)來(lái)調(diào)用數(shù)據(jù) 庫(kù)。由于數(shù)據(jù)本身所具有的機(jī)密性,因此,在 Web服務(wù)器和客戶端之間使用了SSL。圖5.1顯示此應(yīng)用程序方案的基本模型。¥&服務(wù)器應(yīng)用程序服若器Insert figure: CH05 - Intranet - ASPNET to SQL
6、 Server.gif圖5.1ASP.NET 至ij SQL Server特點(diǎn)本方案具有以下特點(diǎn): 客戶端上安裝了Internet Explorer。 用戶帳戶位于 Microsoft Active Directory?目錄服務(wù)中。 應(yīng)用程序提供每個(gè)用戶的機(jī)密數(shù)據(jù)。 只有經(jīng)過(guò)身份驗(yàn)證的客戶端能夠訪問(wèn)應(yīng)用程序。 數(shù)據(jù)庫(kù)委派該應(yīng)用程序?qū)τ脩暨M(jìn)行正確的身份驗(yàn)證(即,應(yīng)用程序代表用戶 對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)用)。 Microsoft SQL Server?使用單個(gè)數(shù)據(jù)庫(kù)用戶角色進(jìn)行授權(quán)。保護(hù)方案在此方案中,Web服務(wù)器驗(yàn)證調(diào)用方的身份,并通過(guò)使用調(diào)用方的標(biāo)識(shí)限制對(duì)本地 資源的訪問(wèn)。要限制原調(diào)用方對(duì)資源的訪問(wèn),
7、您不必在Web應(yīng)用程序中進(jìn)行模擬。數(shù)據(jù)庫(kù)驗(yàn)證 ASP.NET默認(rèn)進(jìn)程標(biāo)識(shí)(它是權(quán)限最少的帳戶)的身份(即數(shù)據(jù)庫(kù)信 任 ASP.NET應(yīng)用程序)。表5.1:安全措施類別身份驗(yàn)證詳細(xì)信息 通過(guò)在IIS中使用集成 Windows身份驗(yàn)證, 在Web服務(wù)器上提供增強(qiáng)身份驗(yàn)證來(lái)驗(yàn)證原 調(diào)用方的身份。 在 ASP.NET內(nèi)使用 Windows身份驗(yàn)證(不 模擬)。 通過(guò)將 SQL Server配置為使用 Windows身 份驗(yàn)證,確保數(shù)據(jù)庫(kù)連接的安全。數(shù)據(jù)庫(kù)信任 ASP.NET輔助進(jìn)程以進(jìn)行調(diào)用??梢栽跀?shù)據(jù)庫(kù)中驗(yàn)證 ASP.NET進(jìn)程標(biāo)識(shí)的身 份。授權(quán)使用綁定到原調(diào)用方的ACL在Web服務(wù)器上配置資源。為
8、了簡(jiǎn)化管理,將用戶添加到Windows組中并在 ACL中使用組。Web應(yīng)用程序?qū)υ{(diào)用方執(zhí)行.NET角色檢查,以限制對(duì)頁(yè)面的訪問(wèn)。安全通信保護(hù)在Web服務(wù)器和數(shù)據(jù)庫(kù)之間傳送的機(jī)密數(shù)據(jù)保護(hù)在原調(diào)用方和 Web應(yīng)用程序之間傳送的機(jī)密數(shù)據(jù)結(jié)果圖5.2顯示了此方案的建議安全配置。文件授權(quán)黑型號(hào)RTFS m.即角色數(shù)據(jù)犀角C(段積授權(quán))'授權(quán)行wMje馬松船證身份驗(yàn)證身份給證Insert figure: CH05 - Intranet - ASP .NET to SQL Server (Solution).gif圖5.2ASP.NET至ij SQL Server Intranet方案的建議安全配
9、置安全配置步驟在開始之前,您需要查看以下內(nèi)容: 創(chuàng)建自定義 ASP.NET帳戶(請(qǐng)參見本指南“參考”部分的“如何做:創(chuàng)建自定義帳戶以便運(yùn)行 ASP.NET') 創(chuàng)建一個(gè)權(quán)限最少的數(shù)據(jù)庫(kù)帳戶(參見第 12章“數(shù)據(jù)訪問(wèn)安全性”) 在 Web服務(wù)器上配置 SSL (請(qǐng)參見本指南“參考”部分的“如何做:在 Web 服務(wù)器上設(shè)置 SSL") 配置IPSec (請(qǐng)參見本指南“參考”部分的“如何做:使用IPSec以便在兩臺(tái)服務(wù)器之間安全通信”)配置IIS步驟更多信息禁用對(duì)Web應(yīng)用程序的虛要使用IIS身份驗(yàn)證設(shè)置,請(qǐng)使用IIS MMC管理單元。右擬根目錄的匿名訪問(wèn)擊應(yīng)用程序的虛擬目錄,然后
10、單擊“屬性”。啟用集成的Windows身份驗(yàn)證單擊“目錄安全性”選項(xiàng)卡,然后單擊“匿名訪問(wèn)和驗(yàn)證控 件”組中的“編輯”。配置 ASP.NET步驟更多信息將ASPNET密碼更改為一ASPNET是權(quán)限最少的本地帳戶,默認(rèn)情況下用來(lái)運(yùn)行個(gè)已知的強(qiáng)密碼值A(chǔ)SP.NET Web應(yīng)用程序。通過(guò)使用“本地用戶和組”將 ASPNET帳戶的密碼設(shè)置為 一個(gè)已知值。編 輯位于 windir%Microsoft.NETFrameworkv1.0.3705CONFIG 中的 Machine.config 并重新配置<processModel >元素的密碼屬性 默認(rèn)<!- userName="
11、;machine" password="AutoGenerate"->成為<!- userName="machine" password="YourNewStrongPassword"->將ASP.NET Web應(yīng)用程序配置為使用 Windows身份驗(yàn)證編輯應(yīng)用程序的虛擬根目錄下的Web.config將authentication > 元素設(shè)置為:authentication mode="Windows" />確保模擬處于關(guān)閉狀態(tài)默認(rèn)情況下模擬處于關(guān)閉狀態(tài);不過(guò),請(qǐng)執(zhí)行如下操
12、作,再次檢查以確保它在Web.config中是關(guān)閉的:identity impersonate="false"/>刪除identity >元素也能達(dá)到同樣的效果。配置 SQL Server步驟更多信息在SQL Server計(jì)算機(jī)上創(chuàng)建一個(gè)與 ASP.NET進(jìn)程帳戶 (ASPNET) 匹配的 Windows 帳戶用戶名和密碼必須與 ASPNET帳戶匹配。給予該帳戶以下權(quán)限:-從網(wǎng)絡(luò)訪問(wèn)此計(jì)算機(jī)-拒絕本地登錄-以批處理作業(yè)登錄配置SQL Server以便進(jìn)行Windows身份驗(yàn)證為本地 ASPNET帳戶創(chuàng)建這將授予對(duì)SQL Server的訪問(wèn)權(quán)限一個(gè) SQL Ser
13、ver 登錄創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)用戶,并這將授予對(duì)指定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限將登錄名映射到數(shù)據(jù)庫(kù)用戶創(chuàng)建一個(gè)新的用戶定義的數(shù)據(jù)庫(kù)角色,并將數(shù)據(jù)庫(kù)用戶添加到該角色建立該數(shù)據(jù)庫(kù)角色的數(shù)據(jù)庫(kù)授予最少的權(quán)限權(quán)限有關(guān)詳細(xì)信息,請(qǐng)參見第12章“數(shù)據(jù)訪問(wèn)安全性”。配置安全通信步驟更多信息配置 Web站點(diǎn)的SSL請(qǐng)參見本指南“參考”部分的“如何做:在 Web服務(wù)器上設(shè)置SSL”。配置 Web服務(wù)器和數(shù)據(jù)庫(kù)請(qǐng)參見本指南“參考” 部分的“如何做:使用IPSec以便在服務(wù)器之間的IPSec兩個(gè)服務(wù)器之間安全通信”。分析 在此方案中,由于所有用戶都使用Windows帳戶并且使用的是MicrosoftInternet Explo
14、rer,所以在 IIS中最好使用集成Windows身份驗(yàn)證。集成Windows身份驗(yàn)證的優(yōu)點(diǎn)是從不通過(guò)網(wǎng)絡(luò)傳送用戶的密碼。此外,由于Windows使用當(dāng)前交互式用戶的登錄會(huì)話,所以對(duì)于用戶來(lái)說(shuō)登錄是透明的。 ASP.NET作為權(quán)限最少的帳戶運(yùn)行,所以,一旦遭到攻擊,潛在危害被大大 降低。 要執(zhí)行.NET角色檢查或在 Windows ACL中針對(duì)原調(diào)用方保證資源的安 全,您不必在 ASP.NET中進(jìn)行模擬。為了對(duì)原調(diào)用方執(zhí)行.NET角色檢查,按如下所示從HTTP上下文中檢索代表原調(diào)用方的WindowsPrincipal 對(duì)象:WindowsPrincipal wp = (HttpContext.
15、Current.User as WindowsPrincipal); if ( wp.IsInRole("Manager") / User is authorized to perform manager-specific functionality ASP.NET FileAuthorizationModule針對(duì)原調(diào)用方在ACL中檢查在 IIS中映射到 aspnet_isapi.dll的ASP.NET文件類型。對(duì)于靜態(tài)文件類型(例 如.jpg、.gif和.htm文件),IIS充當(dāng)關(guān)守,它根據(jù)文件的相關(guān)NTFS權(quán)限,使用原調(diào)用方的標(biāo)識(shí)執(zhí)行訪問(wèn)檢查。 對(duì)SQL Server
16、使用 Windows身份驗(yàn)證意味著,不必將憑據(jù)存儲(chǔ)在文件中并 通過(guò)網(wǎng)絡(luò)將憑據(jù)傳遞到數(shù)據(jù)庫(kù)服務(wù)器。 在數(shù)據(jù)庫(kù)服務(wù)器上使用重復(fù)的Windows帳戶(與ASP.NET本地帳戶匹配的帳戶)會(huì)導(dǎo)致增加管理負(fù)擔(dān)。如果一臺(tái)計(jì)算機(jī)上的密碼有改動(dòng),則必須在其 他計(jì)算機(jī)上同步并更新它。在某些方案中,您可能能夠使用權(quán)限最少的域帳 戶進(jìn)行更簡(jiǎn)單的管理。 當(dāng)設(shè)置防火墻時(shí)(此時(shí) Windows身份驗(yàn)證所需的端口可能沒(méi)有打開),重復(fù)的本地帳戶方法同樣有效。在此方案中可能無(wú)法使用Windows身份驗(yàn)證和域帳戶。 您需要確保 Windows組的粒度與您的安全要求一樣。由于基于.NET角色的安全性以Windows組成員身份為基礎(chǔ)
17、,所以此解決方案依賴于以正確的粒 度設(shè)置 Windows組,以便與訪問(wèn)應(yīng)用程序的用戶類別(共享相同的安全權(quán)限)匹配。這里用來(lái)管理角色的Windows組可以是此計(jì)算機(jī)的本地組或域組。 SQL Server數(shù)據(jù)庫(kù)用戶角色優(yōu)先于SQL Server應(yīng)用程序角色,這樣可以避免與使用SQL應(yīng)用程序角色有關(guān)的密碼管理和連接池問(wèn)題。應(yīng)用程序通過(guò)用角色名和密碼調(diào)用內(nèi)置的存儲(chǔ)過(guò)程,來(lái)激活SQL應(yīng)用程序角色。因此,必須安全地存儲(chǔ)密碼。當(dāng)使用 SQL應(yīng)用程序角色時(shí),還必須禁用 數(shù)據(jù)庫(kù)連接池,因?yàn)樗鼤?huì)嚴(yán)重影響應(yīng)用程序的可伸縮性。有關(guān)SQL Server數(shù)據(jù)庫(kù)用戶角色和 SQL Server應(yīng)用程序角色的詳細(xì)信息, 請(qǐng)
18、參見第12章“數(shù)據(jù)訪問(wèn)安全性”。 將數(shù)據(jù)庫(kù)用戶添加到數(shù)據(jù)庫(kù)用戶角色中,并且為角色指定了權(quán)限,因此,當(dāng) 數(shù)據(jù)庫(kù)帳戶更改時(shí),您不必更改所有數(shù)據(jù)庫(kù)對(duì)象的權(quán)限。問(wèn)與答 為什么我不能啟用Web應(yīng)用程序模擬,以便使用配置的 ACL針對(duì)原調(diào)用方來(lái)保護(hù) Web應(yīng)用程序所訪問(wèn)的資源?如果啟用模擬,則模擬的安全性上下文不具有網(wǎng)絡(luò)憑據(jù)(假定未啟用委派并 且您使用的是集成Windows身份驗(yàn)證)。因此,對(duì) SQL Server的遠(yuǎn)程調(diào)用將使用NULL會(huì)話,而這將會(huì)導(dǎo)致調(diào)用失敗。如果禁用模擬,則遠(yuǎn)程請(qǐng)求使 用ASP.NET進(jìn)程標(biāo)識(shí)。上述方案使用 ASP.NET FileAuthorizationModule ,它使用
19、Windows ACL 針 對(duì)原調(diào)用方標(biāo)識(shí)執(zhí)行授權(quán),并且不要求進(jìn)行模擬。如果您使用基本身份驗(yàn)證而不是集成Windows身份驗(yàn)證(NTLM),并且確實(shí)啟用了模擬,則每個(gè)數(shù)據(jù)庫(kù)調(diào)用都將使用原調(diào)用方的安全性上下文。每個(gè)用 戶帳戶(或用戶所屬的Windows組)都要求使用SQL Server登錄。需要限制 Windows組(或原調(diào)用方)訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象的權(quán)限以確保安全性。 數(shù)據(jù)庫(kù)不知道誰(shuí)是原始調(diào)用方。我如何能創(chuàng)建一條審核記錄? 審核 Web應(yīng)用程序中的最終用戶活動(dòng),或者將用戶標(biāo)識(shí)作為數(shù)據(jù)訪問(wèn)調(diào)用的參數(shù)明確地進(jìn)行傳遞。相關(guān)方案非 Internet Explorer 瀏覽器對(duì)IIS執(zhí)行集成 Windows身
20、份驗(yàn)證需要使用Internet Explorer。在混合瀏覽器環(huán)境中,您的典型選項(xiàng)包括: 基本身份驗(yàn)證和 SSL。大多數(shù)瀏覽器都支持基本身份驗(yàn)證。由于用戶的憑據(jù) 是通過(guò)網(wǎng)絡(luò)傳遞的,所以必須使用SSL來(lái)保證此方案的安全。 客戶端證書??梢詫⒏鱾€(gè)客戶端證書映射到唯一的Windows帳戶,或者使用單個(gè)Windows帳戶來(lái)代表所有客戶端。使用客戶端證書還要求使用SSL。 表單身份驗(yàn)證。表單身份驗(yàn)證可以根據(jù)自定義數(shù)據(jù)存儲(chǔ)(如數(shù)據(jù)庫(kù))或ActiveDirectory來(lái)驗(yàn)證憑據(jù)。如果根據(jù)Active Directory 進(jìn)行身份驗(yàn)證,請(qǐng)確保僅檢索與應(yīng)用程序有關(guān)的必 要的組。正如不應(yīng)該使用 SELECT *子
21、句對(duì)數(shù)據(jù)庫(kù)執(zhí)行查詢一樣,不應(yīng)盲目 地從Active Directory 中檢索所有的組。如果根據(jù)數(shù)據(jù)庫(kù)進(jìn)行身份驗(yàn)證,您需要仔細(xì)分析SQL命令中使用的輸入值,以防止SQL注入攻擊,并且應(yīng)該在數(shù)據(jù)庫(kù)中存儲(chǔ)密碼哈希值(帶有 salt), 而不是存儲(chǔ)明文密碼或加密密碼。有關(guān)使用SQL Server作為憑據(jù)存儲(chǔ)和將密碼存儲(chǔ)在數(shù)據(jù)庫(kù)中的詳細(xì)信息,請(qǐng)參見第12章“數(shù)據(jù)訪問(wèn)安全性”。注意,在所有情況中,如果您沒(méi)有使用集成Windows身份驗(yàn)證(其中,由平臺(tái)為您管理憑據(jù)),則最后將使用 SSL。不過(guò),此優(yōu)點(diǎn)僅限于身份驗(yàn)證過(guò)程。如果您通 過(guò)網(wǎng)絡(luò)傳遞安全機(jī)密數(shù)據(jù),則仍須使用IPSec或SSL。對(duì)數(shù)據(jù)庫(kù)的SQL身份驗(yàn)
22、證在有些方案中,您可能必須使用SQL身份驗(yàn)證而不是首選的Windows身份驗(yàn)證。例如,在 Web應(yīng)用程序和數(shù)據(jù)庫(kù)之間可能設(shè)置了防火墻,或者由于安全原因, Web服務(wù)器可能不屬于您所在的域。這也會(huì)妨礙Windows身份驗(yàn)證。這種情況下,您可以在數(shù)據(jù)庫(kù)和 Web服務(wù)器之間使用 SQL身份驗(yàn)證。為保證此方案的安全,您 應(yīng)該: 使用數(shù)據(jù)保護(hù) API (DPAPI)來(lái)保護(hù)包含用戶名和密碼的數(shù)據(jù)庫(kù)連接字符串。 有關(guān)更多信息,請(qǐng)?jiān)L問(wèn)以下資源: 第12章“數(shù)據(jù)訪問(wèn)安全性”中的“保護(hù)數(shù)據(jù)庫(kù)連接字符串的安全” 本指南“參考”部分的“如何做:在ASP.NET中使用DPAPI (機(jī)器存儲(chǔ))” 本指南“參考”部分的“如
23、何做:在具有 Enterprise Services 的ASP.NET 中使用DPAPI (用戶存儲(chǔ))” 本指南“參考”部分的“如何做:創(chuàng)建 DPAPI庫(kù)”在Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間,使用IPSec或SSL來(lái)保護(hù)通過(guò)網(wǎng)絡(luò)傳 遞的明文憑據(jù)。將原調(diào)用方傳遞到數(shù)據(jù)庫(kù)在此方案中,使用原調(diào)用方的安全性上下文從Web應(yīng)用程序調(diào)用數(shù)據(jù)庫(kù)。使用此方法時(shí),一定要注意以下幾點(diǎn): 如果選擇此方法,則需要使用Kerberos身份驗(yàn)證(將帳戶配置為使用委派)或基本身份驗(yàn)證。本章后面的“將原調(diào)用方傳遞到數(shù)據(jù)庫(kù)”部分討論了委派方案。 還必須在 ASP.NET中啟用模擬。這意味著使用原調(diào)用方的安全性上下文執(zhí)行 本地系統(tǒng)
24、資源訪問(wèn),因此需要正確地配置本地資源(例如注冊(cè)表和事件日志) 的 ACL。 由于原調(diào)用方無(wú)法共享連接,因此數(shù)據(jù)庫(kù)連接池受到限制。每個(gè)連接都與調(diào) 用方的安全性上下文關(guān)聯(lián)。 另一種傳遞用戶安全性上下文的方法是在應(yīng)用程序級(jí)別傳遞原調(diào)用方的標(biāo)識(shí) (例如,通過(guò)使用方法和存儲(chǔ)過(guò)程參數(shù))。ASP.NET 至U Enterprise Services 至U SQL Server在此方案中,ASP.NET頁(yè)面調(diào)用 Enterprise Services應(yīng)用程序中駐留的業(yè)務(wù)組件,而Enterprise Services應(yīng)用程序又連接到數(shù)據(jù)庫(kù)上。例如,請(qǐng)看一個(gè)內(nèi)部定單系統(tǒng),它通過(guò)Intranet進(jìn)行交易并允許內(nèi)部部
25、門下定單。圖 5.3中顯示了此方案。W*b服冬器Insert figure: CH05 - Intranet - ASPNET to Local ES to SQL Server.gif圖5.3ASP.NET會(huì)在Enterprise Services中調(diào)用一個(gè)組件,該組件將調(diào)用該數(shù)據(jù)庫(kù)特點(diǎn)本方案具有以下特點(diǎn): 用戶安裝了 Internet Explorer。 在 Web服務(wù)器上部署了組件。 應(yīng)用程序處理機(jī)密數(shù)據(jù),在傳輸過(guò)程中必須保護(hù)這些數(shù)據(jù)的安全。 業(yè)務(wù)組件使用 Windows身份驗(yàn)證連接到SQL Server。 基于調(diào)用方的標(biāo)識(shí)來(lái)限制這些組件中的業(yè)務(wù)功能。 將服務(wù)組件配置為服務(wù)器應(yīng)用程序(進(jìn)
26、程外) 。 組件使用服務(wù)器應(yīng)用程序的進(jìn)程標(biāo)識(shí)連接到數(shù)據(jù)庫(kù)。 在 ASP.NET中啟用模擬(確保基于Enterprise Services角色的安全性)。保護(hù)方案在此方案中,Web服務(wù)器驗(yàn)證原調(diào)用方的身份,并將調(diào)用方的安全性上下文傳遞到服務(wù)組件。服務(wù)組件基于原調(diào)用方的標(biāo)識(shí)授予業(yè)務(wù)功能的訪問(wèn)權(quán)限。數(shù)據(jù)庫(kù)根據(jù)Enterprise Service應(yīng)用程序的進(jìn)程標(biāo)識(shí)進(jìn)行身份驗(yàn)證(即數(shù)據(jù)庫(kù)信任EnterpriseServices應(yīng)用程序中的服務(wù)組件)。當(dāng)服務(wù)組件調(diào)用數(shù)據(jù)庫(kù)時(shí),它在應(yīng)用程序級(jí)別傳 遞用戶的標(biāo)識(shí)(通過(guò)使用受信任的查詢參數(shù))。表5.2:安全措施類別明細(xì)身份驗(yàn)證使用集成 Windows身份驗(yàn)證在
27、Web服務(wù)器上提供增強(qiáng)身份驗(yàn)證。 將原調(diào)用方的安全性上下文傳遞到服務(wù)組件以支持 Enterprise Services (COM+)角色檢查。 使用Windows身份驗(yàn)證保護(hù)數(shù)據(jù)庫(kù)連接的安全。 數(shù)據(jù)庫(kù)信任服務(wù)組件的標(biāo)識(shí)以調(diào)用數(shù)據(jù)庫(kù)。數(shù)授權(quán)安全通信據(jù)庫(kù)驗(yàn)證Enterprise Services應(yīng)用程序進(jìn)程標(biāo) 識(shí)的身份。 使用 Enterprise Services (COM+)角色授予業(yè) 務(wù)邏輯的訪問(wèn)權(quán)限。 使用SSL保護(hù)用戶和 Web應(yīng)用程序之間傳 送的機(jī)密數(shù)據(jù)。 使用IPSec保護(hù)在Web服務(wù)器和數(shù)據(jù)庫(kù)之 間傳送的機(jī)密數(shù)據(jù)。結(jié)果圖5.4顯示了此方案的建議安全配置。完整性Insert figu
28、re: CH05 - Intranet - ASP .NET to Local ES to SQL Server (Solution).gif圖5.4ASP.NET 至ij本地 Enterprise Services 至ij SQL Server 的 Intranet 方案的建議安全配置安全配置步驟在開始之前,您需要查看以下內(nèi)容: 創(chuàng)建一個(gè)權(quán)限最少的數(shù)據(jù)庫(kù)帳戶(參見第12章“數(shù)據(jù)訪問(wèn)安全性”) 在 Web服務(wù)器上配置 SSL (請(qǐng)參見本指南“參考”部分的“如何做:在 Web 服務(wù)器上設(shè)置 SSL") 配置IPSec (請(qǐng)參見本指南“參考”部分的“如何做:使用IPSec以便在兩臺(tái)服務(wù)器
29、之間安全通信”) 配置Enterprise Services安全性(請(qǐng)參見本指南“參考"部分的"如何做:將基于角色的安全性用于Enterprise Services ")配置IIS步驟更多信息禁用對(duì)Web應(yīng)用程序的虛擬根目錄的匿名訪問(wèn)啟用集成的Windows身份驗(yàn)證配置 ASP.NET步驟更多信息將ASP.NET Web應(yīng)用程序編輯應(yīng)用程序的虛擬根目錄下的Web.config配置為使用Windows 身份 將 <authentication > 元素設(shè)置為:這可以通過(guò)使用“組件服務(wù)”工具,或通過(guò)位于服務(wù)組件程 序集中的以下.NET屬性進(jìn)行配置。驗(yàn)證au
30、thentication mode="Windows" />配置ASP.NET Web應(yīng)用程序的模擬編輯Web應(yīng)用程序的虛擬目錄下的Web.config將identity > 元素設(shè)置為:<identity impersonate="true"/>配置ASP.NET DCOM安全 性,確保 Enterprise Services 調(diào)用支持調(diào)用方模擬編輯Machine.config 并找到 <processModel >元素。確認(rèn)將 comImpersonationLevel 屬性設(shè)置為 Impersonate (默認(rèn)設(shè)
31、 置)<processModelcomImpersonationLevel="Impersonate'配置Enterprise Services步驟更多信息創(chuàng)建一個(gè)用于運(yùn)行Enterprise Services 的自定義 帳戶注意:如果使用本地帳戶,則還必須在 上創(chuàng)建一個(gè)重復(fù)的帳戶。SQL Server計(jì)算機(jī)將 Enterprise Services 應(yīng)用程序配置為服務(wù)器應(yīng)用程序assembly: ApplicationActivation(ActivationOption.Server)配置 Enterprise Services(COM+)角色使用“組件服務(wù)”工具或
32、腳本將 到角色中??梢允褂梅?wù)組件程序集中的Windows用戶和/或組添加.NET屬性來(lái)定義角色。將 Enterprise Services 配置為以自定義帳戶運(yùn)行必須使用“組件服務(wù)”工具或腳本進(jìn)行配置。不能使用服務(wù) 組件程序集中的.NET屬性。配置 SQL Server步驟更多信息在SQL Server計(jì)算機(jī)上創(chuàng)用戶名和密碼必須匹配自定義Enterprise Services 帳戶。建一個(gè)與 Enterprise Services進(jìn)程帳戶匹配的 Windows 給予該帳戶以下權(quán)限:帳戶-從網(wǎng)絡(luò)訪問(wèn)此計(jì)算機(jī)-拒絕本地登錄-以批處理作業(yè)登錄配置SQL Server以便進(jìn)行Windows身份驗(yàn)證為
33、Enterprise Services 帳 這將授予對(duì) SQL Server的訪問(wèn)權(quán)限。戶創(chuàng)建一個(gè) sql Server登錄創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)用戶,并這將授予對(duì)特定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。將登錄名映射到數(shù)據(jù)庫(kù)用戶創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)用戶角色,并將數(shù)據(jù)庫(kù)用戶添加給該角色建立數(shù)據(jù)庫(kù)用戶角色的數(shù)據(jù)授予最少的權(quán)限庫(kù)權(quán)限有關(guān)詳細(xì)信息,請(qǐng)參見第12章“數(shù)據(jù)訪問(wèn)安全性”配置安全通信步驟更多信息配置 Web站點(diǎn)的SSL請(qǐng)參見本指南“參考”部分的“如何做:在 Web服務(wù)器上設(shè)置SSL”。配置 Web服務(wù)器和數(shù)據(jù)庫(kù)請(qǐng)參見本指南“參考” 部分的“如何做:使用IPSec以便在服務(wù)器之間的IPSec兩個(gè)服務(wù)器之間安全通信”。分析
34、 ASP.NET和Enterprise Services作為權(quán)限最少的帳戶運(yùn)行,所以,一旦遭到 攻擊,潛在危害被大大降低。當(dāng)任何一方的進(jìn)程標(biāo)識(shí)遭到攻擊時(shí),由于帳戶 僅具有有限的權(quán)限,因此縮小了危害的范圍。另外,在ASP.NET中,如果注 入了惡意腳本,也可以限制潛在的危害。 要將原調(diào)用方的安全T上下文傳遞到Enterprise Services組件(以支持基于Enterprise Services (COM+)角色的授權(quán)),必須配置 ASP.NET應(yīng)用程序以支 持模擬。如果不進(jìn)行模擬,則對(duì)進(jìn)程標(biāo)識(shí) (即ASP.NET輔助進(jìn)程)進(jìn)行角色 檢查。模擬影響被授予資源訪問(wèn)權(quán)限的對(duì)象。在未進(jìn)行模擬時(shí),針
35、對(duì)ASP.NET進(jìn)程標(biāo)識(shí)進(jìn)行系統(tǒng)資源檢查。 在進(jìn)行模擬時(shí), 針對(duì)原調(diào)用方進(jìn)行系統(tǒng)資源檢查。有關(guān)從 ASP.NET訪問(wèn)系統(tǒng)資源的詳細(xì)信 息,請(qǐng)參見第 8章“ASP.NET安全性”中的“訪問(wèn)系統(tǒng)資源”。 通過(guò)使用 Enterprise Services (COM+)角色,將訪問(wèn)檢查推到中間層(業(yè)務(wù)邏 輯所在的位置)進(jìn)行。在這種情況下,在入口處檢查調(diào)用方,將其映射到角 色,以及基于角色調(diào)用業(yè)務(wù)邏輯。這可避免不必要的后端調(diào)用。EnterpriseServices (COM+)角色的另一優(yōu)點(diǎn)是:可以在部署時(shí)使用組件服務(wù)管理器創(chuàng)建 和管理角色。 對(duì)SQL的Windows身份驗(yàn)證意味著,可以避免在文件中存儲(chǔ)
36、憑據(jù)并通過(guò)網(wǎng) 絡(luò)進(jìn)行傳送。 當(dāng)設(shè)置了防火墻時(shí)(此時(shí) Windows身份驗(yàn)證所需的端口可能沒(méi)有打開),仍然可以使用本地帳戶運(yùn)行Enterprise Services應(yīng)用程序,以及在數(shù)據(jù)庫(kù)服務(wù)器上使用重復(fù)的帳戶。在此方案中可能無(wú)法使用Windows身份驗(yàn)證和域帳戶。 在數(shù)據(jù)庫(kù)服務(wù)器上使用重復(fù)的Windows帳戶(與Enterprise Services進(jìn)程帳戶匹配的帳戶)會(huì)導(dǎo)致增大管理負(fù)擔(dān)。密碼應(yīng)當(dāng)定期手動(dòng)更新并同步。 由于基于.NET角色的安全性以Windows組成員身份為基礎(chǔ),此解決方案依賴于以正確白粒度設(shè)置Windows組,以便與訪問(wèn)應(yīng)用程序的用戶類別(共享相同的安全權(quán)限)匹配。ASP.NE
37、T 至U Web 服務(wù)到 SQL Server在此方案中,運(yùn)行 ASP.NET頁(yè)的 Web服務(wù)器連接到遠(yuǎn)程服務(wù)器上的 Web服務(wù)。該服務(wù)器又連接到遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器。例如,請(qǐng)看一個(gè)提供用戶特定機(jī)密數(shù)據(jù)的人力資源 Web應(yīng)用程序。此應(yīng)用程序依賴 Web服務(wù)進(jìn)行數(shù)據(jù)檢索。圖 5.5顯示了 此應(yīng)用程序方案的基本模型。心k服箝器應(yīng)用程序服務(wù)器遨據(jù)庫(kù)服務(wù)器Insert figure: CH05 - Intranet - ASPNET to Remote Web Service to SQL Server.gif圖5.5ASP.NET 至ij遠(yuǎn)程 Web 服務(wù)到 SQL ServerWeb服務(wù)公開一個(gè)允許個(gè)
38、別雇員檢索他或她的個(gè)人詳細(xì)信息的方法。必須使用 Web應(yīng)用程序只給通過(guò)身份驗(yàn)證的個(gè)人提供詳細(xì)信息。Web服務(wù)還提供了一個(gè)支持任何雇員詳細(xì)信息檢索的方法。只有人力資源或工資部門的成員可以使用此功能。在此 方案中,將雇員分為三個(gè)Windows組: HRDept (人力資源部門的成員)該組的成員可以檢索有關(guān)任何雇員的詳細(xì)信息。 PayrollDept (工資部門的成員)該組的成員可以檢索有關(guān)任何雇員的詳細(xì)信息。 Employees (所有雇員)該組的成員只能檢索他們自己的詳細(xì)信息。由于數(shù)據(jù)本身所具有的保密性,應(yīng)保證所有節(jié)點(diǎn)之間通信的安全。特點(diǎn) 用戶安裝了 Internet Explorer 5.x
39、或更高版本。 所有計(jì)算機(jī)運(yùn)行的都是Windows 2000或更高版本。 用戶帳戶位于單一目錄林的Active Directory 中。 應(yīng)用程序?qū)⒃{(diào)用方的安全性上下文一直傳遞到數(shù)據(jù)庫(kù)。 所有層都使用 Windows身份驗(yàn)證。 將域用戶帳戶配置為使用委派。 數(shù)據(jù)庫(kù)不支持委派。保護(hù)方案在此方案中,駐留 ASP.NET Web應(yīng)用程序的 Web服務(wù)器驗(yàn)證原調(diào)用方的標(biāo)識(shí),并將它們的安全性上下文傳遞到駐留Web服務(wù)的遠(yuǎn)程服務(wù)器。這樣就可以對(duì)Web方法應(yīng)用授權(quán)檢查,以允許或拒絕對(duì)原調(diào)用方的訪問(wèn)。數(shù)據(jù)庫(kù)驗(yàn)證Web服務(wù)進(jìn)程標(biāo)識(shí)的身份(數(shù)據(jù)庫(kù)信任 Web服務(wù))。Web服務(wù)反過(guò)來(lái)調(diào)用數(shù)據(jù)庫(kù), 并使用存儲(chǔ)過(guò) 程參
40、數(shù)在應(yīng)用程序級(jí)別傳遞用戶的標(biāo)識(shí)。表5.3:安全措施類別明細(xì)身份驗(yàn)證 Web應(yīng)用程序在 IIS中使用集成 Windows身 份驗(yàn)證來(lái)驗(yàn)證用戶的身份。 Web服務(wù)在IIS中使用集成 Windows身份驗(yàn) 證。它對(duì)Web應(yīng)用程序所委派的原調(diào)用方安全 性上卜義進(jìn)行身份驗(yàn)證。 可以使用 Kerberos身份驗(yàn)證協(xié)議,通過(guò)委派將 原調(diào)用方安全性上下文從Web應(yīng)用程序傳遞到Web服務(wù)。 可以使用 Windows身份驗(yàn)證,通過(guò) ASP.NET 進(jìn)程帳戶連接到數(shù)據(jù)庫(kù)。授權(quán) Web應(yīng)用程序?qū)υ{(diào)用方執(zhí)行角色檢查,以限制對(duì)頁(yè)面的訪問(wèn)。通過(guò)使用基于原調(diào)用方Windows組成員身份的.NET角色,控制對(duì) Web服務(wù)方法
41、的訪問(wèn)。安全通信可通過(guò)使用 SSL來(lái)保護(hù)在原調(diào)用方和Web應(yīng)用程序及 Web服務(wù)之間傳送的機(jī)密數(shù)據(jù)。 可通過(guò)使用IPSec來(lái)保護(hù)在 Web服務(wù)和數(shù)據(jù) 庫(kù)之間傳送的機(jī)密數(shù)據(jù)。結(jié)果圖5.6顯示了此方案的建議安全配置。文件授權(quán) (授權(quán))BTFS收眼文件提相 .NET角色 (接校1NTfS權(quán)限Insert figure: CH05 - Intranet - ASP .NET to Remote Web Service to SQL Server (Solution).gif圖5.6ASP.NET至ij Web服務(wù)到SQL Server的Intranet方案的建議安全配置安全配置步驟在開始之前,您需要查
42、看以下內(nèi)容: 在 Web服務(wù)器上配置 SSL (請(qǐng)參見本指南“參考”部分的“如何做:在 Web 服務(wù)器上設(shè)置 SSL”)IPSec 以便在兩 配置IPSec (請(qǐng)參見本指南“參考”部分的“如何做:使用 臺(tái)服務(wù)器之間安全通信”)配置 Web服務(wù)器(它駐留 Web應(yīng)用程序)配置IIS步驟更多信息禁用對(duì)Web應(yīng)用程序的虛擬根目錄的匿名訪問(wèn) 對(duì)Web應(yīng)用程序的虛擬根目錄啟用Windows集成身份驗(yàn)證配置 ASP.NET步驟更多信息將 ASP.NET Web應(yīng)用程序編輯 Web應(yīng)用程序的虛擬目錄下的Web.config配置為使用Windows 身份 將authentication > 元素設(shè)置為:
43、驗(yàn)證authentication mode="Windows" />配置 ASP.NET Web應(yīng)用程 編輯 Web應(yīng)用程序的虛擬目錄下的Web.config序的模擬將identity > 元素設(shè)置為:identity impersonate="true"/>配置應(yīng)用程序服務(wù)器(它駐留 Web服務(wù))配置IIS步驟更多信息禁用對(duì)Web服務(wù)的虛擬根 目錄的匿名訪問(wèn)對(duì)Web服務(wù)的虛擬根目錄啟用Windows集成身份驗(yàn) 證配置 ASP.NET步驟更多信息將ASPNET密碼更改為一ASPNET是權(quán)限最少的本地帳戶,默認(rèn)情況下用來(lái)運(yùn)行個(gè)已知值A(chǔ)SP
44、.NET Web應(yīng)用程序。通過(guò)使用本地用戶和組將ASPNET帳戶的密碼改為一個(gè)已知值。編 輯位于windir%Microsoft.NETFrameworkv1.0.3705CONFIG 中的 Machine.config并重新配置 <processModel >元素的密碼屬性:默認(rèn)<!- userName="machine" password="AutoGenerate"->成為<!- userName="machine" password="YourNewStrongPassword"
45、;->將 ASP.NET Web服務(wù)配置編輯Web服務(wù)的虛擬目錄下的Web.config為使用Windows身份驗(yàn)證將authentication > 元素設(shè)置為:authentication mode="Windows" />確保模擬處于關(guān)閉狀態(tài)默認(rèn)情況下模擬處于關(guān)閉狀態(tài);不過(guò),請(qǐng)執(zhí)行如下操作,再次檢查以確保它在Web.config中是關(guān)閉的:<identity impersonate="false"/>注意,由于默認(rèn)情況下禁用模擬,因此通過(guò)刪除<identity >元素可以達(dá)到同樣的效果。配置 SQL Ser
46、ver步驟更多信息在SQL Server計(jì)算機(jī)上創(chuàng)用戶名和密碼必須匹配自定義ASP.NET帳戶。建一個(gè)Windows帳戶,以便匹配用于運(yùn)行 Web服務(wù)的給予該帳戶以下權(quán)限:ASP.NET進(jìn)程帳戶-從網(wǎng)絡(luò)訪問(wèn)此計(jì)算機(jī)-拒絕本地登錄-以批處理作業(yè)登錄配置SQL Server以便進(jìn)行Windows身份驗(yàn)證為自定義 ASP.NET帳戶創(chuàng)這將授予對(duì) SQL Server的訪問(wèn)權(quán)限建一個(gè)SQL Server登錄創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)用戶,并這將授予對(duì)特定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。將登錄名映射到數(shù)據(jù)庫(kù)用戶創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)用戶角色,并將數(shù)據(jù)庫(kù)用戶添加給該角色建立數(shù)據(jù)庫(kù)用戶角色的數(shù)據(jù)授予最少的權(quán)限庫(kù)權(quán)限配置安全通信步驟更多
47、信息在 Web服務(wù)器上配置 Web 請(qǐng)參見本指南“參考”部分的“如何做:在 Web服務(wù)器上 站點(diǎn)的SSL設(shè)置SSL”。配置 Web服務(wù)器和數(shù)據(jù)庫(kù)請(qǐng)參見本指南“參考” 部分的“如何做:使用IPSec以便在服務(wù)器之間的IPSec兩個(gè)服務(wù)器之間安全通信”。分析 在此方案中,IIS中的集成 Windows身份驗(yàn)證是理想的選擇。這是因?yàn)?,?有用戶都使用 Windows 2000或更高版本、Internet Explorer 5.x 或更高版本, 并且都使用 Active Directory 帳戶,因此具備了使用Kerberos身份驗(yàn)證協(xié)議(其支持委派)的條件。這樣,您就可以跨計(jì)算機(jī)邊界傳遞用戶的安全性
48、上 下文。 在Active Directory中,不能將最終用戶帳戶標(biāo)記為“敏感,不能被委派“。在Active Directory中,必須將 Web服務(wù)器計(jì)算機(jī)帳戶標(biāo)記為“可以委派其 他帳戶”。有關(guān)詳細(xì)信息,請(qǐng)參見本指南“參考”部分的“如何做:對(duì)Windows 2000 實(shí)現(xiàn) Kerberos 委派',。 Web服務(wù)器和應(yīng)用程序服務(wù)器上的ASP.NET作為權(quán)限最少的本地帳戶(本地ASPNET帳戶)運(yùn)行,這樣一旦遭到攻擊,潛在危害被大大降低。 將Web服務(wù)和Web應(yīng)用程序配置為使用Windows身份驗(yàn)證。將兩臺(tái)計(jì)算機(jī)上的IIS配置為使用集成 Windows身份驗(yàn)證。 當(dāng)從 Web應(yīng)用程序
49、調(diào)用 Web服務(wù)時(shí),默認(rèn)情況下不傳遞憑據(jù)。要響應(yīng)下游 Web服務(wù)器上IIS發(fā)出的網(wǎng)絡(luò)身份驗(yàn)證質(zhì)詢,必須使用憑據(jù)。必須使用以下方 法設(shè)置Web服務(wù)代理的 Credentials屬性以明確地指定這一點(diǎn):wsproxy.Credentials = CredentialCache.DefaultCredentials;有關(guān)使用憑據(jù)調(diào)用Web服務(wù)的詳細(xì)信息,請(qǐng)參見第10章“Web服務(wù)安全世”。 將 Web應(yīng)用程序配置為使用模擬。因此,在從 Web應(yīng)用程序調(diào)用 Web服 務(wù)時(shí),就會(huì)傳遞原調(diào)用方的安全性上下文,并且允許Web服務(wù)對(duì)原調(diào)用方進(jìn)行身份驗(yàn)證(和授權(quán))。 在 Web服務(wù)中使用.NET角色,基于用戶所
50、屬的Windows組(HRDept、PayrollDept 和 Employees)對(duì)用戶進(jìn)彳T授權(quán)。HRDept 和 PayrollDept 的成員 可以檢索任何雇員的雇員詳細(xì)信息,而Employees組的成員僅有權(quán)檢索他們自己的詳細(xì)信息。可以使用 PrincipalPermissionAttribute 類在Web方法中加上注釋,以查詢特定的角色成員身份,如以下代碼示例所示。注意,可以用 PrincipalPermission 代替 PrincipalPermissionAttribute 。這是所有.NET 屬 性類型的共同特性。WebMethodPrincipalPermission(
51、SecurityAction.Demand,Role="DomainNameHRDept)public DataSet RetrieveEmployeeDetails()上述代碼中顯示的屬性表示,只允許DomainNameHRDept Windows組的成員調(diào)用RetrieveEmployeeDetails 方法。如果任何非成員試圖調(diào)用此方法, 就 會(huì)發(fā)生安全異常。 ASP.NET文件授權(quán)(在 Web應(yīng)用程序和 Web服務(wù)中)針對(duì)調(diào)用方在ACL中檢查在IIS元數(shù)據(jù)庫(kù)中是否將任何文件類型映射到Aspnet_isapi.dll。IIS檢查不存在ISAPI映射的靜態(tài)文件類型(例如 .jpg
52、、.gif、.htm等),同樣使 用的是附加到文件中的ACL。 因?yàn)閷eb應(yīng)用程序配置為使用模擬,所以必須用 ACL來(lái)配置應(yīng)用程序本 身所訪問(wèn)的資源,以便給原調(diào)用方至少授予讀取權(quán)限。 Web服務(wù)不使用模擬或委派;因此,它使用 ASP.NET進(jìn)程標(biāo)識(shí)來(lái)訪問(wèn)本地 系統(tǒng)資源和數(shù)據(jù)庫(kù)。因此,所有調(diào)用都是使用單個(gè)進(jìn)程帳戶完成的。因此, 可以使用數(shù)據(jù)庫(kù)連接池。如果數(shù)據(jù)庫(kù)不支持委派(例如 SQL Server 7.0或更 低版本),則最好選擇此方案。 對(duì)SQL Server進(jìn)行的 Windows身份驗(yàn)證意味著不必在Web服務(wù)器上存儲(chǔ)憑據(jù),也意味著不必通過(guò)網(wǎng)絡(luò)將憑據(jù)發(fā)送到SQL Server計(jì)算機(jī)。 原調(diào)用
53、方和 Web服務(wù)器之間的 SSL保護(hù)傳遞到和來(lái)自Web應(yīng)用程序的數(shù)據(jù)。 下游Web服務(wù)器和數(shù)據(jù)庫(kù)之間的IPSec保護(hù)傳遞到和來(lái)自數(shù)據(jù)庫(kù)的數(shù)據(jù)。 在數(shù)據(jù)庫(kù)服務(wù)器上使用重復(fù)的Windows帳戶(與ASP.NET進(jìn)程帳戶匹配的帳戶)會(huì)導(dǎo)致增大管理負(fù)擔(dān)。密碼應(yīng)當(dāng)定期手動(dòng)更新并同步。另一種方法是,考慮使用權(quán)限最少的域帳戶。有關(guān)選擇ASP.NET進(jìn)程標(biāo)識(shí)的 詳細(xì)信息,請(qǐng)參見第9章“ASP.NET安全性”。 因?yàn)榛?NET角色的安全性以 Windows組成員為基礎(chǔ),所以此解決方案 需要根據(jù)相應(yīng)層次的Windows組來(lái)匹配那些將要訪問(wèn)該應(yīng)用程序的用戶類別(共享相同的安全權(quán)限)。 Kerberos委派是不受限
54、制的,因此必須嚴(yán)格控制在Web服務(wù)器上運(yùn)行的應(yīng)用程序標(biāo)識(shí)。為了提高安全門檻,應(yīng)從Domain Users組中刪除域帳戶以限制 域帳戶的訪問(wèn)范圍,并且只從相應(yīng)的計(jì)算機(jī)提供訪問(wèn)。有關(guān)詳細(xì)信息,請(qǐng)參 見 “Default Access Control Settings ” 白皮書。問(wèn)與答數(shù)據(jù)庫(kù)不知道誰(shuí)是原始調(diào)用方。我如何能創(chuàng)建一條審核記錄?審核 Web服務(wù)中的最終用戶活動(dòng),或者將用戶的標(biāo)識(shí)作為數(shù)據(jù)訪問(wèn)調(diào)用的參數(shù)明 確地進(jìn)行傳遞。相關(guān)方案如果您需要連接到非 SQL Server數(shù)據(jù)庫(kù),或者目前使用的是 SQL身份驗(yàn)證,則必 須使用連接字符串明確地傳遞數(shù)據(jù)庫(kù)帳戶憑據(jù)。如果您這樣做,請(qǐng)確保安全地存儲(chǔ) 連接
55、字符串。有關(guān)詳細(xì)信息,請(qǐng)參見第 12章“數(shù)據(jù)訪問(wèn)安全性”中的“安全存儲(chǔ)連接字符串”。ASP.NET 至U Remoting 至U SQL Server在此方案中,運(yùn)行 ASP.NET頁(yè)的Web服務(wù)器安全地連接到遠(yuǎn)程應(yīng)用程序服務(wù)器上的遠(yuǎn)程組件。Web服務(wù)器通過(guò)使用 .NET Remoting在HTTP通道上與該組件進(jìn)行通信。遠(yuǎn)程組件由 ASP.NET駐留。圖5.7顯示了此方案。%b服務(wù)器應(yīng)用程序服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器.NET RiotingInsert figure: CH05 - Intranet - ASPNET to Remote Component via .NET Remoting to SQL Server.gif圖5.7ASP.NET 至ij使用.NET Remoting 的遠(yuǎn)程處理到 SQL Server特點(diǎn) 用戶使用不同類型的Web瀏覽器。 遠(yuǎn)程組件由 ASP.NET駐留。 Web應(yīng)用程序使用 HTTP通道與遠(yuǎn)程組件進(jìn)行通信。 ASP.NET應(yīng)用程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 輸液給藥后的觀察與護(hù)理
- 航空航天復(fù)合材料 課件 第3章 輕金屬基復(fù)合材料
- 旅游景區(qū)停車場(chǎng)車位租賃及旅游合作協(xié)議
- 餐飲客戶家庭聚餐簽單服務(wù)合同
- 征收搬遷拆遷合同匯編寶典
- 采購(gòu)人員廉潔自律與責(zé)任追究協(xié)議
- 教育機(jī)構(gòu)分公司成立及人才培養(yǎng)合作合同
- 紙板品質(zhì)管理培訓(xùn)
- 成都房地產(chǎn)項(xiàng)目股權(quán)質(zhì)押購(gòu)房合同
- 離婚協(xié)議及子女撫養(yǎng)權(quán)、贍養(yǎng)費(fèi)協(xié)議
- 借款合同模版
- 義務(wù)教育英語(yǔ)課程標(biāo)準(zhǔn)(2022年版)
- 荊州中學(xué)2024-2025高二學(xué)年下學(xué)期6月月考 英語(yǔ)答案
- 2018-2022北京高中合格考生物匯編:基因的表達(dá)
- 2025至2030中國(guó)IT運(yùn)維管理行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 新生兒病區(qū)專科理論考試題庫(kù)
- 健康評(píng)估咳嗽咳痰課件
- 白酒酒店合作合同協(xié)議書
- 中國(guó)融通農(nóng)業(yè)發(fā)展有限集團(tuán)有限公司招聘筆試題庫(kù)2025
- 實(shí)驗(yàn)室通風(fēng)系統(tǒng)工程施工方案
- 2024淮安市專業(yè)技術(shù)人員繼續(xù)教育試題參考答案
評(píng)論
0/150
提交評(píng)論