首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sun-one LDAP中将passwordMustChange属性设置为"on“没有任何预期效果。

在Sun-one LDAP中将passwordMustChange属性设置为"on“没有任何预期效果。
EN

Stack Overflow用户
提问于 2015-03-11 09:45:29
回答 2查看 1K关注 0票数 1

我使用JNDI框架与各种LDAP服务器(特别是Sun one LDAP )进行交互,我注意到以下内容:

用例:如果管理员重置Sun-One LDAP服务器中任何用户的密码,则passwordMustChange属性设置为"on“。因此,用户必须在下次登录时更改他/她的密码。这是记录在案的。

我正在使用JNDI通过JAVA代码执行相同的操作。我观察到这个属性被设置为"on“成功。所以编程逻辑是正确的。

但是,当我在LDAP服务器上与该用户登录时,它不会出现任何错误,也不会弹出密码过期的消息,请更改您的密码。对于Active Directory (AD )服务器,在AD情况下,同样的用例可以正常工作,我们需要将pwdLastSet设置为。它正常工作,系统要求在下次登录时更改密码。

相反,相同的用例不适用于任何LDAP风格,例如Sun-One LDAP、ADAM或Open。请让我知道是否有人注意到这样的问题,并建议我如何解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-11 21:12:37

你把它放错地方了。passwordMustChange是策略的属性,而不是用户的属性。这意味着,如果您为任何用户设置了操作属性pwdReset,他必须在下次登录时更改他的密码,当他这样做时,这将通过响应控制得到建议。

这意味着在绑定用户时必须使用密码策略请求控件,并检查响应控件。这也意味着在更改密码时必须使用更改密码扩展操作,而不仅仅是重写属性。

这也解释了为什么您认为必须向用户条目中添加objectClass=passwordPolicy。没有。您必须定义一个单独的策略对象,其中包含passswordMustChange和其他策略属性的值,并在配置中指定它为默认策略,或者在用户条目中指定为他的特定策略。

您需要重新阅读文档并明确区分策略属性和用户操作属性。他们是分开列的。

用于扩展操作和请求/响应控件的代码是什么?我不得不写我的。几年前,我在Sun Java论坛上发布了它:这是代码吗?只是好奇而已。

票数 0
EN

Stack Overflow用户

发布于 2015-03-11 11:12:46

不幸的是,这种特性没有标准(有一个互联网草案,过期了,并且在不同的服务器上部分实现)。根据您的版本,有不同的方法可以做到这一点(SunDS 6.x引入了基于互联网草案的新密码策略)。使用5.x时,我似乎还记得,当密码过期时,passwordExpirationTime将获得一个特定的值。服务器将返回绑定响应的PasswordExpired控件部分,说明它已过期。

对于6.x和更高版本,pwdReset操作属性被设置为true。如果在绑定请求中设置了PasswordExpired请求,服务器将返回PwdPolicyControl控件,或者返回PwdPolicyControl响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28983125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档