Search code examples
javawebspheresingle-sign-onwebsphere-8ltpa

Generate LTPAToken 2 in custom Web Application


We want to realize a SSO-infrastructure with some IBM Domino / Websphere products and one custom web application. All IBM products are configured for SSO. Therefore, the WebSphere Application Server 8 generates an LTPAToken2 after successful login in one of the IBM products. We want to achieve the same behaviour for our own custom web application. After login into this web app, a LTPAToken2 should be generated. Therefore my question: Is it possible to generate a valid LTPAToken2 in our custom web application? Or maybe, is it possible to use the WebSphere Application Server APIs for this generation? Which steps would be nessecary to achieve this? At the moment, our custom web application is not hosted in a WAS, but on a Tomcat.

Thanks and best regards Ben


Solution

  • As long as you have your application hosted on a tomcat server that is not possible. There is no open API from IBM for creating LTPA tokens.

    If you would have had the same user directory and using standard Java Security Mechanisms you could move your application to WAS, where SSO is configured. Not only would it be possible, your LTPA tokens would be created on login to your web application without any further configuration.

    As it seems have a solution with two different user directories, sharing the same user id but not the password, you need to take other measures to achieve SSO.

    • One is to have an Access manager software which handles login for all your applications,
    • A second solution is to write some custom code. Login into the tomcat server could generate a custom cookie. You need to write code to generate this cookie. Then you can write a TAI to intercept it on the WebSphere server thus accepting the login. The TAI would be configured in the container rather than in a separate application itself. (example)
    • I also assume you could solve this by writing servlet filters to handle the login, rather than a TAI.