0

使用 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。

关于这个问题有什么建议或想法吗?谢谢

4

1 回答 1

0

答案很简单,这是我在这里使用的 AD 用户的权限问题,如错误消息所述,访问权限不足,因此与此处的编码无关。

于 2020-06-26T12:17:32.963 回答