cancel
Showing results for 
Search instead for 
Did you mean: 

Authentification AD avec groupe

deeloo
Confirmed Champ
Confirmed Champ

Bonjour,

Voici le contexte (voir image plus bas) :

L'authenification est basée sur l'AD. Tous les utilisateurs de l'OU service3 peuvent s'authentifier sur Alfresco.

La demande :

Je souhaiterai également autoriser les utilisateurs sophie et Patrice qui sont sur d'autres OU service1 et service2

Le problème :

Les utilisateurs sophie et Patrice n'apparaissent pas dans Alfresco alors qu'ils sont dans le même groupe (GU)

J'ai regardé sur le site https://community.alfresco.com/docs/DOC-4716-security-and-authentication#jive_content_id_NTLM_LDAP_J... 

et dans les paramètres du fichier ci-dessous mais sans succès

J'ai pu contourner le problème en créant plusieurs chaines d'authentification pointant sur service1 et service2 mais cela implique que d'autres utilisateurs pourraient se connecter sur Alfresco et c'est ce que je ne veux pas.

Voilà, j'espère que l'exposé de mon problème est clair et espère de trouver une solution grâce à vous. Merci par avance.


ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@domaine
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://10.11.12.13:389
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.authentication.defaultAdministratorUserNames=Administrator
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.authentication=simple
ldap.synchronization.java.naming.security.principal=domaine\\alfresco
ldap.synchronization.java.naming.security.credentials=mdp
ldap.synchronization.queryBatchSize=8000
ldap.synchronization.attributeBatchSize=8000
ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(whenChanged<\={0})))
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))

#########################################################################

ldap.synchronization.groupSearchBase=OU=service3,DC=domaine
ldap.synchronization.userSearchBase=OU=service3,DC=domaine
################################################################
ldap.synchronization.modifyTimestampAttributeName=whenChanged
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=company
ldap.synchronization.defaultHomeFolderProvider=companyHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupDisplayNameAttributeName=displayName
ldap.synchronization.groupType=group
ldap.synchronization.personType=user
ldap.synchronization.groupMemberAttributeName=member
ldap.synchronization.enableProgressEstimation=true
ldap.authentication.java.naming.read.timeout=0
ldap.synchronization.com.sun.jndi.ldap.connect.pool=true
ldap.pooling.com.sun.jndi.ldap.connect.pool.authentication=none simple
ldap.pooling.com.sun.jndi.ldap.connect.pool.debug=fine
ldap.pooling.com.sun.jndi.ldap.connect.pool.initsize=1
ldap.pooling.com.sun.jndi.ldap.connect.pool.maxsize=
ldap.pooling.com.sun.jndi.ldap.connect.pool.prefsize=
ldap.pooling.com.sun.jndi.ldap.connect.pool.protocol=plain
ldap.pooling.com.sun.jndi.ldap.connect.pool.timeout=
ldap.pooling.com.sun.jndi.ldap.connect.timeout=
ldap.synchronization.userAccountStatusProperty=userAccountControl
ldap.synchronization.userAccountStatusInterpreter=ldapadUserAccountStatusInterpreter

### ATTRIBUT ###
ldap.synchronization.userJobTitleAttributeName=title
ldap.synchronization.userOrganizationAttributeName=department
ldap.synchronization.userLocationAttributeName=physicalDeliveryOfficeName
ldap.synchronization.userMobileAttributeName=mobile
ldap.synchronization.userCompanyPostCodeAttributeName=postalCode
ldap.synchronization.userCompanyFaxAttributeName=facsimileTelephoneNumber
ldap.synchronization.userCompanyTelephoneAttributeName=telephoneNumber
ldap.synchronization.userCompanyEmailAttributeName=mail
ldap.synchronization.userPersonDescriptionAttributeName=info
ldap.synchronization.userTelephoneAttributeName=homePhone
ldap.synchronization.userCompanyAddress1AttributeName=streetAddress
ldap.synchronization.userCompanyAddress2AttributeName=l
ldap.synchronization.userCompanyAddress3AttributeName=st

Community - 5.2.0 (r135134-b14)

1 ACCEPTED ANSWER

ycoulon
Employee
Employee

Bonjour,

Je pense que tu devrais plutôt configuré les propriétés :

  • ldap.synchronization.groupSearchBase
  • ldap.synchronization.userSearchBase

Avec la valeur "DC=domaine", il faut ensuite modifié la requete listant les "person" :

  • ldap.synchronization.personQuery
  • ldap.synchronization.personDifferentialQuery

Pour inclure l'appartenance au groupe GU, quelque chose comme ceci :

ldap.synchronization.personQuery=(&(objectclass\=user)(memberOf=CN=GU,OU=service3,DC=domaine)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(memberOf=CN=GU,OU=service3,DC=domaine)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))

#########################################################################
ldap.synchronization.groupSearchBase=DC=domaine
ldap.synchronization.userSearchBase=DC=domaine
################################################################

Je ne suis pas sur à 100% de la syntaxe étant donné que tu travailles avec Active Directory.

Y.

View answer in original post

2 REPLIES 2

ycoulon
Employee
Employee

Bonjour,

Je pense que tu devrais plutôt configuré les propriétés :

  • ldap.synchronization.groupSearchBase
  • ldap.synchronization.userSearchBase

Avec la valeur "DC=domaine", il faut ensuite modifié la requete listant les "person" :

  • ldap.synchronization.personQuery
  • ldap.synchronization.personDifferentialQuery

Pour inclure l'appartenance au groupe GU, quelque chose comme ceci :

ldap.synchronization.personQuery=(&(objectclass\=user)(memberOf=CN=GU,OU=service3,DC=domaine)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(memberOf=CN=GU,OU=service3,DC=domaine)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))

#########################################################################
ldap.synchronization.groupSearchBase=DC=domaine
ldap.synchronization.userSearchBase=DC=domaine
################################################################

Je ne suis pas sur à 100% de la syntaxe étant donné que tu travailles avec Active Directory.

Y.

deeloo
Confirmed Champ
Confirmed Champ

Bonjour,

Super !!!

Ca fonctionne

Après avoir ajouter mon GU contenant les utilisateurs à mon site, tous les membres du GU apparaissent maintenant avec devant chaque nom l'indication que l'utilisateur fait parti d'un groupe. voir copie d'écran ci-dessous.

Par contre, ça implique que toute l'AD est checké mais l'essentiel est là

Merci beaucoup Yann Coulon pour ton aide.