我无法使用LDAP对用户进行身份验证.我有以下细节:
URL=ldap://10.10.10.10:389 
LDAP BASE:DC=lab2,DC=ins 
LDAP Bind Account: CN=Ldap Bind,OU=Service Accounts,OU=TECH,DC=lab2,DC=ins 
LDAP Bind Account Pw: secret 
我可以sAMAccountName使用上面的详细信息搜索值,但是如何使用用户名和密码验证用户?
如果您按照我之前的问题进行操作,那么您将了解到,我已成功连接到LDAP服务器但无法对其进行身份验证.
用户进行身份验证:
user: someusername
password: somepwd
我无法连接到LDAP服务器,'somepwd'我应该如何使用someusername.我能够搜索给定的用户sAMAccountName.
在Liferay的LDAP身份验证设置中使用时,b/n memberOf属性和groupMembership属性有何区别?
用户已成功导入.这些组也成功导入.
但是用户不会自动分配到组.当我将组变量从'groupMembership'更改为'memberOf'时,多个用户无法登录Liferay.
memberOf和groupMembership变量究竟是什么?

我手中有一个SSL LDAP服务器证书.我想用它来使用UnboundID SDK连接到LDAP服务器.
我不想使用com.unboundid.util.ssl.TrustAllTrustManager,如下所示: 使用带有SSL证书文件的UnboundID SDK连接到Android应用程序中的LDAP服务器
以下TrustManagers不符合我们的产品要求:
com.unboundid.util.ssl.PromptTrustManager
com.unboundid.util.ssl.HostNameTrustManager
com.unboundid.util.ssl.ValidityDateTrustManager
我不希望任何用户交互,以及我在TrustManager上面列出的验证证书颁发者的内容.
另外,我不想在任何密钥库中插入LDAP服务器证书,因此我无法使用以下TrustManagers:
com.unboundid.util.ssl.WrapperKeyManager
com.unboundid.util.ssl.PKCS11KeyManager
com.unboundid.util.ssl.KeyStoreKeyManager
我想做类似下面的代码:
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = cf.generateCertificate(byteArrayInputStream);
SSLUtil sslUtil = new SSLUtil(new CertificateTrustManager(cert));
SSLSocketFactory socketFactory = sslUtil.createSSLSocketFactory();
LDAPConnection connection = new LDAPConnection(socketFactory,
     "server.example.com", 636);
请注意,UnboundID SDK中不存在CertificateTrustManager.怎么可能这样做?
我正在尝试修复产品中的SSL错误,并注意到虽然代码将SSL设置为true,但在代码SSL的下一行仍然是false.我为此编写了一个单元测试,单元测试证实了我的怀疑.
  [TestMethod]
  public void SecureSocketLayerSetToTrue( )
  {
     var ldapConnection = new LdapConnection( 
                                new LdapDirectoryIdentifier( "ldap.test.com", 636 ));
     ldapConnection.SessionOptions.SecureSocketLayer = true;
     Assert.IsTrue( ldapConnection.SessionOptions.SecureSocketLayer );
  }
测试失败.这里有什么东西让我失踪吗?
我遇到了使用LDAP验证登录的问题.
我们使用Novell目录来验证其他应用程序,如Jira.(Jira工作得很完美).
我有这个应用程序,允许这些基本的LDAP配置:

我的问题是,当我尝试登录时,它需要我的用户名XXXXXXXX并将其作为uid预先挂在搜索库中.所以它试图将我登录为:
UID = XXXXXXXX,OU =人,环境o = myCompany
哪个适用于我们的Sun LDAP服务器,但不适用于我们的Novell目录LDAP服务器.edirectory仅在我尝试以专有名称登录时才有效:
CN = XXXXXXXX,OU =人,环境o = myCompany
为什么edirectory的行为如下?
是我们指定的配置还是edirectory总是使用cn作为专有名称?
谢谢
        using (LdapConnection ldap = new LdapConnection("localhost:389"))
        {
            //ldap.AuthType = AuthType.Basic;
            ldap.Bind(new NetworkCredential("cn=manager,dc=wave,dc=com", "secret"));
        }
我尝试使用身份验证类型以及身份验证类型.但是它会出现"可分辨名称包含无效语法"的错误
还有一件事是,我不能使用System.DirectoryServices,因为它仅适用于Active Directory,这就是我使用System.DirectoryServices.Protocol的原因.
谢谢!
我正在尝试创建一个新用户 -> 设置密码并启用帐户。
早些时候我使用了 1 个单一对象,但在查看了一些帖子后,我决定将“使用”用于 3 种不同的操作
        string strDisplayName = txtFirstName.Text + " " + txtLastName.Text;
        string strUser = txtLoginName.Text;
        string pw = "pass@123";
        using (var objADAM = new DirectoryEntry("LDAP://" + adlink + "/CN=Users,DC=SS,DC=COM", "ss\\luser", "pass@123", AuthenticationTypes.Secure))
        {
            const long ADS_OPTION_PASSWORD_PORTNUMBER = 6;
            const long ADS_OPTION_PASSWORD_METHOD = 7;
            const int ADS_PASSWORD_ENCODE_CLEAR = 1;
            string strPort = "389";
            int intPort = Int32.Parse(strPort);
            using (var objUser = objADAM.Children.Add("CN=" + strUser, "user"))
            {
                objUser.Properties["sAMAccountName"].Add(strUser);
                objUser.CommitChanges();
            }
        }
        using (var user = new …我们对LDAP的客户端进行了新的增强,以启用使用登录userPrincipalName。他先前sAMAccountName用于登录。当用户尝试在其测试环境中测试应用程序时,他遇到以下错误userPrincipalName:
netscape.ldap.LDAPException:错误结果(49); 80090308:LdapErr:DSID-0C0903C5,评论:AcceptSecurityContext错误,数据52e,v23f0 |#]
我知道这是因为LDAP的凭据无效。但是,当他使用sAMAccountName登录时,便可以登录。
我的Web应用程序日志显示他登录时 userPrincipalName,可以在LDAP中找到它,但是当它尝试使用用户名和密码连接到LDAP时,将引发上述异常。
而他可以使用成功登录 sAMAccountName。
Dn的用法如下:
OU=IS (Technical Staff),OU=PXXX,DC=pxxx,DC=local , and
OU=Users,OU=PXXX,DC=pxxx,DC=local
进一步调试问题的任何帮助将不胜感激。
如果您需要更多详细信息,请告诉我。
我需要进行任何更改才能使其正常工作吗?
我是 ApacheDS 的新手。我刚刚在 ApcheDS 中创建了一个新分区。当我尝试注册我的连接工厂时,出现上述错误..(使用 OracleAQ)
我的代码是;
    // ldap settings
        env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
        env.put(Context.PROVIDER_URL, "ldap://localhost:10389/");
            env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system,dc=acme,dc=com"); 
        env.put(Context.SECURITY_CREDENTIALS, "secret");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
我的 LDIF 文件看起来像;
dn: dc=acme,dc=com
objectClass: organization
objectClass: dcObject
objectClass: top
dc: acme
o: Acme,Inc
dn: cn=OracleContext,dc=acme,dc=com
objectClass: orclContext
objectClass: top
cn: OracleContext
dn: cn=db1,cn=OracleContext,dc=acme,dc=com
objectClass: orclContext
objectClass: top
cn: db1
dn: cn=OracleDBConnections,cn=db1,cn=OracleContext,dc=acme,dc=com
objectClass: orclContext
objectClass: top
cn: OracleDBConnections
dn: cn=OracleDBQueue,cn=db1,cn=OracleContext,dc=acme,dc=com
objectClass: orclContext
objectClass: top
cn: OracleDBQueue
我的连接参数有什么问题?任何帮助将不胜感激?
谢谢,
我用 PHP 编写了一个小监控脚本,它应该监控虚拟目录及其活动目录。一切正常,但当虚拟目录服务冻结时,我的 ldap_connect() 无法连接,但也没有返回错误。所以我的整个剧本停滞不前。我认为 ldap_connect 函数会超时(就像当您尝试 ping 一个 IP 但无法访问时)。
这是我的连接命令:
$connection = ldap_connect($hostname, $port) or die("Could not connect to {$hostname});
我还没有在 ldap_connect() 手册中找到有关时间限制参数的内容,您可以在其中定义函数应尝试连接多长时间直至中止。
然而我不太能想出一个解决方案与try和catch或类似的东西。我也不想使用该set_time_limit()函数,因为我的脚本需要运行到最后。
我感谢每一个帮助:)谢谢和问候蒂姆
ldapconnection ×10
ldap ×8
ssl ×2
.net ×1
apacheds ×1
c# ×1
c#-4.0 ×1
edirectory ×1
java ×1
ldap-query ×1
liferay ×1
liferay-6 ×1
openldap ×1
oracle-aq ×1
php ×1
spring ×1
spring-ldap ×1
timeout ×1