Bug 1300740 - [RFE] IPA: resolve external group memberships of IPA groups during getgrnam and getgrgid
[RFE] IPA: resolve external group memberships of IPA groups during getgrnam a...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: sssd (Show other bugs)
7.3
All Linux
high Severity high
: rc
: ---
Assigned To: Jakub Hrozek
Steeve Goveas
: FutureFeature, ZStream
Depends On:
Blocks: 1310664 1311569
  Show dependency treegraph
 
Reported: 2016-01-21 10:30 EST by Jakub Hrozek
Modified: 2016-11-04 03:15 EDT (History)
13 users (show)

See Also:
Fixed In Version: sssd-1.13.0-42.el7
Doc Type: Enhancement
Doc Text:
Feature: In an IPA-AD trust setup, getpwnam and getgrnam calls for IPA groups that contain AD members via external groups used to only return members who were cached via an initgroups call. This patch adds the ability to resolve external members without the initgroups operation as well. Reason: The slapi-nis plugin makes heavy use of this functionality when presenting the external group members to the compatibility tree which is then consumed by legacy clients. It's the only way to define sudo rules through an external group to legacy clients at the moment. Result: calling "getent group" for an IPA group that contains a member from an Active Directory domain would return the AD members as well. Please note that "Domain Users" are a bit of a special case here and its members are not resolved. This is because Domain Users are a primary group for AD users, but do not contain its members as LDAP attributes.
Story Points: ---
Clone Of:
: 1310664 1311569 (view as bug list)
Environment:
Last Closed: 2016-11-04 03:15:27 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jakub Hrozek 2016-01-21 10:30:37 EST
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/sssd/ticket/2522

Handling group memberships of AD users from a trusted domain has a bit of a history. In the original design the group-memberships where taken from the PAC. This meant that group-membership information was only available after a user logged in to a specific host and only on this host. To allow AD users to be members of IPA groups the IPA KDC added SIDs of IPA groups where the AD user is a member of into the PAC for this user.

Over the time there were request to let the 'id' command line utility show the full list of groups even for AD users which are not logged in. Support for this was added recently in SSSD's IPA provider and on the FreeIPA server side. 

If the SSSD cache entry of an IPA group with external member expires SSSD looks up the group members in the IPA LDAP server but since external memberships are not handled as local IPA members (RFC3207bis) the external members are not found and would be removed from the cache. #2492 mitigates this by making sure that members from different domains are not removed from the cache. Nevertheless it would be better to enhance the group lookup code for IPA groups in a way that it can resolve external members on its own.

Since this is IPA specific the changes should be made in the IPA provider to avoid regressions in the common LDAP group lookup code. On the other hand redundant LDAP requests should be avoided. A plugin scheme with a list of additional member attributes and a tevent request to resolve the additional member attributes might be a way to cover both requirements because the additional attributes can be requested in the same LDAP request as the plain RFC2307bis members and changes to the common group lookup code can be kept very localized and will only be executed if the plugin is available.
Comment 2 Jakub Hrozek 2016-02-24 08:15:18 EST
Upstream patches:
    master:
        3cf7fdfcaedb986f42a6640e26aa057007b64045
        e2d96566aeb881bd89e5c9236d663f6a9a88019a
        c32266e79f9d4bebd0c31eaa8d6fa26050e7fb3e 
    sssd-1-13:
        7db3bdfd6b1b845866c1ff062d25de5804141e89
        00ee45423f0712b83926c6f8b354a1a18ff741c8
        19194cb18a1cc20f02423861dd831aa5bc3a1003
Comment 5 Sudhir Menon 2016-08-12 10:40:19 EDT
Jakub,
Can you please provide the steps to verify this bug?
Comment 6 Jakub Hrozek 2016-08-12 10:46:14 EDT
(In reply to Sudhir Menon from comment #5)
> Jakub,
> Can you please provide the steps to verify this bug?

You already verified it's clone, https://bugzilla.redhat.com/show_bug.cgi?id=1311569#c6 so the same steps apply.
Comment 7 Sudhir Menon 2016-08-12 10:55:20 EDT
Fix is seen.
Verified using steps as mentioned in comment6 of bz1311569.

ipa-server-4.4.0-7.el7.x86_64
sssd-1.14.0-18.el7.x86_64
Comment 9 errata-xmlrpc 2016-11-04 03:15:27 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2476.html

Note You need to log in before you can comment on or make changes to this bug.