从Active Directory检索密码到期警告

问题描述 投票:0回答:1

我有一个使用Active Directory验证用户身份的系统。现在,我必须使用AD中的安全设置来警告用户其密码将在几天后过期。如this article中所述,定义了向用户显示通知时密码将过期的时间。我想读取在“交互式登录:提示用户在到期前更改密码”中设置的值从AD使用javax.naming.directory.InitialDirContext。我希望在AD中记住此值,但我不知道如何找到它。我正在寻找一组AD属性,但似乎没有人匹配此信息。是否可以从AD检索此值?

java active-directory jndi
1个回答
0
投票

这更复杂,因为此设置未直接保存在Active Directory中。这是组策略的一部分(考虑到它是在策略中配置的,而不是在本地计算机上配置的),该策略保存在网络共享上,并在Active Directory中进行链接。

作为一个简单的例子,您可以像这样进入它:

  1. 读取您想要的OU并检查gPLink属性。该值类似于以优先级降序链接到所选OU的组策略对象列表。每个值都类似于:[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获取值的复杂程度,我都会考虑使用一些默认的过期警告期限(假设它是在组策略中定义的,而不仅仅是本地计算机上的默认值)。] >

© www.soinside.com 2019 - 2024. All rights reserved.