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

首頁 > 學院 > 開發設計 > 正文

安全技術 Java與安全性,第1部分一

2019-11-18 12:22:40
字體:
來源:轉載
供稿:網友

  WebLogic提供一套功能全面的安全服務,這些服務可以從各個方面保護域及其部署。這些安全服務影響到域的所有方面:從java Security Manager提供的最底層安全性,到連接級別的安全性,再到應用級別的安全性(可以保護所治理和部署的對象,比如EJB,web服務和JDBC池),最后到域級別的安全性(可以建立兩個域之間的信任)。這些安全服務的目標是3個截然不同的用戶群:可以使用服務來保護其應用程序的應用程序開發人員;需要為系統和部署配置安全性的治理員;以及可以修改和擴展WebLogic所提供的功能的安全性供給商。
  
  讓我們從JVM層開始。在這一層,Java Security Manager使用一個安全性策略文件來限制對特定的運行時操作的訪問。這確保了運行在JVM(包括WebLogic Server本身)上的程序僅可以許可方式訪問受保護的資源。例如,可以配置Java Security Manager,以便讓所有線程都擁有僅對于文件系統中特定目錄的寫權限。通過答應為資源適配器和EJB定義另外的安全策略,WebLogic增強了Security Manager,從而確保了這些組件能夠只訪問已定義的資源。還有一些其他的全局高級安全性權限可以應用于這些資源和應用程序代碼。
  
  WebLogic可以從客戶端過濾連接請求。連接過濾器定義了一些規則,規定了如何確定服務器是接受還是拒絕客戶端連接。這些規則基于幾個參數,這些參數通常包括:客戶端的ip地址和端口;用于建立連接的協議;以及服務器的監聽地址和端口。可以為一臺服務器指定多個連接過濾器,甚至可以編寫自己的連接過濾器類來實現定制的過濾邏輯。例如,通過使用連接過濾器,可以很輕易地確保服務器只接受來自內部網的T3連接。SSL安全性是另一種可在套接字層上使用的機制,我們在16章中已經講述過這種機制。SSL可以通過支持數據完整性、機密性和身份驗證,保護給定的網絡通信。
  
  WebLogic部分地支持標準的JAAS。JAAS框架是對J2SE v1.3的一種標準擴展,現在已成為J2SE v1.4平臺的一部分。身份驗證使服務器可以驗證運行Java代碼的用戶的身份,不論它是applet、servlet、EJB還是應用程序。授權則使服務器能夠基于用戶的身份、安全權限和策略實施訪問控制。WebLogic答應Java客戶端使用JAAS身份驗證,而且邏輯模塊也是使用JAAS實現的。假如需要使用JAAS授權,就必須在WebLogic的基礎架構上編寫自己的模式。
  
  WebLogic的安全性基礎架構建立在一組模塊化的、可擴展的安全服務提供程序接口(security service PRovider interfaces ,SSPI)之上。這種架構答應插入新的安全提供程序替換舊的,并可以與用戶自己的提供程序一起運行WebLogic的默認提供程序。WebLogic發行文件配備了一組安全提供程序,為SSPI提供默認實現。WebLogic的安全提供程序為J2EE應用程序實現了底層安全性框架。也就是說,標準的J2EE定義的安全機制是通過SSPI實現(和擴展)的。通常,WebLogic的安全提供程序會改進現有的安全約束。例如,標準的ejb-jar.xml部署描述符答應限定只有具有特定角色的、已通過身份驗證的用戶才能訪問某個EJB方法。WebLogic答應改進這種約束,確保用戶只在一天中的某些時段具有訪問權。事實上,SSPI是一種開放的架構,可以很輕易地插入來自某家安全供給商的第三方安全提供程序。另外,還可以通過實現自己的安全提供程序來構建新的安全服務。
  
  WebLogic默認的安全提供程序功能相當全。security realm(安全域)就是一個用戶、組、角色、安全策略的邏輯分組,以及一整套安全提供程序。為服務器資源指定的安全策略可用于確定授權誰訪問資源。WebLogic使用戶可以保護所有的資源:單個EJB方法、web應用程序、web頁面的集合、連接池、數據源或者任何受治理的對象。甚至可以保護JNDI樹中的分支,從而防止未得到授權的客戶端在JNDI樹中查找對象。所有這些安全數據都保存在一臺嵌入式LDAP服務器中。還可以配置WebLogic來使用外部的LDAP庫,比如Open LDAP,Active Directory,或Novell NDS。這些外部庫只能用于身份驗證,而不能用于授權。
  
  最后,WebLogic答應在兩個域之間建立一種信任機制。這確保了一個域中已通過身份驗證的用戶可以訪問另一個域中的資源。
  
  本章分析了所有這些安全機制。盡管它們彼此大相迥異,但是它們互相補充得非常好。我們從考察Java Security Manager和WebLogic如何過濾連接請求開始,然后分析WebLogic的身份驗證和授權框架,并了解它如何支持標準的J2EE安全服務。我們還切換使用了安全域中可用的各種安全提供程序以及它們的默認實現。最后,我們將考察如何使用JAAS進行身份驗證,并舉一個Authentication 和Identity Assertion提供程序的例子。
  
  Java Security Manager
  
  在JVM層上,WebLogic可以使用標準的Java Security Manager來防止不受信任的代碼執行有害的動作。可以使用安全策略文件來配置JVM,以便讓運行在JVM上的所有線程都能夠受限制地訪問敏感的運行時操作。安全策略文件封裝了一組權限,這些權限將授予給當前的JVM實例中加載的所有類(或者取消)。可以定義一整套安全權限來控制對特定資源的訪問——例如,對于文件系統上某個文件夾的“寫(write)”訪問權限,對于特定主機和特定范圍的端口的“連接(connect)”訪問權限,對于環境變量的“讀(read)”訪問權限,對于當前類加載器的“獲取(get)”訪問權限,等等。要獲得更多關于Security Manager和安全策略文件的信息,請參考JDK說明文檔。
  
  Java的Security Manager確保運行在WebLogic中的任意代碼都僅可以許可的方式訪問這些重要資源。這種低級的訪問控制對于第三方不受信任代碼可能很有用。Java Security Manager還可以與J2EE部署設置交互。例如,可以使用標準的ra.xml部署描述符來定義應用于資源適配器的安全權限。WebLogic也為web應用程序和EJB提供類似的訪問控制。
  
  注重,WebLogic需要有一個可用的策略文件才可以運行。startWebLogic腳本用于加載默認位于WL_HOME/server/lib/weblogic. Policy下的策略文件。
  
  配置Security Manager
  
  為了使用Java Security Manager,需要在啟動WebLogic Server時從命令行提供兩個選項:
  
  必須使用–Djava.security.manager選項,以確保安裝了默認的安全治理器而且JVM通過了策略檢查。
  
  必須使用–Djava.security.policy選項,以指定安全策略文件的位置。
  
  默認情況下,JVM使用定義在java.security和java.policy文件(位于JAVA_HOME/jre/lib/security文件夾中)中的安全策略。下面是使用定制的安全策略文件啟動WebLogic Server的語法:
  
  java –Djava.security.manager –Djava.security.policy==c:oreilly.policy
  
  ... weblogic.Server
  
  WebLogic創建的默認啟動腳本引用了位于WL_HOME/server/lib/weblogic.policy下的示例安全策略文件。注重,指定java.security.policy參數時,我們使用了==(雙等號)。這使得Security Manager使用c:oreilly.policy作為它惟一的策略源。假如我們只使用一個等號,該策略文件就會與JDK安裝所提供的默認安全策略文件一起使用。
  
  通常,JVM將使用安全策略文件對運行在WebLogic中的任意代碼實施訪問控制。這條規則惟一的例外是在WebLogic Server啟動時。當服務器啟動時,WebLogic部分地禁用了Java Security Manager,并使用一個禁用checkRead()方法的變體來替換它。雖然這種方法改進了啟動順序的性能,但是它也會降低JVM在啟動期間的安全性。另外,它意味著WebLogic的啟動類將使用這個修改過的安全治理器運行。需要確保這些類不會導致破壞安全性。
  
  注:因為策略文件決定了運行在WebLogic的JVM中的所有類的訪問權限,所以建議只有治理員才能讀寫安全策略文件。不應該答應其他用戶訪問策略文件。
  
  全局安全策略
  
  WebLogic答應為EJB、資源適配器和weblogic.policy文件中的web應用程序定義安全策略。表17-1列出了為這些組件類型定義默認權限所用的代碼基址。
  
  表17-1. 應用于J2EE組件的訪問權限的默認代碼基址
  
安全技術 Java與安全性,第1部分一

  可以使用這些代碼基礎對特定的J2EE組件類型授予非凡的權限。注重,在這些代碼基址下定義的任何安全策略都可以應用于所有的EJB、資源適配器和部署到特定的服務器實例的web應用程序。
  
  特定于應用程序的安全策略
  
  還可以定義特定于某個EJB組件或資源適配器的安全策略,從而確保只以特定的組件為目標。為此,必須修改它們的部署描述符,而不是策略文件本身。資源適配器支持這種作為J2EE標準一部分的機制,只需修改標準的ra.xml描述符文件。對于EJB,需要修改weblogic-ejb-jar.xml描述符文件。兩種情況中,都是securitypermission元素答應用戶定義另外的安全策略。
  
  讓我們看一看如何為EJB指定權限。weblogic-ejb-jar.xml描述符中的security-permission元素指定了應用于打包在EJB JAR中的所有EJB的安全權限。下面的例子授予服務器文件系統中的一個臨時目錄對EJB的讀和寫的訪問權限:
  
  <weblogic-enterprise-bean>
  <!-- webLogic enterprise bean statements go here -->
  </weblogic-enterprise-bean>
  <security-role-assignment>
  <!-- the optional security role assignments go here -->
  </security-role-assignment>
  <security-permission>
  <description>
  grant permission to special folder
  </description>
  <security-permission-spec>
  grant {
  permission java.io.FilePermission
  "f:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张掖市| 仁化县| 轮台县| 乌审旗| 沂水县| 宕昌县| 商水县| 开鲁县| 隆化县| 运城市| 永济市| 呼图壁县| 巴林左旗| 拉孜县| 井陉县| 虎林市| 晋城| 彭山县| 濮阳市| 汕尾市| 平顶山市| 象山县| 应用必备| 宁明县| 延寿县| 敦煌市| 江都市| 旅游| 罗田县| 电白县| 德昌县| 安乡县| 全椒县| 扎鲁特旗| 东乡族自治县| 塘沽区| 应城市| 彭州市| 武定县| 喀什市| 绥棱县|