Projet

Général

Profil

Actions

Evolution #993

ouvert

Anomalie #992: ALFRESCO Documentation d’installation

📝 Documentation : IntĂ©gration Active Directory - Alfresco Community

Ajouté par Patrick ENGWANG NGUEMA il y a 2 jours.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
Début:
07 février 2026
Echéance:
% réalisé:

100%

Temps estimé:
1:00 h

Description


📝 Documentation : IntĂ©gration Active Directory - Alfresco Community

Projet : Liaison ACS 25.3.0 avec l'AD fontainefinances.group
Date : 07 Février 2026
Statut : Opérationnel (39 utilisateurs synchronisés)

1. Points Bloquants et Résolutions

Point Bloquant Cause Technique Résolution
0 utilisateurs synchronisés Le filtre LDAP par défaut ne distinguait pas les personnes des autres objets AD. Ajout du filtre spécifique AD : (&(objectClass=user)(objectCategory=person)).
Crash Alfresco au dĂ©marrage Les parenthĂšses () dans les filtres LDAP Ă©taient interprĂ©tĂ©es par le Shell Linux (Bash) comme des commandes. Encapsulation des requĂȘtes LDAP entre guillemets " dans le fichier Compose.
Fichier de config non lu ProblÚme de montage de volume ou de priorité de lecture des propriétés. Injection directe des paramÚtres dans la section environment:JAVA_OPTS du YAML.
Erreur de conteneur inexistant Confusion entre le nom du service et le nom réel du conteneur Docker. Utilisation du préfixe exact généré : docker-compose-alfresco-1.

2. Architecture de la Solution

L'authentification est configurée en mode mixte (Chaining) :

  1. alfrescoNtlm1 : Pour le compte admin local (secours).
  2. ldap1 : Pour tous les utilisateurs de l'AD fontainefinances.group.

3. Fichier de Configuration Final (community-compose.yaml)

Voici le fichier complet et validĂ©, prĂȘt Ă  ĂȘtre archivĂ© ou rĂ©utilisĂ©.

sudo tee community-compose.yaml << 'EOF'
services:
  alfresco:
    image: docker.io/alfresco/alfresco-content-repository-community:25.3.0
    mem_limit: 1900m
    environment:
      JAVA_TOOL_OPTIONS: >-
        -Dencryption.keystore.type=JCEKS
        -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
        -Dencryption.keyAlgorithm=DESede
        -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
        -Dmetadata-keystore.password=mp6yc0UD9e
        -Dmetadata-keystore.aliases=metadata
        -Dmetadata-keystore.metadata.password=oKIWzVdEdA
        -Dmetadata-keystore.metadata.algorithm=DESede
      JAVA_OPTS: >-
        -Ddb.driver=org.postgresql.Driver
        -Ddb.username=alfresco
        -Ddb.password=alfresco@Ventis2025
        -Ddb.url=jdbc:postgresql://postgres:5432/alfresco
        -Dsolr.host=solr6
        -Dsolr.port=8983
        -Dsolr.http.connection.timeout=1000
        -Dsolr.secureComms=secret
        -Dsolr.sharedSecret=secret
        -Dsolr.base.url=/solr
        -Dindex.subsystem.name=solr6
        -Dshare.host=alfresco
        -Dshare.port=8080
        -Dalfresco.host=alfresco
        -Dalfresco.port=8080
        -Dcsrf.filter.enabled=false
        -Daos.baseUrlOverwrite=http://localhost:18080/alfresco/aos
        -Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true"
        -Ddeployment.method=DOCKER_COMPOSE
        -DlocalTransform.core-aio.url=http://transform-core-aio:8090/
        -XX:MinRAMPercentage=50
        -XX:MaxRAMPercentage=80
        -Dauthentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
        -Dldap.authentication.active=true
        -Dldap.authentication.java.naming.provider.url=ldap://172.23.2.55:389
        -Dldap.authentication.java.naming.security.authentication=simple
        -Dldap.authentication.userNameFormat=%s@fontainefinances.group
        -Dldap.synchronization.java.naming.security.principal=CN=alfresco_user,OU=APP,OU=VENTIS,DC=fontainefinances,DC=group
        -Dldap.synchronization.java.naming.security.credentials=Admin@2025
        -Dldap.synchronization.userSearchBase=OU=VENTIS,DC=fontainefinances,DC=group
        -Dldap.synchronization.groupSearchBase=OU=VENTIS,DC=fontainefinances,DC=group
        -Dldap.synchronization.personQuery="(&(objectClass=user)(objectCategory=person))"
        -Dldap.synchronization.groupQuery="(objectClass=group)"
        -Dldap.synchronization.userIdAttributeName=sAMAccountName
        -Dldap.synchronization.userFirstNameAttributeName=givenName
        -Dldap.synchronization.userLastNameAttributeName=sn
        -Dldap.synchronization.userEmailAttributeName=mail
        -Dldap.synchronization.active=true
        -Dldap.synchronization.syncOnStartup=true
    ports:
      - "18080:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-"]
      interval: 30s
      timeout: 3s
      retries: 5
      start_period: 1m
    volumes:
      - alfresco_data:/usr/local/tomcat/alf_data
    extends:
      file: commons/base.yaml
      service: alfresco

  share:
    image: docker.io/alfresco/alfresco-share:25.3.0
    mem_limit: 1g
    environment:
      CSRF_FILTER_ORIGIN: http://localhost:18080
      CSRF_FILTER_REFERER: http://localhost:18080/share/.*
      REPO_HOST: alfresco
      REPO_PORT: 8080
      JAVA_OPTS: >-
        -XX:MinRAMPercentage=50
        -XX:MaxRAMPercentage=80
        -Dalfresco.host=alfresco
        -Dalfresco.port=8080
        -Dalfresco.context=alfresco
        -Dalfresco.protocol=http
    ports:
      - "18081:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/share"]
      interval: 20s
      timeout: 2s
      retries: 3
      start_period: 15s
    depends_on:
      alfresco:
        condition: service_healthy
    extends:
      file: commons/base.yaml
      service: share

  postgres:
    image: postgres:16.5
    mem_limit: 512m
    environment:
      POSTGRES_DB: alfresco
      POSTGRES_USER: alfresco
      POSTGRES_PASSWORD: alfresco@Ventis2025
    command: postgres -c max_connections=300 -c log_min_messages=LOG
    ports:
      - "15432:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d alfresco -U alfresco"]
      interval: 10s
      timeout: 3s
      retries: 3
      start_period: 5s
    volumes:
      - postgres_data:/var/lib/postgresql/data

  solr6:
    image: docker.io/alfresco/alfresco-search-services:2.0.17
    mem_limit: 2g
    environment:
      SOLR_ALFRESCO_HOST: alfresco
      SOLR_ALFRESCO_PORT: 8080
      SOLR_SOLR_HOST: solr6
      SOLR_SOLR_PORT: 8983
      SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
      ALFRESCO_SECURE_COMMS: secret
      JAVA_TOOL_OPTIONS: >-
        -Dalfresco.secureComms.secret=secret
    ports:
      - "18083:8983"

  transform-core-aio:
    image: alfresco/alfresco-transform-core-aio:5.3.0
    mem_limit: 1536m
    environment:
      JAVA_OPTS: >-
        -XX:MinRAMPercentage=50
        -XX:MaxRAMPercentage=80
    ports:
      - "18090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/ready"]
      interval: 20s
      timeout: 2s
      retries: 3
      start_period: 10s
    depends_on:
      activemq:
        condition: service_healthy

  activemq:
    image: alfresco/alfresco-activemq:5.18-jre17-rockylinux8
    mem_limit: 1g
    ports:
      - "18161:8161"
      - "15672:5672"
      - "16161:61616"
      - "16113:61613"
    healthcheck:
      test: ["CMD", "/opt/activemq/bin/activemq", "query", "--objname", "type=Broker,brokerName=*,service=Health"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 5s

volumes:
  alfresco_data:
  postgres_data:
EOF


4. Commande de Vérification Rapide

Pour auditer la santé de la synchronisation à l'avenir :
docker logs docker-compose-alfresco-1 2>&1 | grep -i "User Creation and Association"

Aucune donnée à afficher

Actions

Formats disponibles : Atom PDF