java - 使用 NTLM 连接到 LDAP (Active Directory)

标签 java security active-directory ldap ntlm

目前,我使用用户名和密码作为 ldap 的连接凭据(以便在此 AD 上进行搜索)。

我的代码如下:

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, null);
}
catch (NamingException e) {
    System.out.println("error")
}

我想更改此代码,因此它不会使用用户+密码作为 LDAP 的凭据。我希望它使用 NTLM 进行身份验证。

我该怎么做?能举个例子吗?

最佳答案

https://sourceforge.net/projects/javaldapntlmbind/

该解决方案使用 UnboundID Java LDAP SDK,对于 NTLM 处理,它使用 samba.org 的 JCIF Java 库。 由于使用JCIF,它是平台无关的,不需要在Windows上运行。

关于java - 使用 NTLM 连接到 LDAP (Active Directory),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932031/

相关文章:

java - 如何更改Tomcat开发环境中Spring Boot属性默认路径

java - 代号一个 Action 监听器不工作

active-directory - 如何以编程方式读取Active Directory架构

java - 无法使用给定密码登录 AD 帐户

java - 将 (YAML) 文件转换为任何 MAP 实现

java - 按钮上的 Netbeans 7.1.2 图标位置

java - 在java中加密文本文件的最简单方法

java - 从 JavaScript 调用后小程序 URLConnection.connect 失败

node.js - 为什么 Express/Connect 会在每次请求时生成新的 CSRF token ?

c# - 如何从 Asp .Net 中的 Active Directory 获取不同的部门名称?