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

LDAP是否在绑定后提供令牌,因此我不';您不必每次都发送凭据吗?,ldap,Ldap,我有一个web应用程序(PHP,但无所谓)。它使用LDAP进行身份验证(已经工作),并允许用户搜索LDAP(已经工作) 但在搜索时,我使用一个通用进程帐户绑定(),然后运行搜索() 我希望使用登录的LDAP帐户作为绑定搜索的同一帐户。但我看到的唯一方法是在会话中存储用户的凭据(糟糕!) 简而言之:我是否可以从LDAP获取一个“state/session/??”令牌,以绑定()并在后续http请求上搜索() (顺便说一句,使用Active Directory。)基本LDAP不提供类似的功能。绑定时

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

但在搜索时,我使用一个通用进程帐户绑定(),然后运行搜索()

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

简而言之:我是否可以从LDAP获取一个“state/session/??”令牌,以绑定()并在后续http请求上搜索()


(顺便说一句,使用Active Directory。)

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

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


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

已验证的标识不用于“连接的其余部分”,已验证的标识将在连接上使用,直到连接上的下一个绑定(假设使用了LDAPv3)。