Jak włączyć uwierzytelnianie Kerberos dla zdalnego połączenia EJB na serwerze WebSphere?

Moja aplikacja jest samodzielnym klientem Swing, który wywołuje fasony sesji bezstanowej EJB dzięki klasycznemu przeglądowi JNDI i wywołaniom metod RMI-IIOP. Jest uruchamiany jako aplikacja Java WebStart. Moim celem jest odzyskanie tożsamości użytkownika klientaEJBContext zgetCallerPrincipal metoda dzięki protokołowi SSO Kerberos między stacją roboczą Windows, ActiveDirectory i serwerem WebSphere działającym w systemie Linux.

Z powodzeniem skonfigurowałem moją komórkę WebSphere w trybie wdrożenia sieciowego, aby obsługiwać uwierzytelnianie Kerberosdzięki dokumentacji centrum informacyjnego.

Obiekrb5.conf ikrb5.keytab pliki są w porządku i przetestowane na obu systemach Linuxkinit, klist iwsadmin, $AdminTask validateKrbConfig odpowiedzitrue.

Thekonfiguracja klienta odnosi się tylko do JAASlogin.config plik, aby włączyć właściwość systemu poleceń. Moja intuicja mówi mi, że prawdopodobnie nie wystarczy.

Ale teraz nie znalazłem więcej informacji, aby sfinalizować przypadek testowy:

jak należy skonfigurować początkowe środowisko kontekstowe JNDI, aby wywołać negocjację Kerberos?jeśli istnieją inne wymagania po stronie serwera, takie jak ochrona mojego EJB za pomocą roli (na przykład JBoss tego nie wymaga)?

Aktualizacja

Jak nie działa kontener klienta JavaEE z./launchClientW moim JNLP ustawiłem wymagane właściwości do odczytusas.client.props i konfiguracja logowania JAAS:

<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"/>

Mójwsjaas_client.config jest dla Oracle Java, więc zawiera:

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

Mójsas.client.props zawiera:

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

W tej chwili nie jest wyzwalane uwierzytelnianie Kerberos: nie ma TGS dla SPNWAS/myserver.mydomain.com w mojej pamięci podręcznej Kerberos (ze stacji roboczych Windows lub Linux) i połączenie JNDI jest nadal ustalane anonimowo.

Brak komunikatu o błędzie, bez ostrzeżenia, a na koniec brak dyrektora. Jak zdiagnozować, co jest nie tak lub czego nie ma?

Aktualizacja 2012/06/20

Oto kilka kroków do przodu. W mojej aplikacji JNLP działającej z Oracle Java ustawiłem następujące właściwości, aby używać IBM ORB i włączyć pełne informacje śledzenia i debugowania:

<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"/>

PlikTraceSettings.properties zawiera

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

Nawet po przeczytaniu dużych częściWebSphere 7 Security IBM RedBook Nadal nie udaje mi się uzyskać uwierzytelnienia CSIv2 Kerberos od strony klienta.

questionAnswers(3)

yourAnswerToTheQuestion