总结一下上下文:多年来,我们的部署已经投入生产,而IBM WebSphere在Linux上运行,而应用程序的部署归功于Java WebStart在Sun
JavaSE 6上运行,并且包含IBM ORB,并且配置为无需任何身份验证即可连接。现在,我们想启用RMI-
IIOP上的Kerberos身份验证和单点登录,这是从WebSphere 6开始支持的(我认为)。
现在是答案。
从WebSphere 7开始,引入了一个新概念来基于每台服务器配置安全性方面: security domain
。从理论上讲,在安全域中未更改的任何选项都将从 全局安全性 部分继承。
在测试Kerberos设置时,我们为测试服务器创建了专用的安全域,以避免单元中运行的其他服务器出现问题。
但是, 即使在 全局安全性中 启用了Kerberos ,也不会为配置了自己的 安全域 的服务器继承/启用它。
只要我们使用默认的 全局安全性
运行测试服务器,即可看到并启用Kerberos选项,那么Kerberos身份验证便开始与从具有常规ClassPath和文档中声明的所有属性的 cmd
bat脚本* 执行的 IBM JavaSE 6 一起使用。 *
注意:
Context.SECURITY_AUTHENTICATION永远不会设置JNDI 选项。反编译后,对IBM
ORB唯一可用的值
none,
simple并且
strong但是
strong还没有实现呢。
另一点:根据生成的日志,IBM
ORB无法使用
file:/C:/temp/sas.client.config作为的值
com.ibm.CORBA.ConfigURL。它 必须
是URI,而不是文件路径。我们甚至无法通过DNS查找来解析
C主机名!阿夫
所有文档示例均基于Unix,
file:/path/to/sas.client.config因此在从HTTP服务器传送该文件之前,我们进行了多次试验。
现在是部署的 Java WebStart部分 :
没有任何安全性且没有Kerberos设置的相同原始JNLP与Oracle JavaSE 6和IBM Java 6完美结合
启用了WebSphere安全性并且在JNLP中启用了Kerberos(并且只有该更改集),在IBM Java 6上运行的IBM ORB抱怨
NoClassDefFoundError
ffdc日志管理器实现(仍然/始终)在ClassPath中可用。听起来确实像与Java WebStart安全的ClassLoader层次结构不兼容。使用Kerberos JNLP,在Oracle JavaSE 6上运行的IBM ORB似乎只是忽略安全设置,并照常进行匿名连接。
因此,第一步正在工作:IBM Java 6从命令行启动,但调查尚未完成,无法实现我们的目标:Java WebStart上下文中具有Oracle JavaSE
6的Kerberos。



