Раздельные (гранулированные) политики паролей Fine-Grained Password Policies (FGPP) позволяют создать отдельные политики паролей для определенных пользователей или групп. Множественные политики паролей FGPP доступны, начиная с версии Active Directory в Windows Server 2008. В предыдущих версиях AD 2000 можно было создать только одну политику паролей в каждом домене (в рамках Default Domain Policy).
В этой статье мы покажем, как создать и настроить раздельные политики управления паролями (Password Setting Objects) в домене.
Множественные политики управления паролями — Fine-Grained Password Policies
Fine-Grained Password Policies позволяют администратору создать в одном домене несколько специальных политик управления паролями (Password Settings Policy — PSO). В PSO объектах задаются требования к паролям (длина, сложность, история) и настройки блокировки учетных записей. Политики PSO можно назначать на конкретных пользователей или группы, но не на контейнеры (OU) Active Directory. Если к пользователю/группе привязана политика PSO, то настройки парольной политики из GPO Default Domain Policy к нему более не применяются.
С помощью политик FGPP можно задать более высокие требования на длину и сложность пароля для учетных записей администраторов, сервисных учетных записей или пользователей, имеющих внешний доступ в домена (через VPN или DirectAccess).
Основные требования для использования множественных политик паролей FGPP в домене:
- Функциональный уровень домена Windows Server 2008 или выше;
- Парольные политики можно назначить на пользователей или глобальные (!) группы безопасности (global security);
- FGPP политика применяется целиком (нельзя часть настроек описать в GPO, а часть в FGPP).
Настройка Password Settings Policy в Active Directory
Вы можете создавать и редактировать парольные политики Fine-Grained Password Policies из графического интерфейса консоли Active Directory Administration Center (ADAC).
В данном примере мы покажем, как создать и назначить отдельную парольную политику на доменную группу Domain Admins.
Запустите консоль Active Directory Administrative Center (dsac.msc), переключитесь в древовидный вид и разверните контейнер System. Найдите контейнер Password Settings Container, щелкните по нему ПКМ и выберите New -> Password Settings.
Укажите имя политики паролей (например, Password Policy for Domain Admins) и задайте настройки. Все поля стандартные: минимальная длина и сложность пароля, количество хранимых паролей в истории, частота смены пароля, параметры блокировки при неправильном введении пароля и т.д.
msDS-PasswordSettings
) описывается отдельным атрибутом AD:- msDS-LockoutDuration
- msDS-LockoutObservationWindow
- msDS-LockoutThreshold
- msDS-MaximumPasswordAge
- msDS-MinimumPasswordAge
- msDS-MinimumPasswordLength
- msDS-PasswordComplexityEnabled
- msDS-PasswordHistoryLength
- msDS-PasswordReversibleEncryptionEnabled
- msDS-PasswordSettingsPrecedence
Обратите внимание на атрибут Precedence. Данный атрибут определяет приоритет данной политики паролей. Если на пользователя AD действуют несколько политик PSO, то к нему будет применена политика с меньшим значением в поле Precedence.
- Если на пользователя действуют две PSO политики с одинаковыми значениями Precedence, будет применена политика с меньшим GUID;
- Если на пользователя назначены несколько политик, причем одна из них действует через группу безопасности AD, а вторая – напрямую на учетную запись, то будет применена политика, назначенная на учетку.
Затем в секции Direct Applies To добавьте группы или пользователей, на которых должна действовать политика (в этом примере Domain Admins). Сохраните политику.
С этого момента данная парольная политика будет применяться на всех членов группы Domain Admins.
Запустите консоль Active Directory Users and Computers (с установленной опцией Advanced Features) и откройте свойства любого пользователя из группы Domain Admins. Перейдите на вкладку редактора атрибутов (Attribute Editor) и в поле Filter выберите опцию Constructed.
Найдите атрибут пользователя msDS-ResultantPSO. В этом атрибуте указывается действующая на пользователя парольная политика FGPP (
CN=Password Policy for Domain Admins,CN=Password Settings Container,CN=System,DC=winitpro,DC=ru
).
Также действующую политику PSO для пользователя можно получить с помощью dsget:
dsget user "CN=Dmitriy,OU=Admins,DC=winitpro,DC=ru" –effectivepso
Настройка политики паролей PSO с помощью PowerShell
Вы можете управлять политиками паролей PSO с помощью PowerShell (на компьютере должен быть установлен модуль RSAT-AD-PowerShell).
Для создания новой политики используется командлет New-ADFineGrainedPasswordPolicy:
New-ADFineGrainedPasswordPolicy -Name "Admin PSO Policy" -Precedence 10 -ComplexityEnabled $true -Description “Domain password policy for admins”-DisplayName “Admin PSO Policy” -LockoutDuration “0.10:00:00” -LockoutObservationWindow “0.00:20:00” -LockoutThreshold 5 -MaxPasswordAge “12.00:00:00” -MinPasswordAge “1.00:00:00” -MinPasswordLength 10 -PasswordHistoryCount 4 -ReversibleEncryptionEnabled $false
Теперь можно назначить политику на группу пользователей:
Add-ADFineGrainedPasswordPolicySubject "Admin PSO Policy" -Subjects "Domain Admins"
Чтобы изменить настройки политики PSO:
Set-ADFineGrainedPasswordPolicy "Admin PSO Policy" -PasswordHistoryCount:"30"
Вывести все политики FGPP в домене:
Get-ADFineGrainedPasswordPolicy -Filter *
Для получения результирующей парольной политики, которая применяется к конкретному пользователю используется команды. Имя политики PSO, которая действует на пользователя указано в поле Name.
Get-ADUserResultantPasswordPolicy -Identity username
Список политик PSO, назначенных на группу Active Directory, можно вывести с помощью командлета:
Get-ADGroup "Domain Admins" -properties * | Select-Object msDS-PSOApplied
Чтобы вывести настройки политики паролей по-умолчанию из Default Domain Policy, выполните команду:
Get-ADDefaultDomainPasswordPolicy
P@ssw0rd
. Рекомендуем периодически проверять ваш домен на использование ненадежных паролей.
Как обычно 5+ Доступно и понятно. Будем тестить)
«одна из них действет через группу» — pls, поправьте ошибку.
И не совсем понятно, как определить «меньшность» GUID. Впрочем, если не создавать нагромождений, то и проблем не будет.
Поправил. Спасибо.
Приоритет по GUID использовался в предыдущих версиях Granular Password Policies. Сейчас приоритет политики проще всего выставить через параметр Precedence. Чем меньше значение Precedence, тем больший приоритет у данной политики паролей.
Подскажите что делать если политика не применяться? То что было настроено в Default Domain Policy убрал. Развернул в ВМ домен, там всё настроил, работает…Настройки все те же самые что и на боевом сервере…Никак не пойму где собака зарыта….
У пользователя, которому привязали FGGP атрибут msDS-ResultantPSO в AD что содержит?
Версия домена, леса одинаковая?
У пользователя значение стоит «не задано»…Я уже пробывал создавать эту политику через остатку центра администирования, через power shell, через редактирование ADSI, но видимо суть не в том как её создавать…
Развернул ВМ, в ней поднял домен и ввёл туда ещё одну ВМ, там эта политика заводится с пол пинка, атрибут msDS-ResultantPSO подхватывается моментально. На ВМ развернул домен на 2012 сервере. Боевой домен уровня 2016. Я просто не понимаю почему она не применяется, да и проблема ещё в том что эта гранулированая политика не отражается в результатах групповой политики, т.е. не могу даже посмотреть, ошибку, применяться она или нет, даже на ВМ где всё работает как часы, эту политику не видно в результатах применения.
Проверьте
1) Политика применена на пользователя или глобалную группу безопасности
2) функциональный уровень леса <-2008
3) Выведите все FGGP политики:
Get-ADFineGrainedPasswordPolicy -Filter *
1) Пробывал и на глобальную группы безопасности и напрямую на тестируемого пользователя, результат не меняется. Сейчас стоит оба варианта.
2) Уровень домена и леса 2016.
3)PS C:\Users\administrator> Get-ADFineGrainedPasswordPolicy -Filter *
AppliesTo : {CN=Политика паролей,CN=Users,DC=dmn,DC=my,DC=ru, CN=тест,OU=Для тестов пользо
вателей,OU=Пользователи,DC=dmn,DC=my,DC=ru}
ComplexityEnabled : True
DistinguishedName : CN=пароли пользователей,CN=Password Settings Container,CN=System,DC=dmn,DC=my,DC
=ru
LockoutDuration : 00:00:00
LockoutObservationWindow : 00:10:00
LockoutThreshold : 3
MaxPasswordAge : 42.00:00:00
MinPasswordAge : 1.00:00:00
MinPasswordLength : 7
Name : пароли пользователей
ObjectClass : msDS-PasswordSettings
ObjectGUID : b77620c9-ea57-41fa-afb6-e0fd5c312451
PasswordHistoryCount : 24
Precedence : 2
ReversibleEncryptionEnabled : False
А если руками пользователю прописать значение политики в атрибут msDS-ResultantPSO? По аналогии с вашим тестовым доменом
А как это сделать? ADSI? Атрибут же просто так не редактируется…
Я уже думал об этом, но не нашёл способа как туда его скопировать…
Ну да, нельзя руками править атрибут msDS-ResultantPSO, только система может…
Обратите внимание, что тип группы для применения политики должен быть global. результирующую fine grained policy для пользователя можно получить так:
Get-ADUserResultantPasswordPolicy username
стал тестировать фичу, все путем было ана следующий день Get-ADUserResultantPasswordPolicy : Не удается найти объект с удостоверением: «CN=testpolicy,CN=Password Settings Conta
iner,CN=System,
строка:1 знак:1
Вы один одмин в домене? никто не мог удалить PSO кроме вас?
простите, ответ прилип не туда или мне так кажется. не привык к местным комменатриям еще
в общем там все ясно, не так смотрел похоже. тоесть PS надо запускать не от администратора а от доменного администратора. Похоже вопрос решен, политика ограничения срока жизни пароля пользователя не срабатывала но похоже потому что в учетке стояла галочка «срок действия пароля не ограничен»
проблема в том что он не был удален. просто перестало работать, я как раз проверял работоспособность фичи. сперва работало вроде, осталосьпроверит работу ограничения по времени жизни пароля, там минимум сутки и вот наследующий день обнаружил что ограничение не сработало, стал разбираться а тут такое. что интересно тогда же создал новый и привязал к другому пользователю. и та же история, не работает уже сразу. сегодня не пробовал еще. контроллер домена кстати на 2012r2 со всеми обновлениями на тот день.
ps искал на этом сайте, не нашел -нельзя ли как то создать журнал событий из фильтра на основе другого журнала? нужна коллекция событий определенного типа. за год. журнал так увеличивать неохота.
так, с ситуацией потихонечку разбираюсь, непонятно однако почему не требовало сменить пароль если у него срок действия один день.
Спасибо за статью!
Можно ли без прав доменного администратора смотреть парольные политики юзера? Или как дать определенным пользователям такой доступ? Get-ADUserResultantPasswordPolicy -Identity username пишет «Не удается найти объект с удостоверением: имя политики»
По умоланию Authenticated Users нет прав чтения на объекты PSO. Только для Domain Admins.
The settings on the PSO may be considered confidential; therefore, by default Authenticated Users do not have Read Property permissions for a PSO. By default, only members of the Domain Admins group have Read Property permissions on default security descriptor of the PSO object in the schema.
_https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc770394(v=ws.10)?redirectedfrom=MSDN
Можно делегировать права нужной группе
Добрый день.
Настроил все по статье. В свойствах учетки появилась политика парольная. Для теста установил там значение меньше, чем действующий пароль, т.е. по идее при входе должен был предложить сменить его. Но этого не произошло. В чем может быть проблема?
Парольные политики применяются при смене пароля. Они не применяются и не анализируют текущий пароль.
Получается и выставить предупреждение о скорой смене пароля не выйдет? Планируется разный срок действия для обычных пользователей и для админский учетных записей
Можно поставить галку — о смене пароле при следующем входе (ChangePasswordAtLogon). Естественно, предварительного оповещения не будет
Вручную нельзя изменить значения атрибутов пользователя pwdLastSet и PasswordLastSet.
Возможно только изменить дату смены пароля на сегодняшний день:
Set-ADUser user1 -Replace @(pwdLastSet=’0′)
Set-ADUser user1 -Replace @(pwdLastSet=’-1′)
Но в вашем случае это не имеет смысла
Добрый день,не могу понять в чем дело.
В политиках везде(Общая на домен и Раздельная на группы пользователей) стоит опция «Пароль должен отвечать требованиям сложности»,но хоть убей проверяет все требования только не наличие спец. символа.допускает смену паролей без него.
В чем может быть проблема?
На КД Win Server2012r2 на клиентских компах Win10 22h2
Я вот удалил политику, а удалилась вся папка Password Settings Container.
Как восстановить?