Java 从Active Directory检索密码过期警告
我有一个使用Active Directory对用户进行身份验证的系统。现在我必须使用AD的安全设置来警告用户他的密码将在几天后过期。向用户显示通知时,密码过期之前的时间段定义如中所述。 我想读取“交互式登录:提示用户在到期前更改密码”中设置的值Java 从Active Directory检索密码过期警告,java,active-directory,jndi,Java,Active Directory,Jndi,我有一个使用Active Directory对用户进行身份验证的系统。现在我必须使用AD的安全设置来警告用户他的密码将在几天后过期。向用户显示通知时,密码过期之前的时间段定义如中所述。 我想读取“交互式登录:提示用户在到期前更改密码”中设置的值 从AD使用javax.naming.directory.InitialDirContext。我希望这个值在广告中被记住,但我不知道如何找到它。我在寻找一组广告属性,但似乎没有人能匹配这些信息。是否可以从AD检索此值?由于此设置未直接保存在Active D
从AD使用javax.naming.directory.InitialDirContext。我希望这个值在广告中被记住,但我不知道如何找到它。我在寻找一组广告属性,但似乎没有人能匹配这些信息。是否可以从AD检索此值?由于此设置未直接保存在Active Directory中,因此此设置更为复杂。这是组策略的一部分(考虑到它是在策略中配置的,而不是在本地计算机上),它保存在网络共享上并链接到Active Directory中 举一个简单的例子,你可以这样做:
gPLink
属性。该值类似于按优先级降序链接到选定OU的组策略对象列表。每个值都类似于:[LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=internal,DC=local;0]
。第一部分是一个GP位置,最后一部分似乎是一个标志(2意味着策略被强制执行)gPCFileSysPath
属性。这是存储策略设置的位置。它类似于\\internal.local\sysvol\internal.local\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}
MACHINE\Microsoft\windowsnt\SecEdit\GptTmpl.inf
文件。这是一个常规的inf/ini文件,请调查[注册表值]
部分,找到一行内容:MACHINE\Software\Microsoft\windowsnt\CurrentVersion\Winlogon\PasswordExpiryWarning=4,14
。此14
是一项策略设置(在到期前14天提示更改密码)gPLink
s,可能还要考虑它们的WMI筛选器,无论它们是否应用,以便找出有效的值
如果您的应用程序恰好运行在可以置于同一组策略下的Windows上,那么从注册表读取信息可能会更容易,因为系统已经应用了这一点
在任何情况下,我都会考虑使用一些默认的过期警告周期,考虑到从AD中获取值的复杂性(前提是它是在组策略中定义的,而不仅仅是本地计算机上的默认)。由于精确解的复杂性,我想我会使用一些默认值。