Java openldap和active directory rootbinddn之间的不同行为

Java openldap和active directory rootbinddn之间的不同行为,java,active-directory,ldap,openldap,ldapconnection,Java,Active Directory,Ldap,Openldap,Ldapconnection,我们有一个基于Java的应用程序,它通信/依赖PAM来满足其身份验证需求。用户可以来自本地(影子)或外部(目录服务器)。java应用程序以非根用户(比如juser)的身份运行 在LDAP配置中,绑定密码以明文形式存储在/etc/LDAP.conf中。为了克服这个安全漏洞,我将binddn替换为rootbinddn,并将bindpassword移到ldap.secret中。以下是LDAP配置文件的权限和所有权: 640根jusergroup/etc/ldap.conf 600 root/etc/l

我们有一个基于Java的应用程序,它通信/依赖PAM来满足其身份验证需求。用户可以来自本地(影子)或外部(目录服务器)。java应用程序以非根用户(比如juser)的身份运行

在LDAP配置中,绑定密码以明文形式存储在/etc/LDAP.conf中。为了克服这个安全漏洞,我将binddn替换为rootbinddn,并将bindpassword移到ldap.secret中。以下是LDAP配置文件的权限和所有权:

640根jusergroup/etc/ldap.conf

600 root/etc/ldap.secret

用户可以通过SSH无缝地访问系统(在我将binddn修改为rootbinddn之后),而对应用程序的身份验证失败

有趣的是,当我将应用程序配置为openldap服务器时,所有用户都可以成功地对SSH和Java应用程序进行身份验证。但当配置为MS active directory server时,SSH身份验证成功,而Java应用程序身份验证失败(因为进程所有者是juser)。现在,我以root用户身份重新启动java应用程序,所有身份验证(SSH和java应用程序)都成功了

以下是Active Directory服务器事件日志中的异常:

内部事件:LDAP服务器返回错误

附加数据 错误值: 00000000:ldaper:DSID-0C090627,注释:为了执行此操作,必须在连接上完成成功的>绑定。数据0,vece

有关详细信息,请参阅>上的帮助和支持中心

  • 为什么openldap和MS Active Directory之间会有不同的绑定行为
  • 在LDAP绑定期间,发出请求的用户是否传递到目录服务器
  • 是否有一种机制,告诉PAM在身份验证期间使用root creds,以便我仍然可以作为juser运行java应用程序

  • 感谢

    匿名用户在OpenLDAP和Active directory中可能存在的访问权限重复不同?我们在SSL上使用(根)binddn+密码,这不应构成匿名访问