I am working on setting up AD Roles provider and I have run into a bit of an issue -- I am hoping it can be worked around with some fancy configuration however at this point I am not sure.
Background:
My client has 3 domains with a trust between them (no forest). Inside each domain they have a top level OU for containing groups and under than they have 3 or 4 OUs used to organize things -- one of which is a "disabled" OU. Within these OUs there is approximately 110,000 groups (about 30,000 if you exclude the "disabled" OU"). You might ask, do I need all of these groups? The answer is yes and no. I need to be able to support any group that is created by the organization as a possible role within the Sitecore sites and the AD team do NOT put the groups for Sitecore in a single location as it would break all of their entire processes (GPOs, wizards for creating/managing etc.). So that leads me to the following issues/questions.
Issue
- I cannot seem to figure out how to sync multiple OUs for a single Domain (let alone 3 domains)
- I tried using the switcher provider and configuring multiple providers and connection strings for each OU, however when I added multiple entries in the sitecore.config for the roles provider pointing to the same domain I threw an exception that this was not supported
- I cannot seem to figure out how to EXCLUDE a single OU when syncing the parent OU
- I tried using the custom Filter expression on the provider however there doesn't seem to be any syntax that will exclude a sub OU (only sub CNs which will not work for me) and from looking online, in a Microsoft AD environment it may not even be possible.
- Loading ALL 110,000 groups results in a 5+ min load time every-time the app pool recycles and the user goes to select a role
- From what I can tell the "cache" for roles is not very robust and clears out rather quickly (regardless of settings)
Notes
This is for the roles provider, eventually I am going to need to setup the Membership provider and it is even worse :) As I have about 200,000 users that will be synchronized unless I can figure out how to narrow down the sync to multiple specific OUs
Thoughts?
Example AD Structure (these are ALL OUs except the root)
- Root Domain
- Groups
- Distribution Lists
- OU1
- Group 1
- Group 2
- ...
- OU2
- Group 1
- Group 2
- ...
- ...
- ...
- OU1
- Security
- OU1
- Group 1
- Group 2
- ...
- OU2
- Group 1
- Group 2
- ...
- ...
- ...
- OU1
- Disabled
- ...
- ...
- ...
- Distribution Lists
- Accounts
- Service
- OU1
- Account 1
- Account 2
- ...
- OU2
- Account 1
- Account 2
- ...
- ...
- ...
- OU1
- User
- OU1
- Account 1
- Account 2
- ...
- OU2
- Account 1
- Account 2
- ...
- ...
- ...
- OU1
- Server
- OU1
- Account 1
- Account 2
- ...
- OU2
- Account 1
- Account 2
- ...
- ...
- ...
- OU1
- Service
- Groups