当前位置: 首页 > 知识库问答 >
问题:

匿名绑定使用无限LDAP sdk

宇文灿
2023-03-14

我有一个JAVA应用程序,它使用未绑定的LDAP SDK连接LDAP本地服务器并进行身份验证
该服务器是带有Active Directory的Windows server 2008 R2,配置为不允许匿名身份验证
但是如果我尝试使用我的应用程序执行匿名绑定,那么BindResult就会成功。我正在使用JAVADOC所说的SimpleBindRequest()方法进行连接。这是我的代码:

 public boolean autenticarAnonimamente() throws AutenticacaoExcecao
 {       
    GerenciadorConexaoLdap gerenciadorLdap = new GerenciadorConexaoLdap();
    LDAPConnection connection;
    try {
        connection = gerenciadorLdap.conectarServidorLdap(ldap);
        SimpleBindRequest request = new SimpleBindRequest();

        BindResult result = connection.bind(request);
        boolean retorno = result.getResultCode().equals(ResultCode.SUCCESS);
        connection.close();
        return retorno;
    } catch (LDAPException | GeneralSecurityException ex) {
        throw new AutenticacaoExcecao(ex);            
    }   
}

我试图使用谷歌应用目录同步测试我的服务器,它拒绝任何匿名绑定。如果我配置我的服务器允许匿名连接,谷歌应用程序的结果确定。
有人知道什么可以吗?

共有1个答案

宇文温文
2023-03-14

目前尚不清楚两者之间的区别是什么,但打电话联系肯定是有区别的。bind(new SimpleBindRequest())将向服务器发送一个匿名简单绑定请求,并使客户端从服务器读回响应。

几乎可以肯定的是,要么谷歌应用目录同步发送了一个不同的绑定请求(可能是SASL匿名绑定请求,或者可能是一个非空DN但密码为空的请求),或者,你在Google Apps目录同步中看到的失败实际上并不是绑定失败,而是绑定后它试图做的事情。

我建议尝试检查客户端和服务器之间的流量,看看谷歌客户端试图做什么。可以使用随无限ID LDAP SDK提供的ldap调试器工具来实现这一点。它充当一个非常简单的LDAP代理,将显示通过它的任何流量的详细信息。您还可以使用任何类型的网络数据包捕获机制,如窥探、tcprey或Wireshark来捕获网络通信以进行分析。

 类似资料:
  • 问题内容: 我对这个问题感到生气,不知道如何解决。 我们试图从Windows Central存储库上的钩子触发Jenkins构建。这实际上是在旧的Jenkins服务器(LTS 1.580.1)上工作的。 我们之前的操作方式是使用存储在文件中的SSH私钥调用Jenkins CLI。 这是奇怪的事情: C:\ Users \ Username \ jenkins> java -jar jenkins-

  • 问题内容: 在一个容器里 可以创建匿名卷 在语法()中 要么 具有输入的以下语法 我的理解是,在容器进入状态后,两种方法都可以使音量也可用。 卷是匿名的,因为指向Docker主机中某个随机的新位置(目录中) 我看到匿名卷比命名卷(如)更安全。 因为位置很容易受到攻击,因为该位置被多个Docker容器使用的可能性更大。 1) 为什么不鼓励匿名使用卷? 2) 是 在 与…不同 在文件中?是否有一种情况

  • 问题内容: 我正在将项目从版本1.x升级到jaxb 2.2.7。 我有一段时间会运行该应用程序,但是在一些响应中我看到了这一点: 在jaxb 1.0中运行良好。我不知道可能是什么问题。 这是xsd的摘录(我不能更改,因为客户端正在使用它): 有什么建议? 问题答案: 问题原来是匿名复杂类型的精心嵌套。 通过如下将它们分开,问题就解决了。另外,我获得了更多可重用的代码。

  • VOLUME 定义匿名卷 格式为: VOLUME ["<路径1>", "<路径2>"...] VOLUME <路径> 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以

  • 问题内容: 考虑以下代码: 当我们尝试调用新定义的方法时,这是不可能的。这样做的原因是,它被声明为类型的对象,而不是我们新的匿名子类的实例。 因此,我的问题是,是否有任何“不错”的方式来实现这种行为?除了显而易见的(正确地声明类)。 问题答案: 这是不可能的,因为您试图在超类引用上调用方法子类。而且该方法未在超类本身中定义。匿名类只是那里的一个子类。 但是,一种解决方法是进行反思: 该方法将返回的

  • 问题内容: 在我的某些项目和某些书中,据说最好 不要 使用内部类(不管是匿名与否,静态还是非静态),除非在某些受限制的条件下(例如s或s)。在我的第一个行业项目中,他们甚至被“禁止”。 这真的是最佳做法吗?为什么? (我不得不说我经常使用它们…) -编辑— 在所有这些答复中我都找不到一个正确的答案:大多数答复中都包含正确的部分:我仍将使用内部类,但我将尽量少使用它们! 问题答案: 在我看来,Jav