Answered: After using QA-LDAP-Plugin, I get a redirect loop after logging in. How do I fix?

Post date: 2022-01-25 19:44:26
Views: 144

The other answer didn't work for me.  my problem was apparently different.
My company stores its LDAP dn as:

CN=Last, First,OU=Users,OU=Boston,DC=mycompany,DC=com

I want people to login with their unix login accounts, but that won't work because the unix login does not appear in the LDAP search string (where USERNAME would be replaced)

However you don't need the dn to bind.  You can ldap_bind with "mylogin@mycompany.com"  However in order to ldap_search, you need the real dn.

So here's my solution:

  1. Select Generic LDAP server
  2. Set the Generic LDAP search string to "USERNAME@mycompany.com" which will get us past the ldap_bind
  3. add some code to the bindToLDAP function in qa-plugin/qa-ldap-login/GenericLDAPServer.php that will find the dn from the samaccoutnname whic is needed for the ldap_search
  public function bindToLDAP($user,$pass) {
    $ldap_search_strings = explode('/', qa_opt('ldap_login_generic_search'));

    foreach ($ldap_search_strings as &$search_post) {
      // check whether the search string contains USERNAME
      if ( strpos($search_post, 'USERNAME') !== false ) {
        $this->dn = str_replace("USERNAME", $user, $search_post);
        // Check if it authenticates
        error_reporting(E_ALL^ E_WARNING);
        $bind = ldap_bind($this->con,$this->dn, $pass);
        error_reporting(E_ALL);

        //we have to preserve the username entered if auth was succesfull
        if($bind) {
          // get the real dn
          $filter = "(samaccountname=$user)";
          $dn = 'DC=mycompany,DC=com';
          $res = ldap_search($this->con, $dn, $filter, array());
          $first = ldap_first_entry($this->con, $res);
          $this->dn = ldap_get_dn($this->con, $first);
          // end get real dn
          $this->authenticatedUser = $user;
          return $bind;
        }
      }
    }
    return false;
  }
Please click Here to read the full story.
 
Other Top and Latest Questions:
Iran war threatens $11.7 trillion global travel industry as passengers get caught in crossfire
How China is challenging the U.S. to become the next great space power
Google joins Microsoft in telling users Anthropic is still available outside defense projects
Looking for custom muscian's earplugs in Toronto
How many points are required to edit the user profile?
Top Chef: Carolina Roots
Book: Tress of the Emerald Sea
Will Iran war fallout end the bull market? When investors really need to worry
Goldman likes these five stocks as market fears intensify
'E-shaped' economy is replacing a K-shaped one in 2026, economist says: The middle class is 'spending in a nervous way' now