我有一个正在运行的 Alfresco Community 4.2.e,并与功能级别为 2008 的 Active Directory 同步。我从 Active Directory 导入用户和组。
来自 ldap-ad-authentication.properties:
# The attribute on LDAP group objects to map to the authority name property in Alfresco
ldap.synchronization.groupIdAttributeName=cn
由于我所在组织的政治原因,我需要在不丢失任何功能的情况下重命名组的名称。如果我将 alfresco 中的 groupIDAttribute 映射到 Active Directory 中的“cn”属性,并且有人更改了组的名称,则结果是该组的所有关联都被删除,并且人们离开了他们的站点。
我的问题:Active Directory 中是否有任何属性可以用作 Alfresco 中组的唯一标识符?显然,此 ID 必须“重命名一致”,因为组位于我的 Active Directory 环境中。
答案1
不幸的是,Alfresco 的存储库不支持更改用户和组(权限)的名称。您可以使用 Alfresco API 更改显示名称,但这不是您想要的。默认情况下,AD 中组的名称更改将导致删除并重新创建,并产生所有后果(对这些组的任何授权都将被删除)。
理论上,您预期的行为可以仅通过向 Alfresco 中的 authorityContainer 添加唯一 ID 属性(例如来自 AD 的 SID)来扩展组。此外,同步逻辑需要扩展为基于唯一 ID 而不是组 CN 同步 authorityContainer(并更新 authorityName 和 authorityDisplayName)。
对于在 AD 中重命名用户,此方法不起作用,因为用户名在 alfresco 内部用作外键 (!)。我们为 Alfresco >= 4.2(.f) 实现了一个模块,以支持 AD 中的用户名更改,方法是使用备用 AD 属性作为 alfresco 用户名,该属性永远不会更改(例如 employeeID)。我们在所有身份验证用例中注入了动态查找,以支持透明登录通过 AD 用户名或者alfresco-internal 用户名(和 SSO)。
我们可以使用上面描述的组逻辑来扩展该模块。