2016-08-04 67 views
0

我有一個在Apache Tomcat 7.x上運行的Java/JEE Web App。比方說,它是在此URL運行:如何防止訪問受TAM WebSEAL保護的後端應用程序?

http://app.example.com:9080/app

我想控制通過WebSEAL服務器訪問該應用程序(TAM的電子商務6.0)。所以,我創建了一個透明路徑結/app來訪問應用程序。

所以,現在我可以通過在WebSEAL URL訪問它,像這樣:

https://secure.example.com/app

我還創建充當直通和允許任何人使用上述訪問的應用的ACL WebSEAL URL。身份驗證由應用直接控制。所以,我不需要TAM來驗證用戶。

我的問題是,如何防止用戶直接通過此URL訪問應用程序:http://app.example.com:9080/app

我想知道我是否可以使用某種標識來告訴我請求是來自WebSEAL服務器還是直接來自應用程序URL。

我試圖使在WebSEAL聯結這些選項:

根據客戶身分頭

User Name (Short) 
User Name (Full DN) 
User Groups List 
User Credential 

常規選項

Insert client IP header 
Insert WebSEAL cookies 
Preserve names of cookies 
Add cookie path to cookie names 

這些選項不添加任何HTTP頭,除非用戶通過TAM認證,這對我來說不是一種選擇。如果可以的話,我可以創建一個WebFilter,它可以在Java應用程序中讀取此標題,並在標題丟失時阻止該請求。但沒有運氣。

有什麼建議嗎?

回答

1

此問題不一定要從webseal作用域響應。

  1. 如果你只想要拒絕來自其他服務器的連接,在您的防火牆,您可以只允許從WebSEAL服務器的IP/DNS請求。或者你也可以從Tomcat做,請參閱:

    Tomcat Restrict access by IP address

  2. 如果你想在你的應用程序驗證請求應用程序的來源,你可以找到iv-crediv-user HTTP標頭。這不是100%有效,也許有人可以人爲地把標題。一個好主意是在iv-cred中添加一些與時間戳混合的特定元素,以在您的應用程序中驗證請求的來源和時間。請參閱:

    https://www.ibm.com/developerworks/tivoli/tutorials/tz-tamauthapi/

+0

感謝您抽出寶貴時間,並提供一個答案。我幾天前就能使它工作。我一直有意在這裏發表一個關於我所做的事情的答案;但沒有得到這樣的機會。我會盡快做到這一點。謝謝。 – anacron

相關問題