Attribut zum Aktivieren/Deaktivieren von Benutzern auf OpenLDAP mithilfe von Java

Attribut zum Aktivieren/Deaktivieren von Benutzern auf OpenLDAP mithilfe von Java

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

userAccountControlist 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 pwdAccountLockedTimeAttribut, 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 ldapadddie ppolicy.ldifDatei 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.

verwandte Informationen