代码之家  ›  专栏  ›  技术社区  ›  Lance Rushing

LDAP是否在绑定后提供令牌,因此我不必每次都发送凭据?

  •  5
  • Lance Rushing  · 技术社区  · 15 年前

    我有一个web应用程序(PHP,但无所谓)。它使用LDAP进行身份验证(已经工作),并允许用户搜索LDAP(已经工作)。

    我希望使用登录的LDAP帐户作为绑定搜索的同一帐户。但我看到的唯一方法是在会话中存储用户的凭据(糟糕!)。

    1 回复  |  直到 15 年前
        1
  •  8
  •   Josh Kelley    15 年前

    基本LDAP不提供类似的内容。绑定时提供的凭据将用于连接的其余部分,因此,如果您可以跨多个HTTP请求保持LDAP连接打开(并在运行的多个服务器作业之间共享LDAP连接),则可以避免保存凭据。

    LDAP有各种各样的扩展(包括Active Directory中的一些扩展),因此其中一个可能会跨连接添加会话,但如果是这样,我不知道。

    作为一种解决方法,由于Active Directory支持GSSAPI,并且由于Kerberos的工作方式,您应该能够使用用户的凭据请求访问LDAP的Kerberos票证,然后将该票证存储为“状态/会话/??”令牌。此Kerberos票证仅对访问LDAP有效,并且将自动过期,因此这将避免在会话中存储用户凭据的陷阱。我不知道您的LDAP库是否支持GSSAPI,是否会给您足够的控制权来执行此操作。