Вопрос или проблема
Я пытаюсь использовать расширенное право Unexpire-Password в Active Directory.
Обратите внимание, что это не то же самое, что и настройка “Пароль никогда не истекает”.
Я понимаю, что если пароль userA истек, это разрешение должно позволить другому пользователю userB восстановить срок действия пароля, используя это разрешение. Я не смог найти подробную документацию, поэтому не уверен, как это сделать.
Я попробовал следующее:
На контроллере домена Windows Server 2016 я настроил разрешение, используя интерфейс Active Directory Users and Computers. В разделе “Вид” я включил “Дополнительные функции”, а в корневом объекте домена открыл свойства > безопасность > дополнительно. Затем я нажал “Добавить” и выбрал главного пользователя userB, чтобы дать ему разрешение “Unexpire Password”. В разделе “применяется к” я выбрал “Этот объект и все дочерние объекты”.
После этого я изменил политику паролей на максимальный срок действия один день, и когда пароль userA истек, я установил атрибут pwdLastSet в 0, затем в -1, но получил отказ в доступе.
Я предоставил userB разрешение на запись в pwdLastSet тем же методом, но это не сработало.
Я должен добавить, что разрешение “Сбросить пароль” работает, и я могу сбросить пароль userA, используя userB.
Разница между разрешением “Сбросить пароль” и “Unexpire password” заключается в том, что “Unexpire Password” является расширенным правом, которое можно найти здесь: https://learn.microsoft.com/en-us/windows/win32/adschema/extended-rights, и оно может применяться только к корневому объекту домена, в отличие от “Сбросить пароль”, которое может применяться к “Объекту пользователя”.
Более важная информация:
- userA – это обычный аккаунт.
- userB – это обычный аккаунт только с соответствующими разрешениями.
- Нет GPO политики, за исключением стандартной и предельного срока действия пароля, который я изменил в этой политике.
Моя цель – понять, как я могу правильно использовать это разрешение, чтобы пользователь мог “восстановить истекший пароль для объекта пользователя”, как говорится в документации Microsoft.
Если вам нужна дополнительная информация, я с удовольствием предоставлю ее.
Ответ или решение
Теория:
Права расширенного доступа в Active Directory (AD) предоставляют дополнительные уровни контроля над объектами внутри среды AD. Конкретное право расширенного доступа, о котором идет речь – "Unexpire-Password" (Снять истечение пароля), предназначено для восстановления пароля у пользователей, чьи пароли истекли. Это право отличается от настройки "Пароль никогда не истекает", поскольку последнее применяется на уровне политики пароля пользователя и препятствует истечению пароля. В то время как "Unexpire-Password" позволяет администратору или другому пользователю, наделенному соответствующими правами, снять статус истечения у уже истекшего пароля, без необходимости принудительной установки нового пароля.
Пример:
Ваша цель состоит в том, чтобы учетная запись пользователя, чье право истечения пароля истекло, могла снова использовать старый пароль без его изменения. Таким образом, если пароль пользователя истек по причине политики максимального срока действия пароля, право "Unexpire-Password" позволяет другому пользователю (например, userB) снять эту блокировку, тем самым возвратив доступ пользователю к своей учетной записи с его прежним паролем.
Применение:
-
Убедитесь в правильной настройке разрешений: Согласно вашему описанию, вы уже добавили permission "Unexpire-Password" для userB на корневой объект домена с применением "на этот объект и все дочерние объекты". Этот шаг обычно является правильным для наследования разрешений на все объекты в домене.
-
Права на изменение атрибута pwdLastSet: Вы сделали правильные попытки изменить атрибут pwdLastSet сначала на 0 (укуказать об истечении пароля) и затем на -1 (обозначающее возможность снова использовать старый пароль). Однако права записи на pwdLastSet, скорее всего, не проверялись, так как это может быть связано с неправильной настройкой наследуемых прав пользователем userB.
-
Проверка наследования и возможного блокирования: Возможно, есть какая-либо другая политика или вручную установленные разрешения, которые блокируют права записи userB на атрибут pwdLastSet. Это могут быть блокировки на уровне объекта, наследуемые разрешения с других уровней или другие специальные настройки безопасности.
-
Использование сторонних утилит или скриптов: Попробуйте использовать PowerShell или другую утилиту для управления AD для выполнения этой операции. Есть скрипты, которые могут помочь модифицировать права доступа напрямую, избегая GUI ограничений. Попробуйте использовать следующий PowerShell скрипт для установки pwdLastSet на -1, чтобы снять истечение пароля:
Import-Module ActiveDirectory
Set-ADUser -Identity <UserADObject> -Replace @{pwdLastSet= -1}
Замените <UserADObject>
на соответствующее имя пользователя (userA).
-
Проверка политик безопасности и ролей: Убедитесь, что роли и политики безопасности, которые могут быть настроены в вашем AD, не противоречат приложениям настроек разрешений для userB.
-
Обратная связь и исправление ошибок: Если сценарий продолжает блокироваться, рекомендую использовать инструменты трассировки событий и журналы, чтобы отследить, почему именно происходит блокировка со стороны системы безопасности. Это может дать более глубокое понимание и указать на точки конфликта.
Как итог, успешное использование права "Unexpire-Password" требует не только правильного предоставления этого права, но и учета множества связанных настроек безопасности и согласованности с политиками, существующими в вашей среде AD. Постарайтесь выяснить, нет ли других конфигураций, которые могли бы нарушать ваши текущие настройки, и примите необходимые меры для их устранения.