views:

62

answers:

1

I have an application deployed on WebLogic 10.3.2 (11g), in which the user logs in through SSO. In other words, if the user is not logged in, he is redirected to SSO, where he logs in, and then is redirected back to the application. The whole redirection takes place by an the Oracle HTTP Server (a modified apache), which makes sure that only SSO-authenticated users can see the applciation.

So, when the user finally sees the application, he is already logged in.

Is there a way to use Seam security with this scenario? What I would like is to use the roles of the Subject to restrict access to certain pages and components.

A way I thought of, but for which I am not sure, is to use the subject that is populated by the SSO authentication provider of WebLogic, and use it to populate the Identity component of Seam. That would take place in the authentication method, which will always return true (since the user is already logged in). Inside the method, the credentials and roles of the Subject will be "transfered" inside the Seam identity.

Is this feasible at all?

Cheers!

+2  A: 

You could write your own authenticate method, or override the Identity class and the login() method to achieve this. I've done something similar with a reverse proxy that performed our authentication. In the scenario, the proxy sent back the user ID of the authenticated user and all the groups they were a member of as header values. I wrote a filter to intercept the headers and then used my custom Identity class to do the rest.

Shadowman
Thanks for the response (+1). I have also read elsewhere about using a reverse proxy, but it is still not clear to me. Why is it required? Is it not the case that the WebLogic authenticators will make sure that after login (in the external SSO login screen) the Subject (with its Principals) will be in place in the Session? I thought it was the job of the Authenticators to popular the subject and make it available.
Markos Fragkakis
A reverse proxy is very good for a heterogeneous environment, or where you want to have a central authentication point for look and feel, easy management, etc. With the reverse proxy, the authentication happens prior to the request ever getting to the app server. It can orchestrate single sign-on across multiple platforms, unlike using the app server for authentication. (If you authenticate on WebLogic and then want to connect to a JBoss application, you're out of luck!)It's not an ideal tool for every job, but there are scenarios where it is very helpful.
Shadowman
Aha. I was caught in the jargon. I was not familiar with the term "reverse proxy", even through I am myself using one.
Markos Fragkakis