Vous devriez être en mesure de créer une requête avec ce filtre ici :
(&(objectClass=user)(sAMAccountName=yourUserName)
(memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com))
et lorsque vous exécutez cela sur votre serveur LDAP, si vous obtenez un résultat, votre utilisateur "votreNomUtilisateur" est bien membre du groupe "CN=VotreGroupe,OU=Utilisateurs,DC=VotreDomaine,DC=com".
Essayez et voyez si cela fonctionne !
Si vous utilisez C# / VB.Net et System.DirectoryServices, cet extrait devrait faire l'affaire :
DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=yourcompany,dc=com");
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectClass=user)(sAMAccountName=yourusername)(memberOf=CN=yourgroup,OU=yourOU,DC=yourcompany,DC=com))";
SearchResultCollection res = srch.FindAll();
if(res == null || res.Count <= 0) {
Console.WriteLine("This user is *NOT* member of that group");
} else {
Console.WriteLine("This user is INDEED a member of that group");
}
Attention : cette méthode ne teste que l'appartenance à des groupes immédiats, et ne teste pas l'appartenance à ce que l'on appelle le "groupe primaire" (généralement "cn=Users") dans votre domaine. Il ne gère pas les appartenances imbriquées, par exemple, l'utilisateur A est membre du groupe A qui est membre du groupe B - le fait que l'utilisateur A soit également membre du groupe B n'est pas reflété ici.
Marc