ldap - 如何在openldap中设置帐户到期日期

标签 ldap openldap

我希望在 openldap 中实现新的帐户策略,允许管理员设置用户帐户的到期日期。但是,我在对象类中找不到任何相关属性。

这与 pwdMaxAge 等密码属性无关。此策略的用途是订阅服务。一旦用户订阅服务器达到一定期限,管理员将设置订阅结束的帐户到期日期。如果在到期日期之前,用户将通过身份验证,并且在到期日期之后将无法通过身份验证。

在 openldap 中可以这样做吗?我谷歌了一下,发现微软的ActiveDirectory有AccountExpirationDate属性。

最佳答案

OpenLDAP 或其覆盖层不直接支持帐户过期(甚至在 contrib/ 中也不支持)。

霍华德楚suggests为此,可以使用 ppolicy 的 pwdMaxAge ,它可以工作,但我发现这不太理想:如果您已经使用 ppolicy 来处理过期密码(除了过期帐户),它会与这些设置冲突,如果您配置了宽限登录(明智的做法),用户可以更改其密码,从而重置过期计时器。

看来best way实现这一点(也是一个好的方法不是)是通过运行一个外部任务,将(ppolicy 属性)pwdAccountLockedTime 设置为表示手动锁定帐户的魔数(Magic Number),该帐户无法由用户。

pwdAccountLockedTime

This attribute contains the time that the user's account was locked. If the account has been locked, the password may no longer be used to authenticate the user to the directory. If pwdAccountLockedTime is set to 000001010000Z, the user's account has been permanently locked and may only be unlocked by an administrator. Note that account locking only takes effect when the pwdLockout password policy attribute is set to "TRUE".

此外部任务(很可能是一个 cronjob)可以通过以下方式实现:在循环时从用户记录上的自定义属性(例如 expirationTime)读取到期日期/时间在他们之上。这样您就可以将过期时间/日期存储在用户记录中,但当然锁定完全依赖于此外部任务的运行。

或者您可以编写自己的叠加层。

关于ldap - 如何在openldap中设置帐户到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5564988/

相关文章:

go - 如何使用golang查询检索LDAP条目的所有属性?

php - Laradock:如何启用/安装 php7 ldap 支持扩展?

linux - OpenLDAP 访问控制问题

java - 在 Spring Boot 中使用 LDAP 进行身份验证时出错原因 : [LDAP: error code 50 - Insufficient Access Rights]

ldapsearch 错误代码 32 和 49

c# - 性能问题 - 从 .net 中的大型 Active Directory 组添加/删除用户

.net - "Name"(System.DirectoryServices.AccountManagement) 中的 "IdentityType"是什么

ldap - 使用带重音字符的 ldapsearch

Openldap 意外关闭

java - LDAP异常 : Invalid Credentials (49) Invalid Credentials with grails