我有一个Alfresco安装设置(在Windows上)使用LDAP-AD身份validation模型。 当用户只使用他们的用户名login时,它会正确创build帐户并允许访问。 但是,如果他们通过电子邮件地址login,则会将其login到“已损坏”的帐户中。 他们的东西都不可访问,甚至不显示为真实的帐户。
我可以将电子邮件地址loginredirect到普通用户名login,或完全拒绝电子邮件地址login。
看起来,如果我们不需要添加任何更多的用户,我可以在configuration中执行synchronization.autoCreatePeopleOnLogin = false以防止这些电子邮件部分帐户。 但是,我们的环境中有新用户需要频繁地进行自动添加(这足以使configuration和重置服务每一次都变得真正快速),LDAP-ADconfiguration需要自动创build(手动创build账户选项为灰色出)。
其他想法?
编辑 – 添加configuration,因为它听起来像是我所造成的,而不是缺乏一些东西…
### 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
问题是露天做了一个DN查找,它不search一个对象,然后尝试使用密码login。
在这种情况下,你必须格外小心你的dn在ldap中的样子。
请看截图,看看即使所有其他属性都是相同的dn的标识已经有所作为 ,我只能通过[email protected]login,但其他login不起作用。
属性更改如下
ldap.authentication.userNameFormat=mail=%s,ou=people,dc=organisation,dc=com ldap.synchronization.userIdAttributeName=mail
