【发布时间】:2011-11-28 00:35:29
【问题描述】:
假设一个应用程序可以配置为使用 LDAP 服务器 - 无论是 ActiveDirectory 还是 OpenLDAP 等 - 来验证其用户并检索有关他们的一些附加信息以进行授权。应用程序绑定到 LDAP 服务器的方式也是可配置的 - 它可以使用简单绑定或 SASL 绑定,具体取决于 LDAP 服务器支持的内容和整体安全要求。
假设如果绑定成功使用用户提供的任何凭据,则它必须意味着这些凭据是有效的。但是,情况并非总是如此。即使在实际上预期非空密码的情况下提供了空密码,也可能发生简单绑定成功的情况。根据RFC about LDAP authentication methods,使用非空用户名和空密码的简单绑定被解释为意图建立未经身份验证的连接,并具有匿名授权。可以将服务器配置为使用 unwillingToPerform 使此类尝试失败,但它也可以允许它们。
问题是:在这种情况下,可以将应用程序配置为使用各种 LDAP 服务器,并以可配置的方式(简单或通过 SASL)进行绑定——有没有办法明确检查用户输入的凭据考虑到一个简单的绑定可能导致误报,而不是尝试与这些凭据绑定,而不是针对该特定 LDAP 服务器?
谢谢您,期待您的回复。
【问题讨论】:
标签: ldap