Получение предупреждения об истечении срока действия пароля из Active Directory - PullRequest
0 голосов
/ 16 января 2020

У меня есть система, которая использует Active Directory для аутентификации пользователей. Теперь я должен использовать настройки безопасности из AD, чтобы предупредить пользователя о том, что срок действия его пароля истечет через несколько дней. Период до истечения срока действия пароля, когда уведомление предоставляется пользователям, определяется, как описано в этой статье . Я хочу прочитать значение, установленное в «Интерактивный вход в систему: предложить пользователю сменить пароль до истечения срока его действия» из AD с помощью javax.naming.directory.InitialDirContext. Я надеюсь, что это значение запоминается в AD, но я не знаю, как его найти. Я искал набор атрибутов AD, но никто, кажется, не соответствует этой информации. Можно ли извлечь это значение из AD?

1 Ответ

0 голосов
/ 20 января 2020

Это сложнее, так как этот параметр напрямую не хранится в Active Directory. Это часть групповой политики (учитывая, что она настроена в политике, а не на локальном компьютере), которая хранится в общем сетевом ресурсе и связана с Active Directory.

Для простого примера вы можете получить в это выглядит так:

  1. Считайте нужную OU и проверьте атрибут gPLink. Значение представляет собой список объектов групповой политики, связанных с выбранным подразделением в порядке убывания приоритета. Каждое из значений выглядит примерно так: [LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=internal,DC=local;0]. Первая часть - это местоположение GP, последняя часть кажется флагом (2 означает, что политика применяется).
  2. Прочитайте объект (ы) политики и проверьте атрибут gPCFileSysPath. Это место, где хранятся параметры политики. Это будет что-то вроде \\internal.local\sysvol\internal.local\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}.
  3. Проверьте хранилище файлов из пункта 2. и найдите файл MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf. Это обычный файл inf / ini, изучите раздел [Registry Values], чтобы найти строку, которая гласит: MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\PasswordExpiryWarning=4,14. 14 - это параметр политики (для запроса смены пароля за 14 дней до истечения срока действия).

Теперь все становится сложнее, чтобы получить реальный набор политик. Политики наследуются от родителей, что означает, что в пункте 1. вы должны проверять предполагаемую OU и все его родительские OU вместе с самим узлом домена, оценивать все gPLink в соответствующем порядке, возможно, также принимая во внимание их фильтр WMI независимо от того, применяются ли они или нет, чтобы выяснить, какое значение действует.

Если ваше приложение работает на Windows, которое может быть помещено под одну и ту же групповую политику, может быть проще просто прочитайте информацию из реестра, так как она будет уже применена системой.

В любом случае, я хотел бы просто использовать некоторый период предупреждения об истечении срока действия по умолчанию, учитывая степень сложности, чтобы получить значение из AD ( при условии, что он вообще определен в групповой политике, а не только по умолчанию на компьютерах локально).

...