Adlap2 - 更新 "Batch Modify: Insufficient access"
Adlap2 - update "Batch Modify: Insufficient access"
使用 Adldap2 包 (https://adldap2.github.io/Adldap2/#/) and to be more accurate laravel version (https://github.com/Adldap2/Adldap2-Laravel) 并且在创建后 add/update 某些属性存在一些问题。
更具体一点,我会尝试这样做
创建用户
$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(): Batch Modify: Insufficient access
at 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,这导致了错误。
关于这个问题有什么建议或想法吗?
谢谢
答案很简单,就是我这里用的AD用户的权限问题,如报错信息所述,访问权限不足,所以与编码无关。
使用 Adldap2 包 (https://adldap2.github.io/Adldap2/#/) and to be more accurate laravel version (https://github.com/Adldap2/Adldap2-Laravel) 并且在创建后 add/update 某些属性存在一些问题。
更具体一点,我会尝试这样做
创建用户
$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(): Batch Modify: Insufficient access at 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,这导致了错误。
关于这个问题有什么建议或想法吗? 谢谢
答案很简单,就是我这里用的AD用户的权限问题,如报错信息所述,访问权限不足,所以与编码无关。