私のアプリケーションは、従来の 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
の両方でテストされています。kinit
klist
wsadmin
$AdminTask validateKrbConfig
true
クライアントのセットアップでは、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 認証を取得できません。