首页 > 解决方案 > 如何使用 PHP 在 AD 安全组中搜索成员

问题描述

我目前正在使用 PHP 开发一个布告栏应用程序。我现在只想让员工添加到它,所以我需要找出当前用户是什么安全组(在 AD 中),例如员工有自己的组,学生也有。我想使用基于 Windows 的身份验证来获取他们的用户名并在 AD 组中查询。我已经尝试了所有我找到的答案,但没有任何帮助。

到目前为止,我有以下代码:

<?php
//Declare Vars
$domain = 'doamin.local';
$username = 'admin';
$password = "";
$ldapconfig['host'] = 'hostname';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=domain,dc=local';
$dn = 'dc=domain,dc=local';
//Connect to AD
$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
    if ($bind) {
        echo "LDAP bind successful...";
        //Query for group membership
              $search = ldap_search($ds, $dn, "(samaccountname=w10student)", ['memberOf']);
              $enr = ldap_get_entries($ds, $search);

    } else {
        echo "LDAP bind failed...";
    }

      print_r($enr);

?>

它现在将所有组打印到一个数组中,我需要一个 if 语句来判断数组是否包含其中一个组,然后设置一个变量 任何帮助表示赞赏

非常感谢,

康纳

标签: phpldap

解决方案


推荐阅读