【问题标题】:ERROR When changing password on AD with enforcing control on password history通过强制控制密码历史记录更改 AD 上的密码时出现错误
【发布时间】:2019-01-11 10:57:05
【问题描述】:

我正在尝试更改 Active Directory 上的用户密码,我使用的方法是:

        ldapContext = getContext(resourceName);

        String quotedPassword = '"' + password.decryptToString() + '"';

        ModificationItem[] modifications = new ModificationItem[1];
        modifications[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(PASSWORD_ATTRIBUTE_NAME, quotedPassword.getBytes("UTF-16LE")));

        ldapContext.modifyAttributes(dn, modifications);

这很好用。

现在我想添加对密码历史记录的控制,以使用户无法设置最后 x 组密码。

这不起作用:

        final String LDAP_SERVER_POLICY_HINTS_OID = "1.2.840.113556.1.4.2239";
        ldapContext = getContext(resourceName);

        String quotedPassword = '"' + password.decryptToString() + '"';

        ModificationItem[] modifications = new ModificationItem[1];
        modifications[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(PASSWORD_ATTRIBUTE_NAME, quotedPassword.getBytes("UTF-16LE")));

        BasicControl[] controls = new BasicControl[1];
        final byte[] controlData = {48,(byte)132,0,0,0,3,2,1,1};
        controls[0] = new BasicControl(LDAP_SERVER_POLICY_HINTS_OID, true, controlData);
        ldapContext.setRequestControls(controls);

        ldapContext.modifyAttributes(dn, modifications);

知道我正在使用 SSL 连接,并且我设置的 OID 列在 ROOT DSE 的支持控件中,我收到此错误:

        javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 0000052D: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0

我被困住了,因为我不知道问题出在哪里,感谢任何帮助。

提前致谢

【问题讨论】:

  • 如果与 SSL 无关,您可能会在 AD 环境中遇到密码策略。
  • 感谢您的回答@Theo。我怎么做?你怀疑我没有遵守现有的密码政策吗?

标签: java active-directory change-password


【解决方案1】:

Active Directory 真的很糟糕,它很难弄清楚这样的事情,但秘密在于诊断消息中给出的“0000052D”。这是对 Active Directory 系统错误代码 0x52D 的引用,即十进制 1325。系统错误代码记录在 http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx

遵守密码政策以解决此错误。

【讨论】:

  • 问题是对密码策略的服从。感谢您的帮助
猜你喜欢
  • 2014-06-19
  • 2018-03-09
  • 2020-08-22
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多