国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET應用程序資源訪問安全模型

2024-07-10 12:57:28
字體:
來源:轉載
供稿:網友

商業(yè)源碼熱門下載www.html.org.cn

摘要:本文主要介紹了asp.net web應用程序的安全模型的種類、對比其優(yōu)缺點,提出了選擇的機制。


關鍵字:安全模型 受信任子模型 模擬/委托子模型 asp.net web應用


1.前言
asp.net web應用程序通常屬于多層體系結構,一般從邏輯結構上可以分為表示層、業(yè)務邏輯層和數據訪問層;客戶端要訪問應用程序資源,其身份認證和授權必然要跨越多個層次。本文主要討論sp.net應用程序的資源訪問安全模型

2. 資源訪問標識
web應用程序對外提供的給客戶端的典型資源包括:

web服務器資源,如web頁、web服務和靜態(tài)資源(html頁和圖像)。
數據庫資源,如針對每個用戶的數據或是應用程序級數據。
網絡資源,如遠程文件系統(tǒng)資源等。
系統(tǒng)資源,如注冊表、事件日志和配置文件等。
客戶端跨越應用程序的層來訪問這些資源,要有一個標識流經各個層。這個用于資源訪問的標識包括:

原始調用者的標識 原始調用者的標識被獲取并且隨后流經系統(tǒng)的每個層。

進程標識 本地資源訪問和下游調用是使用當前進程標識進行的。這種方式的可行性依賴于要跨越的邊界,因為進程標識必須能被目標系統(tǒng)識別。這需要以下面兩種方式之一進行調用:
在同一個windows安全域中
跨windows安全域-使用信任和域賬戶,或者在不存在信任關系的情況下使用重復的用戶名和密碼。
服務賬戶 這種方式使用一個(固定的)服務賬戶。例如
對于數據庫訪問,該服務賬戶可能由連接到數據庫的一個組件表示固定的sql用戶名和密碼。
當需要固定的windows標識時,應使用enterprise services服務器應用程序。
自定義標識 當沒有windows賬戶可用時,可以使用iprincipal和iidentity實現(xiàn)構造自己的標識,可以包含安全上下文有關的詳細信息。
3. 資源訪問模型
3.1 受信任子系統(tǒng)模型
如圖1所示,在這種模型中,原始調用者的安全上下文并不在操作系統(tǒng)級流經服務,而是在中間服務層使用了一個固定標識來訪問下游的服務和資源。受信任子系統(tǒng)模型得名于這樣一個事實:下游服務(可能是一個數據庫)信任上游服務,讓其調用者進行授權。圖1中的示例,數據庫信任中間層對調用者進行的授權,并只允許被授權的調用者使用受信任標識訪問數據庫。
3.1.1 資源訪問模式
在受信任子系統(tǒng)模型中,資源訪問模式如下:

對用戶進行驗證
將用戶映射為角色
根據角色成員關系進行授權
使用一個固定的受信任標識訪問下游資源
3.1.2 固定標識
用于訪問下游系統(tǒng)合資源管理器的固定標識,可以使用進程標識,也可以使用一個預先設定的windows賬戶-服務賬戶來提供。對于sql server資源管理器,這意味著對sql server的windows身份驗證。
使用進程標識時通常使用asp.net進程標識(默認識aspnet賬戶)。實際應用時,經常需要將aspnet賬戶更改為一個更為安全的密碼,并在sql server計算機上鏡像創(chuàng)建一個與asp.net進程帳戶相匹配的windows賬戶。具體方法如下:
編輯位于%windr%/microsoft.net/framework/v1.1.4322/config目錄下的machine.config文件,將<processmodel>元素上的密碼屬性重新配置,將其默認值<!-username="machine" password="autogenerate" -->改為<!-username="machine" password="newpassword" -->;或是通過aspnet_setreg.exe工具,將用戶名和密碼保存到注冊表,配置改為:<!-enable="true" username="registry:hklm/software/yourapp/processsmodel/aspnet_setreg,username" password=" registry:hklm/software/yourapp/processsmodel/aspnet_setreg,password " -->
另外一些應用程序使用指定的sql賬戶(在連接字符串中由用戶名和密碼指定)來訪問sql server。在這種情況下,數據庫必須配置為sql身份驗證。在配置文件中保存的連接字符串需要加密保護。


3.2 模擬/委托模型
如圖2所示,使用模擬/委托模型時,一個服務或組件(通常位于邏輯業(yè)務服務層中)在訪問下一個下游服務前,使用操作系統(tǒng)模擬功能來模擬客戶端標識。如果該服務位于同一計算機上,則使用模擬就足夠了,如果下游服務位于遠程計算機則還需要使用委托,下游資源訪問的安全上下文是客戶端的上下文。

3.3 選擇資源訪問模型
兩種資源訪問模型的比較如表一所示。
受信任子系統(tǒng)模型 模擬/委托模型
審核功能 后端信任上層服務,若中間層受侵害,后端資源易受攻擊。 后端服務可以對每個調用者進行驗證、授權,安全性好。
可伸縮性 支持連接池,伸縮性好。 不支持連接池,伸縮性差。
后端acl管理 acl針對單個實體進行配置,管理工作少。 每個用戶都要被授予相應的訪問級別,后端資源和用戶數增大時,管理工作繁瑣。
技術問題 不用委托。 需要委托。大多數安全服務提供程序不支持委托。

在大多數internet應用程序以及大型intranet應用程序中都會使用受信任子系統(tǒng)模型,這主要是由于這種模型能很好的支持可伸縮性。模擬/委托模型則傾向于用于小型的系統(tǒng)。對于這些應用程序,可伸縮性不是主要的考慮因素,其主要考慮的因素是審核。
3. 相關文章
《asp.net應用程序的安全方案(一)-身份驗證》。
《asp.net應用程序的安全方案(二)-授權》。
《asp.net應用程序的安全方案(二)-安全通信》。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滕州市| 海安县| 阳泉市| 双城市| 台湾省| 丹江口市| 永城市| 井研县| 仪征市| 稷山县| 安宁市| 故城县| 封丘县| 济南市| 镇康县| 神农架林区| 盐边县| 咸阳市| 淮滨县| 呼伦贝尔市| 松江区| 平安县| 遂溪县| 平湖市| 镇沅| 广州市| 盐津县| 齐河县| 华容县| 麦盖提县| 金华市| 巴林左旗| 台中市| 南江县| 离岛区| 白水县| 封开县| 娱乐| 抚远县| 尖扎县| 宜宾市|