Active directory 当LDAP不支持唯一标识符时,如何同步LDAP用户和组?

Active directory 当LDAP不支持唯一标识符时,如何同步LDAP用户和组?,active-directory,ldap,Active Directory,Ldap,我将对LDAP用户和组的引用导入到数据库中。 因此,我需要定期同步这些用户和组 当LDAP支持唯一标识符(UID)时,我很清楚如何同步这些对象。 例如,Active Directory支持objectGUID属性 在这种情况下,当用户(或组)被移动到LDAP树中的其他位置,因此其DN被更改时,我仍然可以使用UID找到它并更新用户 当LDAP不支持UID且DN已更改时,该怎么办 如果使用旧DN查找,则找不到用户(或组),需要删除该用户 但是,当用户移动到LDAP树中的其他位置(其DN已更改)和从L

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

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

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

当LDAP不支持UID且DN已更改时,该怎么办

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

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

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

我不知道怎么做

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


LDAP组应该使用什么?

LDAP在几种模式中支持
uid
。您还没有告诉我们您使用的是哪一个,或者您为用户使用的是什么对象类。我使用
inetOrgPerson
,它支持
uid,
,我使用它将LDAP用户绑定到数据库用户。

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


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

通常,只有当我确定存在绝对唯一的属性(可能是帐户或电子邮件)时,我才会更新引用访问权方面没有任何变化。但删除用户和允许新用户与移动用户有何不同?如果一个真正的新LDAP用户出现在您的家门口,您迁移的哪些内容不会被重新创建?例如,如果有人移动了部门,可能值得将其视为删除和新用户,而不是冒着继续访问被重新分配的资源的风险。。这真的取决于你的数据库是什么。@lossleader,1)如果有绝对唯一的属性,我没有问题。因此,我问我是否可以使用用户名。我需要确认它可以适用于所有LDAP。2) 如果有人移动部门(其DN已更改),则不应是新用户。它应该是具有相同个人设置的同一用户。绝对肯定它不应该被授权使用旧资源。用户属于新的LDAP组,因此(在组同步之后)他有权查看新资源。我需要帮助:如果组的UID不受支持,我如何同步组。我创建了应用于所有LDAP的基础结构。在我们的实验室中,我们安装了Oracle,默认情况下它不支持
uid
。此外,我们还有eDirectory LDAP,它也不支持
uid
。我们可以在实验室中更改模式,但不能为所有客户更改模式(他们也不允许这样做)。当支持
uid
时,我很清楚该怎么做。当不支持
uid
时,我不清楚该怎么办。这意味着我可以使用用户名(登录名)进行用户同步。LDAP组同步应该使用什么?最好说您可以使用FQDN,而不仅仅是登录,因为多个域的登录可能是相同的。至于组,我认为没有可靠的方法来跟踪组重命名\删除,这对任何LDAP实现都是有效的。可能,最安全的方法是在同步期间向数据库中显式添加组成员,然后考虑组DN中的任何更改作为组移除。在这种情况下,组中的所有组成员都将保留在数据库中,并且仍然具有访问权限,以防基于其他组中的成员身份,他们仍然应该具有访问权限。