it-swarm.com.de

LDAP: Fehlercode 49 - 80090308: LdapErr: DSID-0C0903A9, Kommentar: AcceptSecurityContext-Fehler, Daten 52e, v1db1

LDAP: Fehlercode 49 - 80090308: LdapErr: DSID-0C0903A9, Kommentar: AcceptSecurityContext-Fehler, Daten 52e, v1db1

Ich weiß, dass der Code "52e" ist, wenn der Benutzername gültig ist, das Passwort jedoch ungültig ist. Ich verwende denselben Benutzernamen und dasselbe Passwort in meinem Apache Studio. Ich konnte die Verbindung zu LDAP erfolgreich herstellen.

Hier ist mein Java code

    String userName = "*******";
    String password = "********";
    String base ="DC=PSLTESTDOMAIN,DC=LOCAL";
    String dn = "cn=" + userName + "," + base;  
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.Sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://******");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, dn);
    env.put(Context.SECURITY_CREDENTIALS, password);
    LDAPAuthenticationService ldap = new LDAPAuthenticationService();
   // LdapContext ctx;
    DirContext ctx = null;
    try {
        ctx = new InitialDirContext(env);

Mein Fehler ist in dieser Zeile: ctx = new InitialDirContext(env);

Ich weiß nicht genau, was diesen Fehler verursacht.

47
anusha vannela

daten 52e - Gibt zurück, wenn der Benutzername gültig ist, das Kennwort/der Berechtigungsnachweis jedoch ungültig ist.

Du brauchst wahrscheinlich sowas

String dn = "cn=" + userName + "," + "CN=Users," + base;  
25
jwilleke

Für mich wurde das Problem behoben, als ich den Hauptabschnitt wie folgt festlegte:

env.put(Context.SECURITY_PRINCIPAL, [email protected]);
21
Vishal

52e 1326 ERROR_LOGON_FAILURE Gibt zurück, wenn der Benutzername gültig ist, das Kennwort/der Berechtigungsnachweis jedoch ungültig ist. Verhindert, dass die meisten anderen Fehler wie angegeben angezeigt werden.

http://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors

13
brcaak

Wenn Sie Context.SECURITY_AUTHENTICATION als "einfach" verwenden, müssen Sie den Attributwert userPrincipalName (user @ domain_base) angeben.

7
Moe

Ich hatte ein ähnliches Problem bei der Verwendung von AD auf CAS, d. H. Fehler 52e. In meinem Fall akzeptiert die Anwendung den vollständigen Namen in Form von CN = anstelle des tatsächlichen Benutzernamens.

Wenn Sie zum Beispiel einen Benutzer hatten, dessen vollständiger Name Ross Butler ist und dessen Login-Benutzername rbutler ist, würden Sie normalerweise so etwas wie cn = rbutler, ou = Users, dc = domain, dc = com eingeben, aber unser Name ist jedes Mal fehlgeschlagen. Indem Sie dies in cn = Ross Butler ändern, ou = Users, dc = domain, dc = com, hat es bestanden !!

4
Count

In meinem Fall muss ich so etwas wie @ verwenden, um mich erfolgreich anzumelden.

sample_user @ sample_domain

3
Linh Nguyen

Für mich wird das Problem gelöst, indem der Benutzername wie folgt um einen Domainnamen ergänzt wird:

string userName="yourUserName";
string password="passowrd";
string hostName="LdapServerHostName";
string domain="yourDomain";
System.DirectoryServices.AuthenticationTypes option = System.DirectoryServices.AuthenticationTypes.SecureSocketsLayer; 
string userNameWithDomain = string.Format("{0}@{1}",userName , domain);
DirectoryEntry directoryOU = new DirectoryEntry("LDAP://" + hostName, userNameWithDomain, password, option);
2
Mahsh Nikam

wenn Sie debuggen und auf ctx = null schauen, könnte es sein, dass Ihr Benutzername ein Problem hat. Schreiben Sie "ac\administrator" (double "\") oder "administrator @ ac".

2
HaoSi

LDAP versucht, sich bei AD zu authentifizieren, wenn eine Transaktion an eine andere Server-DB gesendet wird. Diese Authentifizierung schlägt fehl, weil der Benutzer kürzlich sein Kennwort geändert hat, obwohl diese Transaktion mit den vorherigen Anmeldeinformationen generiert wurde. Diese Authentifizierung schlägt so lange fehl, bis ... Sie den Transaktionsstatus in "Abgeschlossen" oder "Abbrechen" ändern. In diesem Fall beendet LDAP das Senden dieser Transaktionen.

1
Ebrahim

Für mich wird das Problem gelöst, indem man die envs wie folgt ändert:

 env.put("LDAP_BASEDN", base)
 env.put(Context.SECURITY_PRINCIPAL,"[email protected]")
0
user3917389