Wie aktiviere ich die Kerberos-Authentifizierung für Remote-EJB-Aufrufe in WebSphere?

Meine Anwendung ist ein eigenständiger Swing-Client, der dank klassischer JNDI-Lookup- und RMI-IIOP-Methodenaufrufe EJB Stateless Session-Beans aufruft. Es wird als Java WebStart-Anwendung gestartet. Mein Ziel ist es, die Identität des Kundenbenutzers abzurufenEJBContext mitgetCallerPrincipal Methode dank Kerberos SSO zwischen Windows-Workstation, ActiveDirectory und WebSphere-Server unter Linux.

Ich habe meine WebSphere-Zelle bereits erfolgreich im Network Deployment-Modus für die Unterstützung der Kerberos-Authentifizierung konfiguriertdank der infocenter-dokumentation.

Beidekrb5.conf undkrb5.keytab Dateien sind in Ordnung und mit beiden Linux getestetkinit, klist undwsadmin, $AdminTask validateKrbConfig Antwortentrue.

DasClient-Setup bezieht sich nur auf einen JAASlogin.config Datei, die mit der Befehlssystemeigenschaft aktiviert werden soll. Meine Intuition sagt mir, dass es wahrscheinlich nicht genug ist.

Jetzt finde ich keine Informationen mehr, um den Testfall abzuschließen:

Wie muss die anfängliche JNDI-Kontextumgebung eingerichtet werden, um die Kerberos-Aushandlung auszulösen?Wenn es andere Anforderungen auf der Serverseite gibt, wie z. B. das Schützen meiner EJB mit einer Rolle (JBoss benötigt diese beispielsweise nicht)?

Aktualisieren

Da läuft kein JavaEE Client Container mit./launchClientIch habe in meinem JNLP die erforderlichen Eigenschaften zum Lesen eingestelltsas.client.props und JAAS Login Konfiguration:

<property name="java.security.auth.login.config" value="C:\temp\wsjaas_client.config"/>
<property name="com.ibm.CORBA.ConfigURL" value="C:\temp\sas.client.props"/>

Meinewsjaas_client.config ist für Oracle Java, enthält also:

WSKRB5Login{
    com.sun.security.auth.module.Krb5LoginModule required
       debug=true useTicketCache=true doNotPrompt=true;
};

Meinesas.client.props enthält:

com.ibm.CORBA.securityEnabled=true
com.ibm.CORBA.authenticationTarget=KRB5
com.ibm.CORBA.loginSource=krb5Ccache
com.ibm.CORBA.loginUserid=
com.ibm.CORBA.loginPassword=
com.ibm.CORBA.krb5CcacheFile=
com.ibm.CORBA.krb5ConfigFile=C:\\temp\\krb5.conf

Momentan wird keine Kerberos-Authentifizierung ausgelöst: Es gibt kein TGS für den SPNWAS/myserver.mydomain.com In meinem Kerberos-Cache (entweder von Windows- oder Linux-Workstations) und JNDI wird die Verbindung weiterhin anonym hergestellt.

Keine Fehlermeldung, keine Warnung und schließlich kein Auftraggeber. Wie stelle ich fest, was falsch ist oder fehlt?

Update 20.06.2012

Hier sind einige Schritte vorwärts. In meiner Anwendung JNLP, die mit Oracle Java ausgeführt wird, habe ich die folgenden Eigenschaften festgelegt, um IBM ORB zu verwenden und vollständige Trace- und Debuginformationen zu aktivieren:

<property name="org.omg.CORBA.ORBSingletonClass" value="com.ibm.rmi.corba.ORBSingleton"/>
<property name="org.omg.CORBA.ORBClass" value="com.ibm.CORBA.iiop.ORB"/>
<property name="traceSettingsFile" value="C:\temp\TraceSettings.properties"/>

Die DateiTraceSettings.properties enthält

traceFileName=c:\\temp\\traces.log
ORBRas=all=enabled
SASRas=all=enabled
com.ibm.*=all=enabled

Auch nach dem Lesen großer Teile vonWebSphere 7 Security IBM RedBook Ich erhalte immer noch keinen CSIv2-Trigger für die Kerberos-Authentifizierung vom Client.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage