Я, вероятно, ошибаюсь, но я не нашел никакой документации уровня «Смотри, глупо, сделай это ...».
У меня есть следующий 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: сбой для MessageType: MODIFY_REQUES java.lang.Exception: [LDAP: код ошибки 50 - INSUFFICIENT_ACCESS_RIGHTS: сбой для MessageType: MODIFY_REQUEST ID объекта сообщения: 18 Идентификатор запроса сообщения: 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-VALUEOperation NO-USER-MODIFICATION ) операционный атрибут не может быть изменен пользователем] в org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse (DirectoryApiConnectionWrapper.java:1280) в org.apache.directory.studio.connection.core. io.api.Direct oryApiConnectionWrapper.access $ 600 (DirectoryApiConnectionWrapper.java:109) по адресу org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper $ 4.run (DirectoryApiConnectionWrapper.java:726) в org.apache..directory. core.io.api.DirectoryApiConnectionWrapper.runAndMonitor (DirectoryApiConnectionWrapper.java:1175) в org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor (.DirectoryWrapper. studio.connection.core.io.api.DirectoryApiConnectionWrapper.modifyEntry (DirectoryApiConnectionWrapper.java:748) в org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdifRecord (ImportLdifRunnable.importLdifRecord (ImportLdifRunnable.importLdifRecord) (ImportLdifRunnable). directory.studio.ldapbrowser.core.jobs.ImportLdifRunnable.importLdif (ImportLdifRunnable.java:272) в org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.executeLdif (ExecuteLdif). ужасный ctory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.run (ExecuteLdifRunnable.java:123) в org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable.run (UpdateEntryRunnable.или directory.studio.connection.ui.RunnableContextRunner $ 1.run (RunnableContextRunner.java:112) в org.eclipse.jface.operation.ModalContext $ ModalContextThread.run (ModalContext.java:122)
[LDAP: код ошибки 50 - INSUFFICIENT_ACCESS_RIGHTS: сбой для MessageType: MODIFY_REQUEST Идентификатор сообщения: 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 ИМЯ '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) операционный атрибут не может быть изменен пользователем]
Я бы предпочел, чтобы они могли иметь пароли администратора только для этого устройства, а не для всей системы (например, создание системного администратора)
???
Использование STS с плагином Apache LDAP: