相关疑难解决方法(0)

如何在WebSphere上为远程EJB调用启用Kerberos身份验证?

由于经典的JNDI查找和RMI-IIOP方法调用,我的应用程序是一个独立的Swing客户端调用EJB无状态会话bean.它作为Java WebStart应用程序启动.我的目标是从获取客户端用户的身份EJBContextgetCallerPrincipal感谢的Kerberos SSO在Windows工作站,ActiveDirectory中和在Linux上运行的WebSphere服务器之间的方法.

由于信息中心文档,我已经在网络部署模式下成功配置了我的WebSphere单元以支持Kerberos身份验证.

这两个krb5.confkrb5.keytab文件都OK,并在Linux测试kinit,klist并且wsadmin,$AdminTask validateKrbConfig解答true.

客户端安装不只是指JAAS login.config文件,以实现与指挥系统属性.我的直觉告诉我这可能还不够.

但现在,我找不到更多信息来完成测试用例:

  • 如何设置JNDI初始上下文环境以触发Kerberos协商?
  • 如果服务器端有其他要求,比如用角色保护我的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"/>
Run Code Online (Sandbox Code Playgroud)

wsjaas_client.config是针对Oracle Java的,因此它包含:

WSKRB5Login{
    com.sun.security.auth.module.Krb5LoginModule required
       debug=true useTicketCache=true doNotPrompt=true;
};
Run Code Online (Sandbox Code Playgroud)

我的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
Run Code Online (Sandbox Code Playgroud)

目前,没有触发Kerberos身份验证:WAS/myserver.mydomain.com我的kerberos缓存(来自Windows或Linux工作站)中的SPN没有TGS,并且仍然匿名建立JNDI连接.

没有错误消息,没有警告,最后没有委托人.我如何诊断错误或缺乏?

更新2012/06/20

这是向前迈出的一步.在我的应用程序JNLP中运行Oracle Java,我已设置以下属性以使用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"/> …
Run Code Online (Sandbox Code Playgroud)

java websphere ejb kerberos java-ee

14
推荐指数
2
解决办法
4861
查看次数

标签 统计

ejb ×1

java ×1

java-ee ×1

kerberos ×1

websphere ×1