我想检查用户是否已通过我的 Windows 域的身份验证。为此,我想使用 LDAP 查询。我了解到有一个组“经过身份验证的用户”(S-1-5-11) 可能可以解决问题。但如何将其包含在 LDAP 查询中?(memberOf=经过身份验证的用户) 不起作用。
谢谢,亚历山大
答案1
LDAP 无法以您需要的方式跟踪此情况。它可以知道用户何时进行身份验证(签入您假设的组),但不知道他们何时取消身份验证……它不知道何时将用户从组中删除。
现在您将问题标记为“Windows”,因此我要补充一点,Active Directory LDAP 实现可以专门告诉您这一点。但是,您必须查询 DC 的事件日志而不是 LDAP,您将被限制于某些类型的登录。例如,您可以知道用户何时登录和退出加入域的 Windows 计算机,但不知道他们何时使用与 Active Directory 绑定的身份验证方法退出网站,因为该会话信息仅在 Web 服务器上维护。您还需要一些相当复杂的代码来配对登录/注销。
答案2
无法通过 LDAP 查询,因为“已验证”状态未反映到 LDAP 中。“已验证用户”组比较特殊,是一种包含所有当前已验证主体的“虚拟组”,但它不是 LDAP 组。
除此之外,该组还包含当前登录到客户端系统的本地非域用户。
您应该更新您的问题或提出一个新问题,例如“如何获取登录到域的用户列表”(并首先使用搜索功能和 Google!)。
答案3
您可能想要尝试的是查看该帐户可能已进行身份验证的域控制器,以查看该帐户是否确实最近已进行身份验证。