如何将 alfresco 用户与 AD 同步

How to sync alfresco users with AD

如何将 alfresco 用户与 active-directory 同步。当我在 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

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

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

对于 Alfresco 社区版:

  1. 基本方法,通过配置属性:默认情况下,差异同步在同步子系统启动时(在 Alfresco 启动时)完成,也通过相应的 cronjob 完成:

synchronzation.syncOnStartup=真

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

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

  1. 通过 OOTB 支持工具:转到 OOTB 支持工具 > 预定作业并执行 ldapPeopleJobDetail 作业

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

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

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

遵循 link LDAP 集成的最佳实践。

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

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