使用 Adldap2 包 ( https://adldap2.github.io/Adldap2/#/ ) 和更准确的 laravel 版本 ( https://github.com/Adldap2/Adldap2-Laravel ) 并且添加/更新一些问题创建后的属性。
更具体地说,我会尝试这样做
创建用户
$user = Adldap::make()->user([
'cn' => 'Vlad Test7',
'samaccountname' => 'vlad_test7',
'Company' => 'Company Name',
'givenname' => 'Vlad',
]);
$user->objectclass = [
'top',
'person',
'inetOrgPerson',
];
$user->save();
这将起作用。但是之后如果我尝试设置另一个属性,如部门,如下所示
$user->setAttribute('Department', 'Information Systems');
$user->save();
我会收到此错误消息
ErrorException:ldap_modify_batch():批量修改:PATH_TO_PROJECT_ROOT\vendor\adldap2\adldap2\src\Connections\Ldap.php:386 的访问权限不足
我向系统管理员询问了提供的帐户权限,他告诉我我在 OU 中对测试用户具有完全访问权限,他们是为我创建的。
我想,这可能是我的配置文件有问题,正如管理员告诉我的那样。
这里配置文件(ldap.php)的样子
'hosts' => explode(' ', env('LDAP_HOSTS', 'corp-dc1.corp.acme.org corp-dc2.corp.acme.org')),
'port' => env('LDAP_PORT', 389),
'timeout' => env('LDAP_TIMEOUT', 5),
'base_dn' => env('LDAP_BASE_DN', 'dc=corp,dc=acme,dc=org'),
'username' => env('LDAP_USERNAME', 'username'),
'password' => env('LDAP_PASSWORD', 'secret'),
根据我的搜索结果,更新时可能出现的错误消息可能与 dn(专有名称)有关,因为我有类似 base_dn 的内容
base_dn=OU=TEST USER,OU=xxxxxx1,OU=xxxxxx2,OU=xxxxxx3,OU=xxxxxx3,DC=domain,DC=local
当我创建用户时,对于新创建的用户,我得到新生成的 dn,如下所示
dn=CN=Vlad Test7,OU=TEST USER,OU=xxxxxx1,OU=xxxxxx2,OU=xxxxxx3,OU=xxxxxx3,DC=domain,DC=local
不确定,这是否正确?还考虑到可能性,即我无法使用生成的专有名称执行操作,当我创建新记录时,至少印象是我已添加CN=Vlad Test7
到导致错误的 base_dn。
关于这个问题有什么建议或想法吗?谢谢