【问题标题】:Test an application using LDAP使用 LDAP 测试应用程序
【发布时间】:2011-12-04 04:43:04
【问题描述】:

我正处于测试将使用 LDAP 进行用户身份验证的应用程序的准备阶段。对于这项工作,您可能有哪些提示或建议?

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

【问题讨论】:

  • 除了其他答案之外,不要忘记检查来自服务器的响应中的响应控件。

标签: testing ldap


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 我还要补充一点,并非所有 LDAP 服务器的行为方式都相同。例如,Active DIrectory 的处理方式与“普通”LDAP 服务器不同。
    【解决方案3】:

    您需要 ldap_connect 和 ldap_bind 函数。此外,一旦您与 ldap 服务器绑定,您就可以在 ldap 上搜索条目并获取用户信息。

    【讨论】:

      【解决方案4】:

      您一定要检查编码是否被正确处理(尝试变音符号或密码中的其他奇怪的东西)。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-12
        • 2012-02-10
        • 2013-04-11
        • 2015-10-09
        • 2016-08-03
        • 2015-12-10
        • 2020-02-28
        • 2020-03-31
        相关资源
        最近更新 更多