
我有一個 Alfresco 安裝設定(在 Windows 上)來使用 LDAP-AD 驗證模型。當使用者僅使用使用者名稱登入時,它會正確建立帳戶並允許存取。但是,如果他們透過電子郵件地址登錄,則會將他們記錄到「損壞的」帳戶中。他們的任何東西都無法訪問,甚至不顯示為真實帳戶。
我可以將電子郵件地址登入重新導向到普通使用者名稱登錄,或完全拒絕電子郵件地址登入。
看來,如果我們不再需要添加更多用戶,我可以synchronization.autoCreatePeopleOnLogin = false
在配置中執行一項操作來阻止這些電子郵件部分帳戶。然而,我們的環境中有新人員需要頻繁自動添加(足以每次調整配置和重置服務很快就會過時),並且 LDAP-AD 配置需要自動創建(手動帳戶創建選項呈灰色)出去)。
還有其他想法嗎?
編輯-添加配置,因為聽起來像是我所做的事情導致了這個而不是缺少某些東西...
### Active Directory Integration ###
authentication.chain=passthru1:passthru,ldap1:ldap-ad
passthru.authentication.sso.enabled=false
passthru.authentication.allowGuestLogin=false
passthru.authentication.authenticateCIFS=false
passthru.authentication.authenticateFTP=false
passthru.authentication.servers=domain.com
passthru.authentication.domain=DOMAIN
passthru.authentication.useLocalServer=false
passthru.authentication.defaultAdministratorUserNames=specialadminaccount
passthru.authentication.connectTimeout=5000
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=TCPIP,NETBIOS
ldap.authentication.active=false
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.userNameFormat=%s
ldap.authentication.allowGuestLogin=false
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://domain.com:389
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal= DOMAIN\\specialadminaccount
ldap.synchronization.java.naming.security.credentials=password
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.groupDifferentialQuery=(&(objectclass=nogroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(&(objectclass=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(& (objectclass=user)(!(modifyTimestamp<\={0})))
ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupSearchBase=cn\=users,dc=domain,dc=com
ldap.synchronization.userSearchBase=cn\=users,dc=domain,dc=com
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss’.0Z’
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=Nogroup
ldap.synchronization.personType=user
ldap.synchronization.groupMemberAttributeName=member
synchronization.synchronizeChangesOnly=false
答案1
問題是 alfresco 進行 dn 查找,但它不會搜尋對象,然後嘗試使用密碼登入。
在這種情況下,您必須格外小心 DN 在 LDAP 中的顯示方式。
請看截圖,儘管所有其他屬性都相同,但 dn 的標識有所不同,我只能透過以下方式登錄[電子郵件受保護]但其他登入不起作用。
屬性變化如下
ldap.authentication.userNameFormat=mail=%s,ou=people,dc=organisation,dc=com
ldap.synchronization.userIdAttributeName=mail