LDAP 不支持 Unique Identifier 时如何同步 LDAP 用户和组?

How to synch LDAP users and groups when LDAP does not support Unique Identifier?

我将对 LDAP 用户和组的引用导入到我的数据库中。 因此,我需要定期同步这些用户和组。

当 LDAP 支持唯一标识符 (UID) 时,我很清楚如何同步这些对象。 例如 Active Directory 支持 objectGUID 属性。

在这种情况下,当用户(或组)移动到 LDAP 树中的其他位置并因此更改其 DN 时,我仍然可以使用 UID 找到它并更新用户。

LDAP不支持UID,DN改变了怎么办?

如果我使用旧 DN 查找,我找不到用户(或组)并且需要删除该用户。

但是,当用户移动到 LDAP 树中的其他位置(其 DN 已更改)和用户从 LDAP 中删除时,我如何区分用例?

当它移动时,我应该找到它并更新到新的 DN。 当它被删除时,我需要删除它。

我不知道怎么做。

我可以使用用户名(登录名)进行用户同步吗?

我应该为 LDAP 组使用什么?

LDAP 在多个模式中支持 uid。您还没有告诉我们您正在使用哪个,或者您正在为用户使用什么对象 class。我使用支持 uid,inetOrgPerson,我用它来将 LDAP 用户绑定到数据库用户。

如果您想支持多个 LDAP 服务器,那么明智的选择是使 ID 可配置,即在部署期间要求用户提供唯一属性。如果您的客户使用 LDAP 进行身份验证,这将在 100% 的情况下为您工作,因为即使目录服务器本身也不支持唯一属性,他们必须手动保持至少其中一个唯一,以便连接的系统能够进行身份验证LDAP,因为当身份验证后端中存在重复项时,您不太可能找到能够正常运行的软件。

当然,在部署过程中,您可以建议在某些 LDAP 实现中已知是唯一的默认属性(如 AD 中的 samAccountName),并且在大多数情况下您会找到正确的属性。