20.8. 检查无密码访问的帐户可用性
大多数时候,目录服务器返回有关用户帐户的身份验证信息,客户端实际上会绑定(或尝试绑定)。和绑定尝试需要某种类型的用户凭证,通常是密码或证书。虽然 Directory 服务器允许未经身份验证的绑定和匿名绑定,但这些绑定都不返回任何用户帐户信息。
在某些情况下,客户端需要有关用户帐户的信息 - 特别是是否应该允许帐户进行身份验证,以便执行其他操作,但客户端没有或者对目录服务器使用任何凭证。基本上,客户端需要执行无凭证的身份验证的绑定操作,以检索用户帐户信息(包括密码过期信息(如果帐户有密码)。
这可以通过传递 帐户 Usability Extension Control 来通过 ldapsearch 完成。此控件充当为给定用户执行经过身份验证的绑定操作,并返回该用户的帐户状态 - 但不实际绑定到服务器。这允许客户端确定该帐户是否可以用于登录,然后将该帐户信息传递给另一个应用程序,如 PAM。
例如,使用帐户 Usability Extension Control 允许系统使用 Directory 服务器作为其身份后端来存储用户数据,但使用无密码验证方法,如智能卡或 SSH 密钥,在目录服务器外执行身份验证操作。
20.8.1. 使用帐户 Usability 扩展控制搜索条目 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
帐户 Usability 扩展控制是 ldapsearch 的扩展。它为每个返回的条目返回一个额外行,给出帐户状态以及有关该帐户密码策略的一些信息。然后,客户端或应用程序可以使用该状态来评估该用户帐户外的身份验证尝试。基本上,这控制信号用户是否被允许进行身份验证,而无需执行身份验证操作。
注意
Directory 服务器使用的 OpenLDAP 工具不支持帐户 Usability 扩展控制。可以使用 OpenDS 等其他 LDAP 实用程序,或者支持控制的其他客户端。
例如,通过使用 OpenDS 工具,可以使用带控制 OID (1.3.6.1.4.1.42.2.27.9.5.8)的
-J
指定控制,或使用 accountusability:true
标志来指定控制:
这也可以为特定条目运行:
ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com -b "uid=bjensen,ou=people,dc=example,dc=com" -s base -J "accountusability:true" "(objectclass=*)" Account Usability Response Control The account is usable
# ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com -b "uid=bjensen,ou=people,dc=example,dc=com" -s base -J "accountusability:true" "(objectclass=*)"
# Account Usability Response Control
# The account is usable
dn: uid=bjensen,ou=people,dc=example,dc=com
...
注意
默认情况下,只有目录管理器可以使用帐户 Usability Extension Control。要允许其他用户使用帐户 Usability Extension Control,请在 cn=features 下支持的控制条目上设置 ACI。请参阅 第 20.8.2 节 “更改用户可以执行帐户的搜索功能”。
控制返回不同的消息,具体取决于帐户的实际状态,以及(如果用户有密码)用户帐户的密码策略设置。
帐户状态 | 控制结果消息 |
---|---|
具有有效密码的活动帐户 | 帐户可用 |
没有设置密码的活动帐户 | 帐户可用 |
过期的密码 | 密码已过期 |
修改帐户的密码策略 | 密码已过期 |
帐户已锁定,且没有锁定持续时间 | 密码重置 |
帐户已锁定,并有一个锁定持续时间 | 自动解锁账户的时间(以秒为单位) |
在第一次登录时应重置帐户的密码 | 密码重置 |
密码已过期,允许宽限期 | 允许密码过期并允许 X 宽限期 |
密码已过期,安全登录的数量已耗尽 | 密码过期 |
密码将过期(过期警告) | 密码将在 X 秒数后过期 |
20.8.2. 更改用户可以执行帐户的搜索功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
默认情况下,只有目录管理器可以使用 Account Usability Extension Control。其他用户可以通过在支持的控制条目上设置适当的 ACI 来使用 Account Usability Extension Control。控制条目为帐户 Usability Extension Control OID, 1.3.6.1.4.1.42.2.27.9.5.8 命名。
例如,要启用 cn=Administrators,ou=groups,dc=example,dc=com 组的成员读取所有用户的帐户 Usability Extension 控制: