私のアプリケーションは、従来の JNDI ルックアップと RMI-IIOP メソッド呼び出しのおかげで、EJB ステートレス セッション Bean を呼び出すスタンドアロンの Swing クライアントです。Java WebStart アプリケーションとして開始されます。私の目的は、Linux で実行されている Windows ワークステーション、ActiveDirectory、および WebSphere サーバー間の Kerberos SSO のおかげで、メソッドEJBContextを使用してクライアント ユーザーの ID を取得することです。getCallerPrincipal
インフォセンターのドキュメントのおかげで、 Kerberos 認証をサポートするようにネットワーク配置モードで WebSphere セルを既に正常に構成できました。
krb5.confとファイルはどちらも OKで、 Linuxとkrb5.keytabの両方でテストされています。kinitklistwsadmin$AdminTask validateKrbConfigtrue
クライアントのセットアップでは、JAASlogin.configファイルのみを参照して、コマンド システム プロパティで有効にします。私の直感は、おそらく十分ではないことを教えてくれます。
しかし今、テスト ケースを完成させるための情報が見つかりません。
- Kerberos ネゴシエーションをトリガーするには、JNDI 初期コンテキスト環境をどのように設定する必要がありますか?
- EJB をロールで保護するなど、サーバー側に他の要件がある場合 (たとえば、JBoss はそれを必要としません) ?
アップデート
で JavaEE クライアント コンテナーを実行していない./launchClientため、JNLP で読み取りに必要なプロパティsas.client.propsと 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"/>
Mywsjaas_client.configは Oracle Java 用なので、以下が含まれます。
WSKRB5Login{
com.sun.security.auth.module.Krb5LoginModule required
debug=true useTicketCache=true doNotPrompt=true;
};
私のsas.client.props内容:
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
現時点では、Kerberos 認証はトリガーされません。WAS/myserver.mydomain.com(Windows または Linux ワークステーションからの) Kerberos キャッシュには SPN の TGS がなく、JNDI 接続は引き続き匿名で確立されます。
エラーメッセージも警告も、最終的にプリンシパルもありません。何が間違っているか、何が欠けているかを診断するにはどうすればよいですか?
2012/06/20 更新
ここにいくつかの前進があります。Oracle Java で実行するアプリケーション JNLP では、次のプロパティを設定して IBM ORB を使用し、完全なトレースとデバッグ情報を有効にしました。
<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"/>
ファイルTraceSettings.propertiesには
traceFileName=c:\\temp\\traces.log
ORBRas=all=enabled
SASRas=all=enabled
com.ibm.*=all=enabled
WebSphere 7 Security IBM RedBookの大部分を読んだ後でも、クライアント側から CSIv2 トリガー Kerberos 認証を取得できません。