Performing a group lookup against FreeIPA servers is extremely expensive, especially when nested groups are in play. However, FreeIPA now has an attribute {{{memberindirect}}} on groups that includes all users that are members of child groups.
We could significantly improve our group lookup performance against FreeIPA by reading the {{{memberindirect}}} object instead of actually proceeding through nested group lookups.
We can also speed up the saving of groups by taking a bit of a cheap shortcut. We know that the user and group names in FreeIPA are guaranteed to have a particular format (users will always be in the cn=Users,cn=Accounts subtree, groups in cn=Groups) so we can ignore groups and just construct usernames from the DNs of the {{{member}}} and {{{memberindirect}}} attributes of the group.
For the record, Rob Crittenden confirmed for me that 'memberindirect' has been available since FreeIPA 2.0.0, so we don't need to conditionalize this.
It turns out that memberindirect doesn't actually exist.
For that matter, we should be able to manage just fine with a single lookup involving memberOf anyway.
resolution: => cantfix status: new => closed
Fields changed
milestone: NEEDS_TRIAGE =>
rhbz: => 0
SSSD is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in SSSD's github repository.
This issue has been cloned to Github and is available here: - https://github.com/SSSD/sssd/issues/2296
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.