代码之家  ›  专栏  ›  技术社区  ›  ERemarque

在Alfresco 5.1中使用两个LDAP配置身份验证和同步

  •  0
  • ERemarque  · 技术社区  · 7 年前

    我们执行从企业版alfresco4.2到5.1的迁移。 公司中有两个Active Directory域(主域和子域),因此我们在Alfresco 5.1中配置了两个LDAP(AD)子系统。

    /opt/tomcat7/shared/classes/alfresco/extension/subsystem/Authentication/ldap ad/ldap2 /opt/tomcat7/shared/classes/alfresco/extension/subsystem/Authentication/ldap ad/ldap1

    Authentication chain screenshot

    例如,如果ldap1在列表中排名第一,则该用户从ldap2登录失败(反之亦然!)。

    Caused by: net.sf.acegisecurity.AuthenticationCredentialsNotFoundException: A valid SecureContext was not provided in the RequestContext 
    

    我的财产:

    /opt/tomcat7/shared/classes/alfresco/extension/subsystem/Authentication/ldap ad/ldap1/ldap-ad-Authentication.properties属性

    ldap.authentication.active=true
    ldap.authentication.allowGuestLogin=false
    ldap.authentication.userNameFormat=%s@fake.local
    ldap.authentication.java.naming.provider.url=ldap://fake.local:***
    ldap.authentication.defaultAdministratorUserNames=fake_user
    ldap.authentication.java.naming.referral=follow
    
    ldap.synchronization.java.naming.security.principal=fake_user@fake.local
    ldap.synchronization.java.naming.security.credentials=somepassword
    ldap.synchronization.groupSearchBase=ou=Archiv,ou=FileServerGroups,ou=Groups,dc=fake,dc=local
    ldap.synchronization.userSearchBase=dc=fake,dc=local
    ldap.synchronization.groupDisplayNameAttributeName=description
    ldap.synchronization.userOrganizationalIdAttributeNameCustom=distinguishedName
    ldap.synchronization.com.sun.jndi.ldap.connect.pool=true
    

    /opt/tomcat7/shared/classes/alfresco/extension/subsystem/Authentication/ldap ad/ldap2/ldap-ad-Authentication.properties属性

    ldap.authentication.active=true
    ldap.authentication.allowGuestLogin=false
    ldap.authentication.userNameFormat=%s@gss.fake.local
    ldap.authentication.java.naming.provider.url=ldap://gss.fake.local:***
    ldap.authentication.defaultAdministratorUserNames=fake_user
    ldap.authentication.java.naming.referral=follow
    
    ldap.synchronization.java.naming.security.principal=fake_user@fake.local
    ldap.synchronization.java.naming.security.credentials=somepassword%
    ldap.synchronization.groupSearchBase=ou=Archiv,ou=FileServerGroups,ou=Groups,dc=gss,dc=fake,dc=local
    ldap.synchronization.userSearchBase=dc=gss,dc=fake,dc=local
    ldap.synchronization.groupDisplayNameAttributeName=description
    ldap.synchronization.userOrganizationalIdAttributeNameCustom=distinguishedName
    ldap.synchronization.com.sun.jndi.ldap.connect.pool=true
    

    ### Authentication ###
    #authentication.chain=ldap1:ldap-ad,ldap2:ldap-ad,alfrescoNtlm1:alfrescoNtlm
    authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad,ldap2:ldap-ad
    

    提前谢谢!

    1 回复  |  直到 7 年前
        1
  •  2
  •   ERemarque    7 年前

    最后,我解决了与身份验证用户相关的问题。 我把parametr的空字符串:

    ldap.authentication.userNameFormat=
    

    对于文件中的每个LDAP子系统 .

    之后,来自两个ldap的用户可以成功登录。

    指定如何将用户输入的用户标识符映射到该标识符 传递到LDAP。如果设置为空字符串(默认为 ldap子系统),一个涉及 ldap.synchronization.personQuery和 将执行ldap.synchronization.userIdAttributeName来解析 动态地从用户ID中删除DN。这允许目录

    如果设置为非空值,则此值中的子字符串%s将为空 这将LDAP用户名限制为固定格式。推荐的 此值的格式取决于LDAP服务器。

    推荐文章