Trusted authentication is an authentication mode where the authenticating of a user is provided by a third party tool outside of Strategy. Because the user request has already been authenticated by the third party tool Strategy does not challenge the user for credentials and creates a session for the incoming request without the need of further authentication.
Trusted authentication requires the use of a third party tool or trusted authentication provider, such as Tivoli SiteMinder, the trusted authentication provider is the authentication authority.
The following is a sample External Security Module (ESM) that uses Trusted Authentication as the authentication mode in Strategy.
Before the code in the ESM executes the user trying to create a session with Strategy has to have been authenticated by the authentication provider and therefore all the ESM will do is create a session without further password challenge. The ESM can incorporate further logic to make sure that the authentication had been indeed performed by the third party tool.
package com.Strategy.esm;
import com.Strategy.web.app.AbstractExternalSecurity;
import com.Strategy.web.beans.RequestKeys;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.platform.ContainerServices;
import com.Strategy.webapi.EnumDSSXMLAuthModes;
public class TrustedESM extends AbstractExternalSecurity {
@Override
public int handlesAuthenticationRequest(RequestKeys rk, ContainerServices cs, int reason) {
/*
* For this example, we will try to generate the session automatically
*
* by always returning COLLECT_SESSION_NOW
*
*/
return COLLECT_SESSION_NOW;
}
@Override
public WebIServerSession getWebIServerSession(RequestKeys rk, ContainerServices cs) {
String proj = getProject(rk);
String server = getServer(rk);
int port = getPort(rk);
/*
*
* Gather the Trusted Login - in this case it is hard coded, but can be
* gathered by using
*
* ContainerServices, RequestKeys, or an external source
*
*/
String trustedUserID = "eric1Trusted";
return setUpTrustedAuth(server,port, proj, trustedUserID);
}
private WebIServerSession setUpTrustedAuth(String server, int port, String project, String userID ){
WebIServerSession iSession = WebObjectsFactory.getInstance().getIServerSession();
// Trusted Authentication
iSession.setAuthMode(EnumDSSXMLAuthModes.DssXmlAuthSimpleSecurityPlugIn);
// Set up what server
iSession.setServerName(server);
iSession.setProjectName(project);
iSession.setServerPort(port);
// Trusted User ID
iSession.setLogin(userID);
return iSession;
}
}