如何避免在Alfresco OpenLDAP身份验证中提供安全凭据

如何避免在Alfresco OpenLDAP身份验证中提供安全凭据,ldap,alfresco,openldap,jboss-eap-6,alfresco-ldap,Ldap,Alfresco,Openldap,Jboss Eap 6,Alfresco Ldap,我们必须使用openLDAP为Alfresco和jBoss web应用程序用户提供身份验证。 OpenLDAP的配置使得现在需要提供任何凭证来读取OpenLDAP目录。 在jBoss配置的情况下,我不使用bindDN和bindCredential标记提供这些凭证,身份验证正在工作。 如果Alfresco不是这种情况,如果我不提供ldap.synchronization.java.naming.security.principal和ldap.synchronization.java.naming.

我们必须使用openLDAP为Alfresco和jBoss web应用程序用户提供身份验证。 OpenLDAP的配置使得现在需要提供任何凭证来读取OpenLDAP目录。 在jBoss配置的情况下,我不使用bindDN和bindCredential标记提供这些凭证,身份验证正在工作。 如果Alfresco不是这种情况,如果我不提供ldap.synchronization.java.naming.security.principal和ldap.synchronization.java.naming.security.credentials,我在日志中有同步错误:

2019-02-15 10:58:04,466 ERROR [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] [localhost-startStop-1] Synchronization aborted due to error
org.alfresco.repo.security.authentication.AuthenticationException: 01150001 Failed to authenticate, username or password is wrong. User name:cn=Manager,dc=company,dc=com Reason [LDAP: error code 49 - Invalid Credentials]
因此,ldapsearch在不提供任何凭据的情况下检索openLDAP目录:

ldapsearch -x -h 10.0.1.15:389 -b "dc=some,dc=ua" 
jBoss standalone-full.xml:

<login-module code="LdapExtended" flag="sufficient">
    <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
    <module-option name="java.naming.provider.url" value="ldap://10.0.1.15:389"/>
    <module-option name="java.naming.security.authentication" value="simple"/>
    <module-option name="baseCtxDN" value="ou=Users,dc=some,c=ua"/>
    <module-option name="baseFilter" value="(uid={0})"/>
    <module-option name="rolesCtxDN" value="ou=Users,dc=some,c=ua"/>
    <module-option name="roleFilter" value="(member={1})"/>
    <module-option name="roleAttributeID" value="cn"/>
    <module-option name="roleAttributeIsDN" value="false"/>
    <module-option name="roleRecursion" value="1"/>
    <module-option name="allowEmptyPasswords" value="false"/>
    <module-option name="throwValidateError" value="true"/>
</login-module>
Alfresco Alfresco-global.properties

authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap
ntlm.authentication.sso.enabled=false
alfresco.authentication.authenticateCIFS=false

ldap.authentication.active=true
ldap.synchronization.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=uid=%s,ou=Users,dc=some,dc=ua
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://10.0.1.15:389
ldap.authentication.java.naming.security.authentication=simple
ldap.synchronization.java.naming.security.authentication=simple
ldap.authentication.defaultAdministratorUserNames=Admin

ldap.synchronization.java.naming.security.principal=uid\=someUser,ou\=users,dc\=some,dc\=ua
ldap.synchronization.java.naming.security.credentials=12356

ldap.synchronization.groupSearchBase=ou\=Users,dc\=some,dc\=ua
ldap.synchronization.userSearchBase=ou\=Users,dc\=some,dc\=ua

ldap.synchronization.groupQuery=(&(objectclass\=posixGroup)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=posixGroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(objectclass\=inetOrgPerson)
ldap.synchronization.personDifferentialQuery=(&(objectclass\=inetOrgPerson)(!(modifyTimestamp<\={0})))

ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z'
ldap.synchronization.userIdAttributeName=uid
ldap.synchronization.userOrganizationalIdAttributeName=o
ldap.synchronization.groupDisplayNameAttributeName=displayName
ldap.synchronization.groupType=posixGroup
ldap.synchronization.personType=inetOrgPerson
ldap.authentication.java.naming.read.timeout=0
ldap.synchronization.userAccountStatusProperty=ds-pwp-account-disabled
ldap.synchronization.disabledAccountPropertyValue=true
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupMemberAttributeName=member
ldap.synchronization.enableProgressEstimation=true
ldap.pooling.com.sun.jndi.ldap.connect.pool.debug=fine
synchronization.autoCreatePeopleOnLogin=true
synchronization.synchronizeChangesOnly=false
synchronization.syncOnStartup=true
synchronization.syncWhenMissingPeopleLogIn=true
synchronization.externalUserControl=true
synchronization.externalUserControlSubsystemName=ldap1
是否可以避免在alfresco-global.properties中提供OpenLDAP凭据? 露天社区建设:201612
jBoss EAP-6.4

Alfresco有两个方面:身份验证和同步。针对OpenLDAP的身份验证可以在没有凭据的情况下进行,因为它使用用户的凭据进行绑定

但是,同步是在后台批量进行的。运行的同步作业需要一个凭据来通过OpenLDAP验证,以便它可以查询自上次检查以来创建或修改的用户和组。如果您不提供凭证,这将意味着您的OpenLDAP目录必须完全开放,这肯定不是您想要的