PHP LDAP-通过AD组保护对象

PHP LDAP-通过AD组保护对象,php,security,ldap,Php,Security,Ldap,对PHP和LDAP非常陌生,我试图以最简单的形式做的是;我们有一个下拉框,里面有我们所有的不同设施。我们只允许最终用户查看某些设施,具体取决于他们所属的Active directory组 因此,如果doe,John,在“休斯顿办公室”组中,他只会在下拉列表中看到休斯顿设施 如果有人能帮忙,那将是巨大的 谢谢 Tim 到目前为止,我只能连接到LDAP服务器并提取组信息。就像我说的,我对PHP和LDAP都非常陌生。这是一个较大项目的一小部分,我不确定是否有人知道任何类似的案例或代码,我可以修改。你

对PHP和LDAP非常陌生,我试图以最简单的形式做的是;我们有一个下拉框,里面有我们所有的不同设施。我们只允许最终用户查看某些设施,具体取决于他们所属的Active directory组

因此,如果doe,John,在“休斯顿办公室”组中,他只会在下拉列表中看到休斯顿设施

如果有人能帮忙,那将是巨大的

谢谢

Tim




到目前为止,我只能连接到LDAP服务器并提取组信息。就像我说的,我对PHP和LDAP都非常陌生。这是一个较大项目的一小部分,我不确定是否有人知道任何类似的案例或代码,我可以修改。你说的“组信息”是什么意思?您是否有现有组和每个组的人员列表?对于下拉列表,您可以尝试使用以下内容。如果可以的话,请张贴你的代码,并提示你在哪里被卡住了。那个么我们可以更好地帮助你们。我已经创建了广告组,在这些组中有合适的用户。下面的代码看起来像是提取了所有OU信息。到目前为止,我只能连接到LDAP服务器并提取组信息。就像我说的,我对PHP和LDAP都非常陌生。这是一个较大项目的一小部分,我不确定是否有人知道任何类似的案例或代码,我可以修改。你说的“组信息”是什么意思?您是否有现有组和每个组的人员列表?对于下拉列表,您可以尝试使用以下内容。如果可以的话,请张贴你的代码,并提示你在哪里被卡住了。那个么我们可以更好地帮助你们。我已经创建了广告组,在这些组中有合适的用户。下面的代码看起来只是提取了所有OU信息
    <?php
set_time_limit(30);
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);

// config
$ldapserver = 'LDAP.Server';
$ldapuser      = 'username'; 
$ldappass     = 'password';
$ldaptree    = "DC=company,DC=com";

// connect
$ldapconn = ldap_connect($ldapserver) or die("Could not connect to LDAP server.");

if($ldapconn) {
    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...<br /><br />";


        $result = ldap_search($ldapconn,$ldaptree, "(cn=*)") or die ("Error in search query: ".ldap_error($ldapconn));
        $data = ldap_get_entries($ldapconn, $result);

        // SHOW ALL DATA
        echo '<h1>Dump all data</h1><pre>';
        print_r($data);   
        echo '</pre>';


        // iterate over array and print data for each entry
        echo '<h1>Show me the users</h1>';
        for ($i=0; $i<$data["count"]; $i++) {
            //echo "dn is: ". $data[$i]["dn"] ."<br />";
            echo "User: ". $data[$i]["cn"][0] ."<br />";
            if(isset($data[$i]["mail"][0])) {
                echo "Email: ". $data[$i]["mail"][0] ."<br /><br />";
            } else {
                echo "Email: None<br /><br />";
            }
        }
        // print number of entries found
        echo "Number of entries found: " . ldap_count_entries($ldapconn, $result);
    } else {
        echo "LDAP bind failed...";
    }

}

// all done? clean up
ldap_close($ldapconn);
?>