Enabling Integrated Windows Authentication (IWA) causes the SAS Financial Management client to fail to connect to the back-end servers upon initial login to the client.
As a result, the SAS Financial Management client log displays the following error:
[main][ERRORWIPAuthenticationServer] - Unable to authenticate user using IWA.
[main][ERRORLogonRegistry] - SSO logon failed
com.sas.solutions.finance.rcp.commons.core.logon.LogonException: java.lang.ClassCastException: class com.sas.svcs.security.iwa.client.WebHttpClient cannot be cast to class com.sas.svcs.security.iwa.client.WebHttpClient (com.sas.svcs.security.iwa.client.WebHttpClient is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @e07b4db; com.sas.svcs.security.iwa.client.WebHttpClient is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @150d6eaf)
For SAS Financial Management, in addition to the instructions provided in Support for Integrated Windows Authentication, you need to complete the following steps to circumvent this issue:
On SAS 9.4M8, if you use IWA to log on to the SAS Financial Management Java clients, you need to apply the hot fixes available in SAS Note 71112 (particularly for the SAS® Middle-Tier 9.4_M8 and SAS® Management Console 9.4_M8). If your environment contains the other SAS products mentioned in the SAS note, be sure to install the relevant hot fixes as well.
In addition to applying the hot fixes, you need to complete the following steps on each middle-tier node for IWA to work with these clients:
Notes:
For SAS Financial Studio to work with IWA, two configuration files are required: krb5.conf and login.conf. These files are used to connect to the configured RACE server.
Information about these files is as follows:
[libdefaults]
default_realm = RACE.SAS.COM
udp_preference_limit=1
[realms]
RACE.SAS.COM = {
kdc = race.sas.com
default_domain = RACE.SAS.COM
}
[domain_realm]
.race.sas.com = RACE.SAS.COM
race.sas.com = RACE.SAS.COM
[appdefaults]
kinit = {
renewable = true
forwardable= true
}
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required client=TRUE
useTicketCache=true
doNotPrompt=false
debug=true
renewTGT=true;
};
Note that you also need to update the SAS Fraud Management Studio ini file with the following entries:
-Dsas.fms.enableIWASSO=true
-Djava.security.krb5.conf=c:/[path to]/krb5.conf
-Djava.security.auth.login.config=c:/[path to]/login.conf
-Dsun.security.jgss.native=true