Testing 使用LDAP测试应用程序

Testing 使用LDAP测试应用程序,testing,ldap,Testing,Ldap,我正处于测试将使用LDAP进行用户身份验证的应用程序的准备阶段。对于这项工作,你有什么建议 我对LDAP的理解不是很透彻,但我相信将使用的只是应用程序客户端使用用户名调用LDAP,并查看密码是否匹配。这是准确的描述吗?另外,需要测试哪些边缘情况?谢谢。这很大程度上取决于您的技术 如果您直接查询ldap,您必须关心性能,例如,您的查询速度有多快,您必须多久查询一次,以及您的服务器大小是否合适 如果您使用的是某种提供SSO的容器,那么这些容器通常会有一些缓存功能,等等。。在这里,您必须检查是否一切正

我正处于测试将使用LDAP进行用户身份验证的应用程序的准备阶段。对于这项工作,你有什么建议


我对LDAP的理解不是很透彻,但我相信将使用的只是应用程序客户端使用用户名调用LDAP,并查看密码是否匹配。这是准确的描述吗?另外,需要测试哪些边缘情况?谢谢。

这很大程度上取决于您的技术

如果您直接查询ldap,您必须关心性能,例如,您的查询速度有多快,您必须多久查询一次,以及您的服务器大小是否合适


如果您使用的是某种提供SSO的容器,那么这些容器通常会有一些缓存功能,等等。。在这里,您必须检查是否一切正常。

您需要ldap\u connect和ldap\u bind功能。此外,一旦您与ldap服务器绑定,您就可以在ldap上搜索条目并获取用户信息。

ldap身份验证通常(但不总是)分为两步:首先应用程序执行ldap查询,以定位用户尝试进行身份验证的帐户的“可分辨名称”(dn),然后尝试登录(“绑定”,在LDAP术语中)作为该dn,使用用户提供的密码

如果“绑定”尝试有效,则应用程序知道密码是正确的。(出于明显的安全原因,LDAP服务器可能未配置为允许应用程序实际提取密码并自行进行比较)

启用LDAP的应用程序通常需要一种方式来配置:

  • LDAP服务器的主机名/端口
  • 搜索库(例如,dc=mycompany,dc=org)
  • 用户搜索筛选器(例如“(|(cn=%userid)(mail=%userid))”)
  • 初始LDAP查询的应用程序凭据(除非服务器允许匿名查询)

您很可能需要支持SSL,因此您不会以明文形式将用户密码发送到LDAP服务器。

您应该检查编码是否正确处理(尝试使用umlauts或密码中的其他奇怪内容)

请注意使用您关心的LDAP服务器、Active Directory、OpenLdap、Apaches LDAP服务器和其他一些服务器进行测试,它们可能会显示不同的行为


此外,还要检查客户端处理“转介”是否正确,例如,当您尝试查找不同域中的用户时(例如,安装了forrest trust的两个AD forrest)。

我还要补充一点,并非所有LDAP服务器的行为方式都相同。例如,Active DIrectory做的事情与“普通”LDAP服务器不同。除了其他答案之外,不要忘记检查服务器响应中的响应控件。