目前,我使用用户名和密码作为 ldap 的连接凭据(为了验证 AD 的用户)。
对于此处的身份验证,我使用 InitialDirContext 创建了一个初始上下文(用于 Active Directory),我们在其中提供了一组环境属性,其中包含身份验证信息。
我的代码如下所示:
env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ...);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ...);
env.put(Context.SECURITY_CREDENTIALS, ...);
env.put("com.sun.jndi.ldap.connect.timeout", ...);
try {
ctx = new InitialLdapContext(env);
}
catch (NamingException e) {
System.out.println("error")
}
我想更改此代码,因此它将使用 NTLM 验证输入的用户名和密码作为针对 LDAP 的凭据。
你能给我举个例子吗?
NTLM – 是一套 Microsoft 安全协议,提供 - 身份验证 - 完整性 - 机密性