我正在尝试创建一个JAVA程序,它将获取我的Windows用户凭据,然后连接到我的unix框上的kerberos并进行身份验证并允许我使用服务,例如LDAP服务器。
我发现的所有示例都会在运行时向我询问我的密码,我不希望这样 - 我希望能够运行程序并且'如果通过魔法'我可以通过kerberos认证。
赞赏任何链接和示例。
答案 0 :(得分:6)
我们已成功使用Kerberos与Java EE应用程序一起设置SSO,并在经过数周的试验和网络爬行后对Windows Active Directory进行身份验证。
JBOSS谈判和Spring Kerberos都为我们工作。但是,这两套文档都不够准确,无法让您立即投入使用。简单地解决这个问题......
ktpass问题:
ktpass /out c:\service.keytab /mapuser userservice@TESTDOMAIN.SERVER.COM /princ HTTP/hostname@TESTDOMAIN.SERVER.COM /pass /ptype KRB5_NT_PRINCIPAL
setspn –A HTTP/hostname.testdomain.server.com userservice
最后,在每次测试之前,使用kinit purge清除缓存的票证。
另外,复制SPN会破坏事情! windows server 2008中的setspn -X会检测到这个(或google for script),如果有疑问的话,每次都重新启动新的服务用户和主体名称!
希望这可以帮助别人避免我的痛苦。