如何将露天用户与 AD 同步

Posted

技术标签:

【中文标题】如何将露天用户与 AD 同步【英文标题】:How to sync alfresco users with AD 【发布时间】:2021-05-21 11:39:25 【问题描述】:

如何将 alfresco 用户与活动目录同步。当我在 AD 中创建用户时,一切正常,我可以登录 alfresco 共享,但 alfresco 用户不与 AD 同步(已经存在的那个)。我必须在 AD 中手动导入它们吗? 我已经尝试过设置完全同步,但没有帮助

这是我的财产

#AD settings
authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap-ad1:ldap-ad
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://192.168.1.20:389
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.defaultAdministratorUserNames=Alf
ldap.authentication.java.naming.read.timeout=5000

ldap.synchronization.active=true
ldap.synchronization.java.naming.security.authentication=simple
ldap.synchronization.java.naming.security.principal=lpа\\ixis_dc
ldap.synchronization.java.naming.security.credentials=wlY9lXgliQDPJp8XbtZ1
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.attributeBatchSize=1000
ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(whenChanged<\=0)))

#user AD
ldap.synchronization.userSearchBase=DC\=main,DC\=lpa
ldap.synchronization.personQuery=(&(objectClass\=user)(memberOf\=CN\=Пользователи СЭД,OU\=Users,OU\=ЛПИ,DC\=main,DC\=lpi)(!(cn\=Guest))(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(memberOf\=CN\=Пользователи СЭД,OU\=Users,OU\=ЛПА,DC\=main,DC\=lpa)(!(cn\=Guest))(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\=0)))
ldap.synchronization.modifyTimestampAttributeName=whenChanged
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=cn
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProviderr
ldap.synchronization.groupDisplayNameAttributeName=displayName
ldap.synchronization.personType=user
ldap.synchronization.userAccountStatusProperty=userAccountControl

#group AD
ldap.synchronization.groupSearchBase=CN\=Пользователи СЭД,OU\=Users,OU\=ЛПА,DC\=main,DC\=lpa
ldap.synchronization.groupType=group
ldap.synchronization.groupMemberAttributeName=member
ldap.synchronization.groupIdAttributeName=cn
#sync
synchronization.synchronizeChangesOnly=false
synchronization.allowDeletions=false
synchronization.syncWhenMissingPeopleLogIn=true
synchronization.syncOnStartup=true
synchronization.import.cron=0 0 0 ? * *
#synchronization.import.cron=0 */30 * * * ?
ldap.synchronization.enableProgressEstimation=true

编辑: 你误解了我,我想做的是从 alfresco 用户创建一个 AD 用户。例如,我在 alfresco 中有一个用户,我想将此用户同步到 AD,以便 AD 中有一个 alfresco 用户的同步版本。我的英语真的很差,所以我将提供一个非常简单的例子:

Before sync:
    alfresco users:
       john121 
       bob121
    AD users:
       Helen5
       Maria1
After sync:
    alfresco users:
       john121 
       bob121
       Helen5
       Maria1
    AD users:
       john121 
       bob121
       Helen5
       Maria1

有没有办法双向同步?如果没有,我该怎么做才能解决这个问题?提前致谢。

【问题讨论】:

完全同步是否成功完成?请参阅alfresco.log。是否有关于同步(错误等)的信息? 如果这些信息还不够,启用调试以进行详细日志记录是有意义的。 【参考方案1】:

不支持将创建的本地 Alfresco 用户同步到 AD 服务器的方式。 使用上述设置,您可以从 AD 服务器同步 Alfresco 中的用户,但不能相反。

关于这个案例。 AD 是一个集中的管理、授权系统和用于存储对象(如用户、组、OU(LDAP 服务器))的单一位置。因此,好的做法是在一个地方创建、管理对象并能够通过 LDAP 请求数据(如 Alfresco API)。否则,您可能会感到困惑、同步冲突和安全漏洞。在您的情况下,Alfresco 管理员可以在域中创建用户,这不应该。

【讨论】:

【参考方案2】:

这些是在户外同步 LDAP 用户的不同方式。

对于 Alfresco 社区版:

    基本方式,通过配置属性:默认情况下,差分同步在同步子系统启动时(在 Alfresco 启动时)以及通过相应的 cronjob 完成:

synchronzation.syncOnStartup=true

synchronization.import.cron=0 0 0 * * ?

http://docs.alfresco.com/5.0/concepts/sync-props.html

    通过 OOTB 支持工具:转到 OOTB 支持工具 > 计划的作业并执行 ldapPeopleJobDetail 作业

https://github.com/OrderOfTheBee/ootbee-support-tools/wiki/Scheduled-Jobs

    通过 javascript 控制台:这是 Javascript 控制台的一个很好的提示。例如,您可以运行用于触发石英作业(ldapPeopleJobDetail 作业)或执行用户同步器的代码。

https://gist.github.com/AFaust/beaa309837397abf961f#file-triggerusersynchintxn-js

关注link,了解 LDAP 集成的最佳实践。

【讨论】:

以上是关于如何将露天用户与 AD 同步的主要内容,如果未能解决你的问题,请参考以下文章

gitlab同步AD中的组

如何部署ad-hoc分发(ipa文件)或如何将iTunes与设备同步

TFS 与活动目录AD(Active Directory)的同步机制

Azure AD 同步后相关属性不生效

Azure SQL - 如何将 AD 用户添加到 SQL 池数据库

Azure AD Connect 手动同步