So aktivieren Sie Benutzer über LDAP in AD?
In meinem Programm (jldap-basiert) habe ich versucht zu aktivieren, den Benutzer im AD durch Einstellung userAccountControl Wert auf 512.
Der Benutzer erstellt mit folgenden Parametern:
objectClass=user
cn=username
name=username
userAccountControl=512
userPassword={BASE64}<base64 encoded password>
sAMAccountName=username
distinguishedName=username,CN=Users,DC=company,DC=com
Aber ich bekomme Ausnahme:
LDAPException: Unwilling To Perform (53) Unwilling To Perform
LDAPException: Server Message: 0000052D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0
Kann jemand mir sagen kann, wo ich bin, einen Fehler zu machen? Vielleicht habe ich vergessen etwas erforderliches Attribut?
EDIT:
Mein code (Es ist trivial und ich denke, dass keine Fehler drin):
LDAPConnection connection;
LDAPMessageQueue messageQueue;
...
LDAPAttributeSet attributes = new LDAPAttributeSet();
attributes.add(new LDAPAttribute("objectClass", "user"));
attributes.add(new LDAPAttribute("cn", "username"));
attributes.add(new LDAPAttribute("name", "username"));
attributes.add(new LDAPAttribute("userAccountControl", "512"));
attributes.add(new LDAPAttribute("userPassword", "{BASE64}<base64 encoded password>"));
attributes.add(new LDAPAttribute("sAMAccountName", "username"));
attributes.add(new LDAPAttribute("distinguishedName", "username,CN=Users,DC=company,DC=com"));
LDAPEntry entry = new LDAPEntry("CN=username,CN=Users,DC=company,DC=com", attributes);
connection.add(entry);
- Bitte zeigen Sie einige code, wie Sie festlegen dieser Werte. Vielleicht gibt es einen Fehler in ihm.
- Ich denke nicht, dass Fehler im code, weil ich kann erstellen Benutzer deaktiviert, aber wenn ich versuche, um den Benutzer zu ermöglichen, die ich erhalten Ausnahme.
- Kein code, keine Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler kann auftreten, wenn das Kennwort nicht korrekt codiert. Stellen Sie sicher, es ist ein Base64-kodierte UTF-16LE string.
Beispiel (wenn Sie mit Oracle JVM)
UPDATE 1:
Haben Sie versucht, Ihren code ausführen, ohne das userAccountControl-Attribut (für die Regel in oder out, dass es eigentlich das Attribut, das die Probleme verursacht)?
Bemerkte ich, dass Sie Ihre distinguished name-Attribut sieht ein bisschen seltsam, wie gut. Es sollte wohl so Aussehen
CN=username,OU=Users,DC=company,DC=com
.UPDATE 2: siehe Hinzufügen eines Benutzers mit einem Passwort in Active Directory-LDAP. WILL_NOT_PERFORM können zurückgegeben werden, wenn Sie versuchen, um das Passwort für einen Eintrag (das sind Sie, da Sie-Erstellung) über eine nicht-SSL-Verbindung. Sie müssen sicherstellen, dass Sie eine Verbindung mit dem AD-server über SSL (und einrichten der Zertifikate als erforderlich).