使用现有的KerberosTicket绑定到Ldap并搜索用户属性

时间:2009-03-26 19:46:54

标签: java ldap kerberos

在给定转发到我的代码的现有javax.security.auth.kerberos.KerberosTicket的情况下,Java是否有办法在Active Directory中查询用户属性?我知道我想使用Ldap进行搜索,但我对如何使用此KerberosTicket对象绑定到ldap感到困惑。目前我正在使用Spring-Ldap和Spring-Security与Active Directory进行通信并使用简单的身份验证凭据我可以绑定用户名和密码来验证我的用户并检索我的所有属性,角色等。但是在我通过的情况下来自该Active Directory服务器的KerberosTicket我现在知道如何绑定自己,因为我不知道该用户的密码。我目前没有从LoginContext调用login()来获取我的KerberosTicket作为加密的java对象转发到我的代码。

1 个答案:

答案 0 :(得分:1)

在LDAP连接环境中,将Context.SECURITY_AUTHENTICATION设置为“GSSAPI”。然后在特权操作中创建InitialLdapContext:

InitialLdapContext上下文; Subject.doAs(subject,new PrivilegedAction(){   public Object run(){     context = new InitialLdapContext(env,null);   } };

通过在LoginContext上调用getSubject()来获取主题变量。环境就是环境。你必须以某种方式捕获NamingException。 请注意,要使其在较新的Windows版本上运行,您必须设置一个注册表项,请参阅http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/Troubleshooting.html(搜索注册表)。