以原子方式更新LDAP组和属性

以原子方式更新LDAP组和属性,ldap,Ldap,是否可以更新用户的组和用户的原子属性?我基本上需要作为一个事务更新用户的组和属性。在LDAP中可能吗 谢谢 Godwin这取决于您的目录服务器,但通常不会。您正在修改两个不同的目录对象—组对象的“成员”列表和用户对象的某些其他属性。这两个更改不能合并到单个修改操作中 如果目录服务器具有更新用户的“组成员”属性以填充组上的组成员列表的机制,则可以在用户对象上实现一组相关更改(即,将attr1值设置为“test1”,将attr2值设置为“test2”,并将memberOf设置为“cn=mygroup

是否可以更新用户的组和用户的原子属性?我基本上需要作为一个事务更新用户的组和属性。在LDAP中可能吗

谢谢
Godwin

这取决于您的目录服务器,但通常不会。您正在修改两个不同的目录对象—组对象的“成员”列表和用户对象的某些其他属性。这两个更改不能合并到单个修改操作中

如果目录服务器具有更新用户的“组成员”属性以填充组上的组成员列表的机制,则可以在用户对象上实现一组相关更改(即,将attr1值设置为“test1”,将attr2值设置为“test2”,并将memberOf设置为“cn=mygroup,ou=groups,o=example”)。Active Directory不允许写入memberOf,但可能存在一些LDAP目录


没有一个事务,但是您已经可以在代码中模拟“change X&&Y”依赖关系。更新组成员资格,检查返回代码。成功更新下一个组成员并检查返回代码。循环浏览所有正在更新的组成员身份,如下所示。失败时,中断并回滚已应用的组成员资格更改。更新下一组值;检查返回代码等,直到您更新了所有必需的组成员资格。然后更新用户的属性;检查返回值。成功后,继续前进。失败时,回滚组成员资格更改

谢谢你的回复。我的要求是作为事务更新成员资格和属性。例如,我想将用户组更新为ADMIN,并将属性更新为事务,一旦ADMIN成员更新并在更新属性时失败,则需要回滚整个事务。这看起来是不可能的,因为它们是不同的目录对象。