2010-06-22 33 views
1

煤层安全我已经部署在WebLogic 10.3.2(11克)的应用程序,其中,在通过SSO用户登录。换句话说,如果用户没有登录,他将被重定向到SSO,在那里他登录,然后被重定向回应用程序。整个重定向通过了Oracle HTTP服务器(Apache修改过的),这可以确保只有SSO验证的用户可以看到applciation发生。与外部编排SSO

因此,当用户最终看到的应用程序,他已经登录。

是否有使用Seam安全与这种情况的方法吗?我想要的是使用主题的角色来限制对某些页面和组件的访问。

我想到的一种方式,但我不确定的是使用由WebLogic的SSO身份验证提供程序填充的主题,并使用它来填充Seam的Identity组件。这将发生在身份验证方法中,该方法将始终返回true(因为用户已经登录)。在该方法内部,主体的凭证和角色将在Seam身份内“转移”。

这是在所有可行吗?

干杯!

回答

2

你可以编写自己的身份验证方法,或重写身份类和login()方法来实现这一目标。我使用执行我们身份验证的反向代理做了类似的事情。在这种情况下,代理将已认证用户的用户标识以及他们所属的所有组作为标头值发回。我编写了一个过滤器来截获头文件,然后使用自定义的Identity类完成剩下的工作。

+0

感谢您的响应(1)。我也在其他地方阅读过关于使用反向代理的问题,但对我而言仍然不清楚。为什么需要?难道不是在WebLogic验证器将确保登录后(在外部SSO登录屏幕)的主体(其委托人)将是发生在会话的情况下?我认为这是Authenticators的工作来推广这个主题并使其可用。 – 2010-06-22 16:09:29

+1

反向代理非常适合异构环境,或者您希望拥有用于外观和易用性的中央身份验证点,易于管理等。使用反向代理,身份验证发生在请求发送到应用服务器之前。与使用应用程序服务器进行身份验证不同,它可以跨多个平台协调单点登录。 (如果你在WebLogic上进行身份验证,然后想连接到一个JBoss应用程序,那就太不幸了!) 这对于每项工作都不是理想的工具,但是有一些场景非常有用。 – Shadowman 2010-06-22 17:10:14

+0

啊哈。我被行话所困。我对“反向代理”一词并不熟悉,即使通过我自己使用一个。 – 2010-06-23 09:27:40