php - 如何使用 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 语句来判断数组是否包含其中一个组,然后设置一个变量 任何帮助表示赞赏
非常感谢,
康纳
解决方案
推荐阅读
- django - Django - 从模型本身渲染对象图像或使用不同的模型
- javascript - 有没有办法设置一个背景来忽略这个整页纯 JavaScript 网站中的分页符?
- docker - Docker 等到服务完全准备好
- android - 使用 Kotlin DSL 构建 Android - 如何访问风味额外属性?
- python - 获得两个全文文档之间的相似性度量的方法?
- android - Android Studio 中的 ConstraintLayout - 标题栏重叠,但标题栏未出现在设计视图或 XML 中
- windows - WFP 驱动程序将 0.0.0.0 作为连接的本地 IP 地址
- vba - 计算表单上未绑定文本框中的类似记录数。在 MS Access 2016 中
- php - PHP - 标头/配置“允许来源”不起作用
- blockchain - 什么时候在corda中查看交易提案的内容?