PHP auth über LDAP - Group Problem

Bash, Shell, PHP, Python, Perl, CGI
fulltilt
Posts: 363
Joined: 2006-08-27 02:06

PHP auth über LDAP - Group Problem

Post by fulltilt »

Habe hier ein Login Script was per bind auf einen LDAP Server authentifiziert. Das Problem dabei ist das es immer 1 zurück liefert wenn Passwort und Username stimmen - die Gruppe "main" wird hierbei aber ignoriert und somit haben auch andere Gruppen Zugriff.
Was muss ich hier ändern damit nur noch die Gruppe "main" einloggen darf?

Code: Select all

<?php
      $user = $_POST['user'];
      $pw = $_POST['pw'];
      $ldap_url = '0.0.0.0';
      $ldap_dn = "cn=$user,ou=main,dc=domain,dc=tld";

      $ds = ldap_connect( $ldap_url );
      ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
      ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

      $login = ldap_bind( $ds, $ldap_dn, $pwd ); 
     
 if (isset($user, $pw))
    {
    if ($user == "" OR $pw == "")
        {
        ldap_unbind($ds);
        }
        elseif ($login == 1)
            {
            header ("Location: main.php"); 
            }
    }
?>
User avatar
daemotron
Administrator
Administrator
Posts: 2639
Joined: 2004-01-21 17:44

Re: PHP auth über LDAP - Group Problem

Post by daemotron »

Gruppenzugehörigkeiten (main ist vermutlich nicht wirklich eine Gruppe, also groupOfNames oder groupOfUniqueNames) werden normalerweise mit ldap_search überprüft. Wenn der LDAP-Server das Overlay MemberOf beherrscht (und aktiviert hat), fragt man einfach im Filter-String z. B. sowas ab:

Code: Select all

(&(uid=$user)(memberOf=cn=main,dc=domain,dc=tld"))
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time