bd9ae31f | 21-Jul-2025 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
fb75804e | 17-Jul-2025 |
Andreas Gohr <gohr@cosmocode.de> |
Parse AD bind error messages for more info for the user
This is mainly to tell users when their password expired or needs to be changed. |
1d29cbda | 02-Apr-2025 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
8de38791 | 02-Apr-2025 |
Andreas Gohr <andi@splitbrain.org> |
fix potential issue where attributes return null |
0588146e | 05-Dec-2023 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
9bafffea | 05-Dec-2023 |
Andreas Gohr <andi@splitbrain.org> |
prefer userPrincipalName over samAccountName
This allows for longer usernames than 20 chars.
This assumes that all userPrincipalNames use the same Domain as configured in the plugin. If that's not
prefer userPrincipalName over samAccountName
This allows for longer usernames than 20 chars.
This assumes that all userPrincipalNames use the same Domain as configured in the plugin. If that's not the case things will probably not work or behave strangely.
show more ...
|
208fe81a | 05-Dec-2023 |
Andreas Gohr <andi@splitbrain.org> |
automatic code style fixes |
f79066d9 | 21-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
fde03b26 | 21-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
better debugging and handling of suffix
People tend to configure the suffix with a prepended @. This will fail logins in non-obvious ways. We now strip the @ prefix and also give the connecting user
better debugging and handling of suffix
People tend to configure the suffix with a prepended @. This will fail logins in non-obvious ways. We now strip the @ prefix and also give the connecting user in the debug message
show more ...
|
29300d27 | 07-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
d66c3080 | 07-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
fix error when plugin is enabled but not configured
In this case the action handler should not be registered. |
6b6e3de7 | 03-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
0f498d06 | 03-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
implement password expiry warnings. fixes #4 |
0da90260 | 03-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
update test action |
7550be26 | 02-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
08ace392 | 02-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
support password changes
Internally this also changes the behviour to stay authenticated as the actual user if the user logged in. This is needed to allow self-service password changes.
This commit
support password changes
Internally this also changes the behviour to stay authenticated as the actual user if the user logged in. This is needed to allow self-service password changes.
This commit also contains a few cleanups.
show more ...
|
dad993c5 | 01-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
dependencies updated |
e5da8fd9 | 01-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
minor cleanup |
75f23892 | 02-Feb-2022 |
Andreas Gohr <andi@splitbrain.org> |
Version upped |
cf642174 | 02-Feb-2022 |
Andreas Gohr <andi@splitbrain.org> |
Delete PHILOSOPHY.md
this is now moved to a DokuWiki page
|
5dcabeda | 30-Jul-2021 |
Andreas Gohr <andi@splitbrain.org> |
make use of file system caching optional |
e7339d5a | 29-Jul-2021 |
Andreas Gohr <andi@splitbrain.org> |
Local handling of nested groups
All previous attempts to handle nested groups in a performant matter failed. Neither recursive requests nor using the LDAP_MATCHING_RULE_IN_CHAIN mechanism were suffi
Local handling of nested groups
All previous attempts to handle nested groups in a performant matter failed. Neither recursive requests nor using the LDAP_MATCHING_RULE_IN_CHAIN mechanism were sufficently fast enough to do bulk requests on users.
This now takes a completely different approach. When recursive groups are enabled, a single (paged) request for all groups is done. The list of these groups together with their parent info is then used to resolve any nested group memberships.
The group cache is saved in filesystem for the duration of the security timeout configuration.
Future enhancements should:
* see if the cache class could also be used for other caches currently implemented in Client.php * make the use of filesystem caching configurable
show more ...
|
746af42c | 28-Jul-2021 |
Andreas Gohr <andi@splitbrain.org> |
fix the double call to getUserGroups() |
7a36c1b4 | 28-Jul-2021 |
Andreas Gohr <andi@splitbrain.org> |
add support for nested groups when filtering users by group
And this is where we hit the performance problems. A naive approach is to simply run a query using LDAP_MATCHING_RULE_IN_CHAIN on the memb
add support for nested groups when filtering users by group
And this is where we hit the performance problems. A naive approach is to simply run a query using LDAP_MATCHING_RULE_IN_CHAIN on the memberOf attribute. But this is super slow (thanks Microsoft!)
Instead we first look up the given filter groups (to allow for substring matching), then resolve them recursively and then build a or filter for all found groups.
Still takes about 3 to 4 seconds :-/
show more ...
|
f17bb68b | 28-Jul-2021 |
Andreas Gohr <andi@splitbrain.org> |
new approach for recursive groups
Instead of implementing the recursion client side, we ask the AD server to resolve nested group memberships for us. This saves potentially many network requests but
new approach for recursive groups
Instead of implementing the recursion client side, we ask the AD server to resolve nested group memberships for us. This saves potentially many network requests but may have performance penalties on the AD server side. However it ensures, we can't make a mistake and thus makes our code safer to run - also turns out my first attempt was checking nested groups backwards.
See https://stackoverflow.com/q/40024425 for more discussions on performance for this.
A config option allows to use the former much faster approach for setups without nested groups.
Still to do: supporting user lookups by group this way.
show more ...
|