JAAS and user specific access to external system functionality

D

davout

I have a java app that uses a number of other external applications as part
of its business logic. These include other custom apps, LDAP and RDBMS data
servers. My Java app has its own authentication scheme that uses JAAS.

When it comes to connecting to these other external systems normally you
might expect the Java application to use a single authentication credential
as a means of accessing the external system. However, in this case the
requirement is that all external system access should be identified by the
orginating user. Hence, if 'Joe' is the user connecting to my Java app then
'Joe' should be the user connecting to the external custom, RDBMS or LDAP
system.

Looking at JAAS it seems that I could handle this be creating LoginModule
implementations for each external system, but there are a couple of issues
to resolve...

First, some systems like JNDI/LDAP return a class instance (e.g. DirContext
for JNDI) as a result of the successful login. Given that my Java business
logic has to employ a user specific context when communicating with the
external system how should I obtain this?

For example if I'm accessing an LDAP server to perform data operations then
if Joe is the originating Java app user when it comes to performing the LDAP
operations these must be performed using a JNDI DirContext that is specific
to Joe. How should I retrieve this? As the DirContext is created as part of
the LoginModule 'login' method should I store it somewhere within the
LoginModule 'commit' method? Or should I retrieve the authentication
parameters from the Subject and then create a new JNDI connection?

Second, if I use multiple JAAS LoginModules then this is likely to require
multiple sets of user ID's and passwords (i.e. the LDAP server credentials
are unlikely to be the same as those required for a RDBMS). This is a web
based system. How should I obtain, package and store the multiple sets of
credentials?

By the way single sign-on if not available as an option.

TIA

.... davout
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top