ASP.NET應用程式的安全方案(二)—授權

來源:互聯網
上載者:User
asp.net|安全|程式 摘要:本文ASP.NET應用程式授權的概念,介紹了各種授權模式並進行了比較,闡述了選擇授權模式的機制。


關鍵字:授權 authorization ASP.NET WEB應用


1.1. 授權概念
任何成功的應用程式安全性原則的基礎都是穩固的身分識別驗證和授權手段,以及提供機密資料的保密性和完整性的安全通訊。
授權(authorization)過程負責控制通過了身分識別驗證的用戶端可以訪問哪些資源,以及可以執行哪些操作。可訪問的資源既包括檔案、資料庫等,還包括系統級的資源,如註冊表,配置資料等。
許多WEB程式不是直接授權客戶訪問底層的資源,而是通過方法(method)來授權用戶端所能夠執行的操作。這樣做的主要原因是考慮到應用系統的延展性和可管理性。 圖1列出了各種安全技術以及每種技術所提供的主要授權方式。

2. 2. 授權方式
如圖1所示,Windows 2000上的.NET架構上提供了以下幾種授權方式:

ASP.NET授權
Enterprise Services授權
SQL Server授權
2.1 ASP.NET授權
2.1.1 URL授權
這是一種通過電腦的設定和應用程式設定檔來配置的授權機制。URL授權允許限制使用者訪問位於應用程式URI命名空間中的特定檔案和檔案夾。

2.1.2 檔案授權
可以使用此方法來限制對某個WEB伺服器上指定檔案的訪問。存取權限由與檔案相關的Windows ACL所確定。

2.1.3 主體許可權請求
主體許可權請求(Principal Permission Demand)可以通過聲明方式或是編程方式作為一種額外的精確的存取控制機制。這種方式允許你根據單個使用者的身份標識群組成員關係,來限制對類、方法或單獨代碼的訪問。

2.1.4 .NET角色
.NET角色用於將應用程式中具有相同許可權的使用者分成一組。這種方式可以和基於票證的身分識別驗證方案(如表單身分識別驗證)一起使用,可以通過聲明方式或是編程方式來配置對資源和操作的訪問。

2.2 Enterprise Services授權
在Enterprise Services的應用程式中,由Enterprise Services 角色的成員關係來控制用戶端訪問包含於伺服器組件的功能。這些角色和.NET角色不同,而且可以包含Windows群組帳戶或使用者帳戶。角色成員關係是在COM+目錄中定義的,而且通過元件服務(Component Service)工具管理。

2.3 SQL Server授權
SQL Server支援精確授權,這些許可權可以應用於單獨的資料庫物件。許可權既可以基於角色成員關係,也可以授予單獨的Windows使用者帳戶或群組帳戶。

3. 選擇授權策略
ASP.NET應用程式有兩種基本的權限原則:基於角色的授權和基於資源的授權。
3.1 基於角色的授權
對操作的訪問通過調用者的角色成員關係,提供安全保護。角色可以將應用程式的使用者群劃分為具有相同安全許可權的使用者組。使用者被映射到角色,而且如果某個使用者被授權執行所請求的操作,則應用程式可以用固定的標識來訪問資源。這些標識被各自的資源管理員(如資料庫和檔案系統)所信任。

3.23.2 基於資源
單獨的資源使用Windows ACL來提供安全保護。應用程式在訪問資源之前類比(impersonate)調用者,這樣可以使作業系統執行標準的訪問檢查。所有對資源的訪問都是使用原始調用者的安全上下文。這種類比方式在應用程式的中介層串連池不能被有效使用,因而影響了應用程式的延展性。

4. 角色的授權的模式
在大多數延展性至關重要的.NET WEB應用程式,使用基於角色的授權方式是最佳選擇。常用的模式如下:

在前端Web應用程式中對使用者進行驗證
將使用者映射到角色
根據角色成員關係來授權對操作(不是直接對資源)的訪問
使用固定的服務識別來訪問必要的後端資源。
一個典型的具體實現步驟如下::
擷取憑據資訊
驗證憑據資訊
將使用者添加到角色中
建立一個IPrincipal對象
將IPrincipal對象放置到當前的HTTP上下文中
根據使用者標識/角色成員關係進行授權
實現的代碼參見《ASP.NET應用程式的安全方案(一)-身分識別驗證》。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.