J2EE的安全認證機制_第1頁
J2EE的安全認證機制_第2頁
J2EE的安全認證機制_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、J2EE的安全認證機制J2EE的安全認證機制Web應(yīng)用程序的安全機制有二種組件:認證和授權(quán)?;贘2EE 的Web容器提供三種類型的認證機制:基本認證、基于表單的認證、 相互認證。由于能夠?qū)φJ證用戶界面進行定制,大多數(shù)的Web應(yīng)用 程序都使用基于表單的認證。Web容器使用在Web應(yīng)用程序的部署 描述符中定義的安全角色對應(yīng)用程序的Web資源的訪問進行授權(quán)。在使用基于表單的認證機制中,應(yīng)用程序的設(shè)計人員和開發(fā)人員 會遇到3類問題:基于表單的認證如何與數(shù)據(jù)庫和LDAP等其他領(lǐng)域的安全機制協(xié) 同工作。(這是非常必要的,因為許多組織已經(jīng)在數(shù)據(jù)庫和LDAP表 單中實現(xiàn)了認證機制。)如何在Web應(yīng)用程序的部

2、署描述符(web. xml)中增加或刪除授權(quán) 角色。Web容器在Web資源層次上進行授權(quán);應(yīng)用程序則需要在單一的 Web資源中執(zhí)行功能層次上的授權(quán)。盡管有許多與基于表單的認證有關(guān)的文檔和例子,但都沒有能夠 闡明這一問題。因此,大多數(shù)的應(yīng)用程序都以自己的方式磧安全機 制。本篇文章說明了基于表單的認證如何與其他方面的安全機制,尤 其是數(shù)據(jù)庫中的安全機制協(xié)作的問題。它還解釋了 Web窗口如何使 用安全角色執(zhí)行授權(quán)以及應(yīng)用程序如何擴展這些安全角色,保護 Web資源中的功能?;诒韱蔚恼J證基于表單的認證能夠使開發(fā)人員定制認證的用戶界面。web. xml 的login-config小節(jié)定義了認證機制的類型

3、、登錄的URI和錯誤頁 而 FORM/login, jsp/fail_login. html登錄表單必須包含輸入用戶姓名和口令的字段,它們必須被分別 命名為j_username和j_password,表單將這二個值發(fā)送給 j_security_check 邏輯名字。下而是一個該表單如何在HTML網(wǎng)頁中實現(xiàn)的例子:除非所有的連接都是在SSL上實現(xiàn)的,該表單能夠透露用戶名和 口令。當受保護的Web資源被訪問時,Web容器就會激活為該資源 配置的認證機制。為了實現(xiàn)Web應(yīng)用程序的安全,Web容器執(zhí)行下面的步驟:在受保護的Web資源被訪問時,判斷用戶是否被認證。如果用戶沒有得到認證,則通過重定向到部署

4、描述符中定義的注 冊頁面,要求用戶提供安全信任狀。根據(jù)為該容器配置的安全領(lǐng)域,確認用戶的信任狀有效。判斷得到認證的用戶是否被授權(quán)訪問部署描述符(web. xml)中定 義的Web資源。象基本的安全認證機制那樣,在Web應(yīng)用程序的部署描述符中, 基于表單的認證不指定安全區(qū)域。也就是說,它不明確地定義用來 認證用戶的安全區(qū)域類型,這就會在它使用什么樣的安全區(qū)域認證 用戶方面引起混淆。要對用戶進行驗證,Web窗口需要完成下面的步驟:判斷該容器配置的安全區(qū)域。使用該安全區(qū)域進行認證。由于數(shù)據(jù)庫和LDAP在維護信息方面提供了更大的靈活性,因此 大多數(shù)組織都會希望繼續(xù)使用它們維護安全認證和授權(quán)信息。許多W

5、eb窗口都支持不同類型的安全區(qū)域:數(shù)據(jù)庫、LDAP和定 制區(qū)域。例如,在TomcatWeb容器中,server, xml將數(shù)據(jù)庫配置為 其安全區(qū)域。debug二99driverName=,oracle. jdbc. driver. OracleDriverz,connectionURL二jdbc:oracle:thin:IPAddress:Port:Ser vicenameconnectionName二DBUsernameconnectionPassword=/ PassworduserTable=/,users,zuserNameCol=,username/,userCredCol二pass

6、worduserRoleTable二usettolesroleNameCol=,rolename/Tomcat的server, xml的標志定義了窗口用來識別一個用戶的安 全區(qū)域的類型。注意,容器對Web應(yīng)用程序使用該區(qū)域,應(yīng)用程序 的認證機制是基于表單的。授權(quán)一旦用戶被識別后,容器就會得到認證用戶的安全角色,看用戶 是否屬于在部署描述符中的標志中定義的安全角色之一。如果用戶 不屬于任何一個安全角色,則容器會返回一個錯誤。部署描述符(web. xml)的標志定義了被保護的.Web資源和能夠訪 問這些資源的安全角色清單。AdminPagesaccessiblebyauthorisedusers/

7、admin/*GETThesearetheroleswhohaveaccessmanagerWeb窗口在網(wǎng)頁層次上執(zhí)行認證。然而,商業(yè)性應(yīng)用程序可能還 希望對一個網(wǎng)頁內(nèi)的功能進行認證,這會要求在應(yīng)用程序中定義一 些新的附加的與應(yīng)用程序有關(guān)的安全角色。為了控制對功能的訪問, 應(yīng)用程序需要理解角色的權(quán)限概念。Web容器標準沒有解決權(quán)限的 問題。由于授權(quán)角色是動態(tài)的,開發(fā)人員常常會感到迷惑,即這些安全 角色是否需要添加到部署描述符中。為了使應(yīng)用程序充分利用安全 支持,Web容器只需要在部署描述符中定義的一個角色。因此,應(yīng) 用程序可以定義一個高層次的角色,然后將所有的用戶都指派給該 角色。這將使該角色

8、中的所有用戶都擁有能夠訪問Web資源的權(quán)限。另外,應(yīng)用程序還可以定義額外的角色,執(zhí)行對一種Web資源中 較低層次的功能的授權(quán)。由于應(yīng)用程序己經(jīng)配置有一個包含應(yīng)用程 序中所有用戶的高層次安全角色,這些低層次的安全角色也就不需 要在部署描述符中進行定義。這使得Web應(yīng)用程序能夠利用容器的 授權(quán)支持,實現(xiàn)與指定應(yīng)用程序有關(guān)的授權(quán)。我們可以在部署描述符中為所有用戶定義一個高層次的管理員角 色,保護管理類Web資源,這使得管理員角色中的所有用戶都能夠 訪問管理網(wǎng)頁。為了控制管理網(wǎng)頁中的其他功能,我們可以在應(yīng)用 程序中創(chuàng)建sysadmin或appadmin等新的角色。應(yīng)用程序可以對這些安全角色進行擴展,使

9、它們擁有一定的權(quán)限。 然后,應(yīng)用程序可以使用這些權(quán)限來控制對其功能的訪問。盡管與特定應(yīng)用程序相關(guān)的安全角色不是定義在部署描述符中的, 這些角色仍然可以在isUserlnRole方法中使用,判斷用戶是否在這 些安全角色中。優(yōu)點Web應(yīng)用程序無需實現(xiàn)認證機制,簡化Web應(yīng)用程序的配置。Web 應(yīng)用程序能夠使用 getRemoteUserIsUserlnRole 和 getUserPrincipal方法實現(xiàn)有規(guī)劃的安全。Web應(yīng)用程序能夠?qū)⒄J證信息傳播給EJB容器。在Tomcat中配置數(shù)據(jù)庫安全區(qū)域1. 創(chuàng)建用戶表。該數(shù)據(jù)庫表需要有username和password二個字段。createtableu

10、sers(usernamevarchar(20)notnull, password(20) notnull)2. 創(chuàng)建角色表該表維護著應(yīng)用程序中角色的清單,它僅僅有rolename 一個字 段。createtableroles(rolenamevarchar(20)notnull)3. 創(chuàng)建用戶-角色關(guān)聯(lián)表該表維護著一個用戶和各個角色之間的關(guān)聯(lián),一個用戶可以屬于 一個或多個角色。createtableuser_roles(usernamevarchar(20)notnull,rolenam evarchar (20) notmil 1)4. 在表中插入數(shù)據(jù)insertintousersvalu

11、es C userl , password)insertintorolevalues( manager)insertintouser_rolesvalues( userT , manager,)5. 通過將下面的信息拷貝到tomcat conf文件夾的 server, xml文件中,配置Tomcato (本例使用了薄客戶端驅(qū)動程序, Tomcat使用內(nèi)存區(qū)域作為缺省的安全區(qū)域,我們使用基于數(shù)據(jù)庫的 安全區(qū)域)debug二99driverName=z/oracle jdbc driver OracleDtiverconnectionURL二jdbc:oracle:thin:IPaddress:

12、Port: Ser vicenameconnectioriName二 DBUsername connectionPassword二PassworduserTable=,/users/zuserNameCol二usernameuserCredCol二passworduserRoleTable=/zuser_roles,zroleNameCol=/zrolenamez/用環(huán)境變量替換下面的值:IPAddress數(shù)據(jù)庫服務(wù)器的IP地址Por t端 口 號Servicename服務(wù)名字DBUsername數(shù)據(jù)庫登錄Password數(shù)據(jù)庫登錄的口令6. 將Oracle的薄客戶機驅(qū)動程序JAR文件或數(shù)據(jù)庫

13、的JDBC驅(qū)動 程序拷貝到tomcat_home/server/lib 目錄中。7. 用下而的安全約束配置Web應(yīng)用程序的部署描述符ProtectedArea/*DELETEGETPOSTPUTmanagerNONEFORMExampleForm-BasedAuthenticationArea/jsp/login.jsp/jsp/error.jsp需要注意的是,中的值應(yīng)當是用戶-角色關(guān)聯(lián)表中中角色之一。在Tomcat中配置例子文件使用上面介紹的命令配置Tomcat o打包你的丄程,并將它拷貝到Tomcat的webapps目錄。啟動Tomcat服務(wù)器打開一個瀏覽器,輸入下面的地址::8080/useProjectName/index, jsp輸入用戶名和口令。在WebLogic中配置數(shù)據(jù)庫安全區(qū)域配置Web應(yīng)用程序的部署描述符,這一過程與在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論