in reply to Net::LDAP and AD

Now, we just found a problem that in Windows AD, users are a member of a group, without being an actual member attribute.
You mean, the primary group is not visible in an LDAP query via the memberOf attribute of the user record? or is there no DN entry for the corresponding group? Or do the members not show up querying the group?

oh, wait... (reading) ...

Um, that should be straight forward. Get a list of the users, query their PrimaryGroupID, store that somewhere (in a hash? :-), see what's in memberOf, get the groupIds of the returned groups and determine the users primary group by comparing their PrimaryGroupId with the groupIds found. Windows AD should be querable (? queryable?) through port 3268 (or 3269 with TLS), I found the service behind the standard port 389 at times unreliable. There could be a maxRows limitation of an LDAP query to AD.

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

Replies are listed 'Best First'.
Re^2: Net::LDAP and AD
by g0n (Priest) on Jun 27, 2006 at 16:41 UTC
    Um, that should be straight forward. Get a list of the users, query their PrimaryGroupID, store that somewhere (in a hash? :-), see what's in memberOf, get the groupIds of the returned groups and determine the users primary group by comparing their PrimaryGroupId with the groupIds found.
    That approach definitely works - I solved the same problem in javascript that way (although I don't have the code anymore).

    There could be a maxRows limitation of an LDAP query to AD.
    AD defaults to a page size of 1000 objects. You need to use the Net::LDAP::Control::Paged control to handle anything bigger than that. I have code returning tens of thousands of entries from AD on port 389 without a problem that way.

    --------------------------------------------------------------

    "If there is such a phenomenon as absolute evil, it consists in treating another human being as a thing."
    John Brunner, "The Shockwave Rider".

    Can you spare 2 minutes to help with my research? If so, please click here