Websphere5.1.x+JAAS+LDAP配置全攻略(1)

發表于:2007-07-04來源:作者:點擊數: 標簽:
前言: 前些日子寫了一篇關于JAAS+LDAP在j boss 上的配置: http://blog.csdn.net/oicqren/archive/2004/11/27/195803.aspx 現將其移植到 websphere 上,這個過程比JBOSS復雜。同樣是整天在網上搜

前言:
前些日子寫了一篇關于JAAS+LDAP在jboss上的配置:
http://blog.csdn.net/oicqren/archive/2004/11/27/195803.aspx
現將其移植到websphere上,這個過程比JBOSS復雜。同樣是整天在網上搜啊、試啊、問啊,打電話騷擾IBM工程師??!說來奇怪,就是沒人能給一準確答案。也許是老婆來深圳看我,帶來很多支持與運氣。今天解決了這個問題,貼出來。
ps.更多安全信息請參考紅皮書:sg246573

目標:
使用JAAS框架,使用LDAP Server,使用Websphere,做用戶的驗證和授權
(驗證的含義是用戶有效,即用戶名、密碼輸入正確;授權的含義是用戶被授予某種角色)

基礎要求:
精通J2EE框架
熟悉iPlanet Directory Server配置
熟悉Websphere配置
熟悉JAAS框架

準備:
windows 2k (要加入域)
j2sdk1.4.2 installed
Websphere 5.1.x Or Webphsere installed
iPlanet Directory Server 5.1 Service Pack 2 installed

假設:
應用名稱為myApp

應用中需要配置的point-list:
web.XML
application.xml
ibm-application-bnd.xmi
iPlanet Directory Server用戶和角色
websphere admin console:安全性>JAAS 配置>應用程序登錄
websphere admin console:安全性>用戶注冊表>LDAP
websphere admin console:安全性>全局安全性
websphere admin console:應用程序>企業應用程序>myApp>映射安全性角色到用戶/組
可選配置點:
websphere admin console:安全性>認證機制>LTPA

另外:
可以通過WAS AAT工具、或者WSAD開發工具、文本編輯器來修改下面的配置。但要做到配置相同。
我用UltraEdit修改的。所以下面的方法沒有工具的介紹。

[web.xml]
---------------------------------------------------------------------------------------------
是什么我不用說了吧!在</web-app></web-app>標簽中增加下面一段。
<security-constraint>:安全約束的表述
<url-pattern>:  被限定在安全約束中的資源文件名模式*.JSP代表所有jsp文件,*.do代表struts的所有Action
<http-method>:  被限定在安全約束中的訪問方法
<auth-constraint>:  那一種角色可以認為有權限訪問資源
<auth-method>:  驗證授權的方式,此處必須是FORM類型
</realm-name>:  安全域名稱
<form-login-page>:  如果還沒有做驗證,將轉向到此頁面
<form-error-page>:  如果驗證未通過,將轉向到此頁面
<security-role>:  描述一下上面用到的角色
  <security-constraint>
  <web-resource-collection>
  <web-resource-name>Restricted</web-resource-name>
  <description>Declarative security tests</description>
  <url-pattern>*.do</url-pattern>
  <url-pattern>*.jsp</url-pattern>
  <http-method>HEAD</http-method>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
  <http-method>PUT</http-method>
  <http-method>DELETE</http-method>
  </web-resource-collection>
  <auth-constraint>
  <role-name>icpuser</role-name>
  </auth-constraint>
  <user-data-constraint>
  <description>no description</description>
  <transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
  </security-constraint>
  <login-config>
  <auth-method>FORM</auth-method>
  <realm-name>icprealm</realm-name>
  <form-login-config>
  <form-login-page>/login.do</form-login-page>
  <form-error-page>/LogError.do</form-error-page>
  </form-login-config>
  </login-config>
  <security-role>
  <description>A user allowed to login</description>
  <role-name>icpuser</role-name>
  </security-role>
---------------------------------------------------------------------------------------------

[application.xml]
---------------------------------------------------------------------------------------------
不說了,J2EE開發人員都應該認識它。
修改<display-name>myApp</display-name>
在<application></application>標簽中增加下面一段。id="......"很重要不能省略。
  <security-role id="SecurityRole_1">
  <description>role-icpuser</description>
  <role-name>icpuser</role-name>
  </security-role>
---------------------------------------------------------------------------------------------


[ibm-application-bnd.xmi]
---------------------------------------------------------------------------------------------
在"應用程序>安裝新的應用程序"功能中將自己的程序成功發布之后。
檢查$WAS_HOMEconfigcellszkf5011applicationsmyApp.eardeploymentsmyAppMETA-INFibm-application-bnd.xmi文件是否存在下面配置,如果沒有請添加。這里的<role href="META-INF/application.xml#......"/>很重要,必須和application.xml的<security-role id="......">相同,都為"SecurityRole_1"
<authorizationTable>
  <authorizations xmi:id="RoleAssignment_1">
  <role href="META-INF/application.xml#SecurityRole_1"/>
  </authorizations>
<authorizationTable>
---------------------------------------------------------------------------------------------

(待續)

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97