0

我有一个在 Apache Tomcat 7.x 上运行的 Java/JEE Web 应用程序。假设它在这个 URL 上运行:

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

我希望通过 WebSEAL 服务器(TAM for eBusiness 6.0)控制对这个应用程序的访问。因此,我创建了一个透明路径连接/app来访问应用程序。

所以,现在我可以通过 WebSEAL URL 访问它,如下所示:

https://secure.example.com/app

我还创建了一个 ACL,它充当传递并允许任何人使用上述 WebSEAL URL 访问应用程序。身份验证由应用程序直接控制。所以,我不需要 TAM 来验证用户。

我的问题是,如何防止用户直接通过此 URL 访问应用程序:http://app.example.com:9080/app

我想知道是否可以使用某种标识来告诉我请求是来自 WebSEAL 服务器还是直接到应用程序 URL。

我尝试在 WebSEAL Junction 上启用这些选项:

在客户身份标头下

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 应用程序中读取此标头,并在标头丢失时阻止请求。但没有运气。

有什么建议么?

4

1 回答 1

1

这个问题不一定要从 webseal 范围内响应。

  1. 如果您只想拒绝来自其他服务器的连接,在您的防火墙中您可以只允许来自您的 WebSeal 服务器的 IP/DNS 的请求。或者你可以从 tomcat 做,见:

    Tomcat通过IP地址限制访问

  2. 如果您想在您的应用程序中验证请求应用程序的来源,您可以找到iv-credHTTPiv-user标头。这不是 100% 有效的,也许有人可以人为地放置标题。iv-cred一个好主意是添加一些与时间戳混合的特定元素,以在您的应用程序中验证请求的来源和时间。看:

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

于 2017-02-14T04:54:48.490 回答