Ben bir kullanıcı bir üyesi olduğu tüm grupların bir listesini oluşturmak için (Java ve PHP) LDAP aracılığıyla Active Directory sorgulama ediyorum. Bu liste, kullanıcı doğrudan üyesi olduğu grupları içerir (organizasyonel üniteleri opsiyonel) Tüm azından bütün grupları içermelidir. Örneğin:
User1 GroupA, GroupB ve GroupC bir üyesidir.
GroupA groupd üyesidir.
Ben Groupa, GroupB, GroupC dönecektir LDAP sorgusunu oluşturmak için bir yol arıyorum, and kerede groupd.
Benim şu anki uygulama altında, ama bu bilgileri toplamak için daha verimli bir yol arıyorum.
Current Naive Implementation (In pseudo-code)
user = ldap_search('samaccountname=johndoe', baseDN);
allGroups = array();
foreach (user.getAttribute('memberOf') as groupDN) {
allGroups.push(groupDN);
allGroups = allGroups.merge(getAncestorGroups(groupDN));
}
function getAncestorGroups(groupDN) {
allGroups = array();
group = ldap_lookup(groupDN);
parents = group.getAttribute('memberOf');
foreach (parents as groupDN) {
allGroups.push(groupDN);
allGroups = allGroups.merge(getAncestorGroups(groupDN));
}
return allGroups;
}