P J Bryant
New member
- Local time
- Today, 20:16
- Joined
- Apr 6, 2026
- Messages
- 3
Of course it depends on circumstances, but as the original post didn't have those details my answer remains a valid proposition.This frequently comes up and unfortunately a lot of people don't realize the back draws on this method.
There are a lot of practical concerns worth mentioning.
First, relying on Active Directory ties your application user directly to the Windows login. In environments where PCs are used as shared terminals (e.g., clinics, hospitals, schools, universities, companies like ours with a lot of employees, ....), this becomes a limitation. Staff typically move between stations and only log in/out of the application, not Windows. Requiring a full Windows login/logout cycle for each user is slow and disrupts workflow, making AD-based control less suitable in these scenarios. Just imagine a user needs to do a search on Orders when he's not on his desk and is on the shop floor. How long does it take to log out of windows and login with his account just for a search. Or an edit on a record.
There are also some technical drawbacks:
So while AD groups are great for centralized management, they don’t always align well with real-world usage patterns, especially in shared workstation environments.
- Nested groups may not resolve easily, depending on how membership is retrieved
- There can be performance hits at startup when querying AD for group membership
- It requires domain connectivity to function properly
- If AD is unavailable, cached credentials may not include full group information, leading to incorrect or incomplete permission assignment
If someday I want to use active directory security for my database, instead of querying the server directly, I add Users and AD group memberships tables to my BE, then sync it peridically with AD. This way, my app can be used on its own.
It's one I have used many times for many clients since the 90's and has always worked really. Clearly YMMV; but if it suits the OP's setup, then it could work well given the granularity the solution offers a dev.
In my experience clients' IT support companies like it because they are not required to implement yet another security mechanism.
In terms of the your concerns:
* Nested groups - this has never been an issue, as if well designed a group can control multiple security boundaries. Nested membership can actually be a boon, reducing the number of groups to be maintained. The user having multiple group membership is fine as this increases the granularity of the solution.
* I have never seen a performance hits at startup; it's a single API call i know has been run 100's of thousand times without any fault ever being reported.
* Naturally it requires domain connectivity as that's how it works.
* TBH - if AD is unavailable then the client has a much bigger problem than just their access app.
* Although once can cached the tables, as it is only a single API call on startup which happens in an instance I've always preferred to store on launch of the app as it means a security change only requires the user to close the app and restart to gain (or lose) the apporpriate privileges.