![Attribut zum Aktivieren/Deaktivieren von Benutzern auf OpenLDAP mithilfe von Java](https://rvso.com/image/760630/Attribut%20zum%20Aktivieren%2FDeaktivieren%20von%20Benutzern%20auf%20OpenLDAP%20mithilfe%20von%20Java.png)
Meine Benutzer sind inetOrgPerson. Was wäre das Attribut zum Aktivieren/Deaktivieren von Benutzern? Ich verwende die JNDI-Bibliothek und versuche diesen Code für Active Directory, aber ich erhalte LDAP: Fehlercode 17 – userAccountControl: Attributtyp nicht definiert. Wenn ich versuche, beim Erstellen des Benutzers attribute.put("userAccountControl","0x0001"); einzugeben, erhalte ich denselben Fehler.
Irgendeine Idee?
public void disableEnableUser(String user) throws Exception {
ModificationItem[] mods = new ModificationItem[1];
//To enable user
//int UF_ACCOUNT_ENABLE = 0x0001;
//mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_ACCOUNT_ENABLE)));
// To disable user
int UF_ACCOUNT_DISABLE = 0x0002;
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_ACCOUNT_DISABLE)));
connection.modifyAttributes("path to user", mods);
}
Antwort1
userAccountControl
ist ein AD-Attribut, daher werden Sie es in OpenLDAP nicht finden (dasDefinition von inerOrgPersonhat nicht userAccountControl
). Wenn Sie Ihre Benutzer sperren möchten, müssen Sie es anders machen.
Eine Möglichkeit besteht darin, das Passwortrichtlinien-Overlay (ppolicy) zu verwenden. Die ppolicy definiert ein pwdAccountLockedTime
Attribut, das, wenn es auf „00000101000000Z“ gesetzt ist, eine administrative Sperre anzeigt. Damit dies funktioniert, müssen Sie ppolicy in Ihren LDAP-Baum aufnehmen, was im Wesentlichen bedeutet, dass Sie ldapadd
die ppolicy.ldif
Datei mit einbinden.
Eine weitere Möglichkeit besteht darin, das Passwort des Benutzers in etwas zu ändern, das eine Sperre anzeigt. Wenn Sie beispielsweise das {SSHA}
Präfix des Passworts in ändern {SSHA}!
, können Sie leicht angeben, ob der Benutzer gesperrt ist. Als Bonus benötigen Sie keine zusätzlichen Overlays und es verhindert auch, dass sich der Benutzer anmeldet.