LDAP multi OU [résolu]

cancel
Showing results for 
Search instead for 
Did you mean: 
lucky
Member II

LDAP multi OU [résolu]

Bonjour,
Je n'ai pas le renseignement pour l'espace communs mais ca m'interesse aussi…
Par contre j'ai une question complémentaire sur la synchro AD, moi j'ai des groupes et users dans plusieurs OU et je n'arrive pas les récupérer, je peut synchroniser une OU ou une autres mais pas une liste d'OU, je n'arrive pas a saisir comment paramétrer le fichier ldap-ad.properties.
En gros j'ai ca a faire :
DC=DOMAIN, DC=fr
- OU1
– grp1
— user1
— user2
– grp2
.
.
.
- OU2
.
.
.
- OU3
.
.
.
Je cherche a synchro les groupes et users des OU 1 et 2 mais pas 3, la 5 mais pas la 6 ou la 7….
# This flag enables use of this LDAP subsystem for authentication. It may be
# that this subsytem should only be used for synchronization, in which case
# this flag should be set to false.
ldap.authentication.active=true

#
# This properties file brings together the common options for LDAP authentication rather than editing the bean definitions
#
ldap.authentication.allowGuestLogin=true

# How to map the user id entered by the user to taht passed through to LDAP
# In Active Directory, this can either be the user principal name (UPN) or DN.
# UPNs are in the form <sAMAccountName>@domain and are held in the userPrincipalName attribute of a user
ldap.authentication.userNameFormat=%s@DOMAIN.fr

# The LDAP context factory to use
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

# The URL to connect to the LDAP server
ldap.authentication.java.naming.provider.url=ldap://serveur.DOMAIN.fr:389

# The authentication mechanism to use
ldap.authentication.java.naming.security.authentication=simple



# Escape commas entered by the user at bind time
# Useful when using simple authentication and the CN is part of the DN and contains commas
ldap.authentication.escapeCommasInBind=false

# Escape commas entered by the user when setting the authenticated user
# Useful when using simple authentication and the CN is part of the DN and contains commas, and the escaped \, is
# pulled in as part of an LDAP sync
# If this option is set to true it will break the default home folder provider as space names can not contain \
ldap.authentication.escapeCommasInUid=false

# Comma separated list of user names who should be considered administrators by default
#ldap.authentication.defaultAdministratorUserNames=Administrator
ldap.authentication.defaultAdministratorUserNames=Administrateur


# This flag enables use of this LDAP subsystem for user and group
# synchronization. It may be that this subsytem should only be used for
# authentication, in which case this flag should be set to false.
ldap.synchronization.active=true

# The default principal to bind with (only used for LDAP sync). This should be a UPN or DN
#ldap.synchronization.java.naming.security.principal=alfresco@domain
ldap.synchronization.java.naming.security.principal=Administrateur@DOMAIN.fr


# The password for the default principal (only used for LDAP sync)
ldap.synchronization.java.naming.security.credentials=MDP

# If positive, this property indicates that RFC 2696 paged results should be
# used to split query results into batches of the specified size. This
# overcomes any size limits imposed by the LDAP server.
ldap.synchronization.queryBatchSize=1000

# If positive, this property indicates that range retrieval should be used to fetch
# multi-valued attributes (such as member) in batches of the specified size.
# Overcomes any size limits imposed by Active Directory.       
ldap.synchronization.attributeBatchSize=1000

# The query to select all objects that represent the groups to import.
ldap.synchronization.groupQuery=(objectclass\=group)

# The query to select objects that represent the groups to import that have changed since a certain time.
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(modifyTimestamp<\={0})))

# The query to select all objects that represent the users to import.
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))

# The query to select objects that represent the users to import that have changed since a certain time.
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(modifyTimestamp<\={0})))

# The group search base restricts the LDAP group query to a sub section of tree on the LDAP server.
#ldap.synchronization.groupSearchBase=ou\=Security Groups,ou\=Alfresco,dc=DOMAIN,dc=fr
ldap.synchronization.groupSearchBase=ou\=OU1,dc=DOMAIN,dc=fr

# The user search base restricts the LDAP user query to a sub section of tree on the LDAP server.
#ldap.synchronization.userSearchBase=ou\=User Accounts,ou=\Alfresco,dc=DOMAIN,dc=fr
ldap.synchronization.userSearchBase=ou\=OU1,dc=DOMAIN,dc=fr


# The name of the operational attribute recording the last update time for a group or user.
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp

# The timestamp format. Unfortunately, this varies between directory servers.
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'

# The attribute name on people objects found in LDAP to use as the uid in Alfresco
ldap.synchronization.userIdAttributeName=sAMAccountName

# The attribute on person objects in LDAP to map to the first name property in Alfresco
ldap.synchronization.userFirstNameAttributeName=givenName

# The attribute on person objects in LDAP to map to the last name property in Alfresco
ldap.synchronization.userLastNameAttributeName=sn

# The attribute on person objects in LDAP to map to the email property in Alfresco
ldap.synchronization.userEmailAttributeName=mail

# The attribute on person objects in LDAP to map to the organizational id  property in Alfresco
ldap.synchronization.userOrganizationalIdAttributeName=company

# The default home folder provider to use for people created via LDAP import
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider

# The attribute on LDAP group objects to map to the authority name property in Alfresco
ldap.synchronization.groupIdAttributeName=cn

# The attribute on LDAP group objects to map to the authority display name property in Alfresco
ldap.synchronization.groupDisplayNameAttributeName=displayName

# The group type in LDAP
ldap.synchronization.groupType=group

# The person type in LDAP
ldap.synchronization.personType=user

# The attribute in LDAP on group objects that defines the DN for its members
ldap.synchronization.groupMemberAttributeName=member

# If true progress estimation is enabled. When enabled, the user query has to be run twice in order to count entries.
ldap.synchronization.enableProgressEstimation=true

Donc ce que je cherche c'est comment avoir une liste d'OU ou en tout cas une requette qui va me selectionner mes groupes et users dans de multiple OU.

Merci par avance de vos réponses.
4 Replies
rguinot
Customer

Re: LDAP multi OU [résolu]

possible soit en chainant les ldap par OU désirée, soit avec du search and bind
lucky
Member II

Re: LDAP multi OU [résolu]

Bonjour,
Déjà merci pour la rapidité de la réponse.
Par contre je ne comprend pas la réponse  Smiley Surprisedops:
- Chainer les ldap
-> J'ai juste un AD, je n'ai donc qu'un seul ldap, a moins qu'il s'agisse de plusieurs fichiers de config? Mais dans ce cas je ne vois pas comment mettre le chainage en place…Un truc du genre aller modifier l'authentication chain peut être ? Mais dans ce cas où doivent se trouver les fichiers que je rajoute?
- Search and bind
-> Là par contre je sèche complètement…

Je ne trouve rien que  j'arrive a comprendre dans la doc ni sur le forum sur ce problème de plusieurs OU, pourrais tu détailler ou me donner les liens ou je puisse trouver une méthode svp?
rguinot
Customer

Re: LDAP multi OU [résolu]

pour le chainage, ça se passe coté alfresco, et ça permet d'aggréger plusieurs sources d'utilisateurs (comme aussi plusieurs OU par exemple). voir ici :
http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems#Example_2:_Advanced_LDAP_Chain

pour le search and bind, c'est expliqué dans le fichier de conf alfresco concernant votre ldap (pas rambo3) :

# If not set, an LDAP query involving ldap.synchronization.personQuery and ldap.synchronization.userIdAttributeName will
# be performed to resolve the DN dynamically. This allows directories to be structured and doesn't require the user ID to
# appear in the DN.
ldap.authentication.userNameFormat=

donc, si vous ne spécifiez pas d'usernameformat, il se servira de personQuery, userIdAttributeName , et le login de l'utilisateur pour retrouver son DN dynamiquement.
c'est comme ça que les choses se passent.

l'une OU l'autre des méthodes fonctionne, inutile de faire les 2
lucky
Member II

Re: LDAP multi OU [résolu]

Bonjour,
Et bien la technique 1 fonctionne (je n'ai pas tester la 2), voici ce que j'ai fait :
Dans alfresco.properties, la chaine d'authentification :
ldap1:ldap-ad,ldap2:ldap-ad1,ldap3:ldap-ad2,ldap4:ldap-ad3,ldap5:ldap-ad4,ldap6:ldap-ad5,passthru1:passthru
Dans mon arborescence d'authentification \\serveur_alfresco\c$\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\Authentication\
j'ai copier le répertoire ldap-ad 5 fois sous les noms ldap-ad1, ldap-ad2, etc…
A l'intérieur de chacun de ces répertoires, j'ai renommer les fichiers ldap-ad-authentication.properties et ldap-ad-authentication-context.xml en ldap-ad1-authentication.properties et ldap-ad1-authentication-context.xml pour le répertoire ldap-ad1, ldap-ad2-authentication.properties et ldap-ad2-authentication-context.xml pour le répertoire ldap-ad2, etc…
Ensuite j'ai modifier dans chaque fichier ldap-adX-authentication.properties les lignes
ldap.synchronization.groupSearchBase=ou\=OU1,dc=DOMAINE,dc=fr
ldap.synchronization.userSearchBase=ou\=OU1,dc=DOMAINE,dc=fr
par
ldap.synchronization.groupSearchBase=ou\=OUX,dc=DOMAINE,dc=fr
ldap.synchronization.userSearchBase=ou\=OUX,dc=DOMAINE,dc=fr
Où OU1 à OUX correspondent a une des OU a synchroniser.
Maintenant dans la console de gestion des utilisateurs, j'ai bien tous mes utilisateurs ainsi que mes groupes.
Il me reste des tests de login a faire avec des utilisateurs non Admin a faire pour valider la solution a 100% mais je pense qu'on peut mettre le sujet en résolu.
Encore merci pour ces éclaircissements