熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

.NET應用程序的授權模型使系統更易管理

2022-06-13   來源: Java核心技術 

  正確設計的授權機制使系統更易部署和管理基於Active Directory等企業身份驗證機制來授權你的應用程序就能與公司現有的安全策略無縫地集成在n層應用程序中每一層都可使用授權從而創建出更靈活的系統
  
  
  
  在表示層你可基於授權用戶的角色來自定義用戶界面(例如為管理階級的用戶顯示管理菜單但在普通用戶面前隱藏此菜單)在業務層可考慮在代碼主體中驗證授權這就使黑客或其他非法用戶不易在未經正確授權的情況下使用一個代碼小節在數據層通過在檢索或插入數據之前請求授權可確保只有合法用戶才能更改數據
  
  
  
  授權類型
  
  NET系統主要運行種授權類型Windows授權代碼訪問安全性(Code Access SecurityCAS)授權或者應用程序專用授權綜合運用這些授權機制就能創建一個非常安全的系統下面讓我們詳細討論它們
  
  
  
  Windows授權
  
  利用訪問控制列表(Access Control ListsACL)來設置權限系統管理員可控制哪些用戶有權訪問特定的系統資源通常要由運行應用程序的那個系統的管理員來控制這些設置由於生產環境和測試/認證環境中的管理員通常是不同的人所以必須正確文檔化特定的授權設置確保應用程序最終能正確運行這些設置包括
  
  Active Directory權限
  NTFS管理的文件權限
  Web Config設置它為基於ASPNET的應用程序限制對特定URL的訪問
  服務器產品的特有權限產品包括Microsoft SQL Server(例如表視圖或存儲過程)或者Microsoft Exchange(例如郵箱公共文件夾等)
  CAS授權
  
  Windows授權限制對單個對象的訪問相反CAS授權允許應用程序根據一系列批准的權限(名為權限集)來執行這些權限集是基於憑證(evidence)而建立的包括代碼的來源它的出版商及其強名稱必須注意到CAS授權獨立於其他任何授權機制運行這樣可有效保護系統資源無論用戶被驗證成什麼身份
  
  例如假定一個權限集禁止來自因特網的代碼刪除用戶機器上的文件那麼這個限制將永遠有效無論用戶的身份被驗證成系統管理員還是驗證成來賓可用Caspolexe命令行實用程序來配置CAS授權或使用Microsoft NET Framework Configuration控制台來配置(後者通過控制面板的管理工具來訪問)
  
  應用程序專用授權
  
  
  
  即使Windows授權用戶執行一個操作而且正在執行的代碼具有恰當的權限但它們還要通過第道關卡的考驗——你的應用程序可決定是否授權特定用戶執行操作通過創建應用程序專用的一個授權框架就可根據用戶的身份驗證主體(authenticated principal)來響應不同的用戶並進一步控制用戶有權采取的操作這種授權機制主要用於管理或限制對特定應用程序資源的訪問或根據通過身份驗證的主體來強制不同的業務規則
  
  我在自己的Web和Windows應用程序中廣泛運用了應用程序專用授權在Web應用程序中我通常用它動態生成菜單使用戶只看到他們有權看到的選項對於Windows應用程序我將授權代碼嵌入業務邏輯中防止用戶執行需要更高級授權的代碼為了有效地使用和管理授權你需要一個公共場所來存儲權限而且要采取一種方式為用戶分組這樣一來一旦權限需要更改就不必單獨配置每個用戶
  
  
  
  角色的作用
  
  NET框架允許你對一個用戶組授權利用角色為組內的所有用戶指派相同的安全權限由於管理的是角色而非單獨的用戶所以當用戶四處移動時你的應用程序無需改變另外假定你管理的是個角色而不是名用戶那麼花在管理應用程序上的時間明顯少得多使用Active Directory來存儲身份驗證信息你的NET應用程序就能自動使用Active Directory中內建的用戶和角色能力此外使用與SQL Server集成的安全機制可以擴展這些角色將權限關聯到SQL Server對象從而將安全性提升到一個新台階而且無需額外的編碼
  
  即使決定不使用Active Directory也可直接針對IPrincipal對象和IsInRole方法來編程從而指派來自外部存儲(例如SQL數據庫表XML文件或者使用套接字等接口的一個外部系統)的角色並驗證角色的成員關系
  
  授權是任何NET系統的關鍵設計元素理解了種主要的授權類型後你可在設計自己的系統時選用其中的一種或者多種
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26499.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.