如何让用户在不是 ApacheDS 管理员的情况下删除 pwdAccountLockedTime 属性?

如何让用户在不是 ApacheDS 管理员的情况下删除 pwdAccountLockedTime 属性?

我可能完全搞错了,但是我找不到任何“看起来很蠢,这样做……”级别的文档。

  • 我有 Apache DS v2.0.0
  • 我有用户
  • 我希望一些用户(我将其添加到 cn=unlock_admin,ou=groups,dc=example,dc=com 组)能够删除 pwdAccountLockedTime 操作字段:

在此处输入图片描述

我有以下prescriptiveAcl

{
    identificationTag "adminPrivileges",
    precedence 0,
    authenticationLevel simple,
    itemOrUserFirst userFirst: 
    {
        userClasses { allUsers },
        userPermissions 
        {
            {
                protectedItems 
                {
                    entry,
                    allUserAttributeTypesAndValues,
                    allAttributeValues { pwdAccountLockedTime } 
                }
                ,
                grantsAndDenials 
                {
                    grantAdd,
                    grantFilterMatch,
                    grantBrowse,
                    grantRemove,
                    grantReturnDN,
                    grantRename,
                    grantCompare,
                    grantRead,
                    grantModify 
                }
            }
        }
    }
}

看起来很简单,但我遗漏了一些关键的东西,因为任何尝试这样做的人都会遇到“未被用户修改”的错误。

尝试从另一个用户的帐户中删除 pwdAccountLockedTime 字段会导致以下错误:

执行 LDIF 时出错 - [LDAP:错误代码 50 - INSUFFICIENT_ACCESS_RIGHTS:消息类型失败:MODIFY_REQUES java.lang.Exception:[LDAP:错误代码 50 - INSUFFICIENT_ACCESS_RIGHTS:消息类型失败:MODIFY_REQUEST 消息 ID:18 修改请求对象:'uid=lorin,ou=people,dc=example,dc=com'修改 [0] 操作:删除修改 pwdAccountLockedTime:(null)org.apache.directory.api.ldap.model.message.ModifyRequestImpl@b070850:ERR_30 属性类型(1.3.6.1.4.1.42.2.27.8.1.17 NAME'pwdAccountLockedTime'DESC'用户帐户被锁定的时间'EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 单值无用户修改用法 directoryOperation ) 操作属性不能由用户修改] at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1280) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$600(DirectoryApiConnectionWrapper.java:109) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$4.run(DirectoryApiConnectionWrapper.java:726) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1175)位于 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1109)位于 org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.modifyEntry(DirectoryApiConnectionWrapper.java:748)位于 org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdifRecord(ImportLdifRunnable.java:514)位于org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdif(ImportLdifRunnable.java:272) at org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.executeLdif(ExecuteLdifRunnable.java:157) at org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.run(ExecuteLdifRunnable.java:123) at org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable.run(UpdateEntryRunnable.java:59) at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:112) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

[LDAP:错误代码 50 - INSUFFICIENT_ACCESS_RIGHTS:消息类型失败:MODIFY_REQUEST 消息 ID:18 修改请求对象:'uid=lorin,ou=people,dc=example,dc=com' 修改 [0] 操作:删除修改 pwdAccountLockedTime:(null)org.apache.directory.api.ldap.model.message.ModifyRequestImpl@b070850:ERR_30 属性类型(1.3.6.1.4.1.42.2.27.8.1.17 NAME 'pwdAccountLockedTime' DESC '用户帐户被锁定的时间' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) 操作属性不能被用户修改]

我希望他们只能在这个 ou 上拥有管理员密码,而不是整个系统(例如,成为系统管理员)

???

将 STS 与 Apache LDAP 插件结合使用: 在此处输入图片描述

相关内容