Hi Jakub, On Fri, Jun 1, 2018 at 6:52 PM, Jakub Hrozek <jhro...@redhat.com> wrote:
> First, I’m sorry that I missed the e-mail in the moderation queue. We get > a fair amount of spam and things sometimes slip through. > No worries, I thought it would take some time when I got the manual moderation message - I would have subscribed and re-sent if it would have take much longer, no hard feelings :-). > > > On 20 May 2018, at 14:23, Christian Svensson <christ...@cmd.nu> wrote: > > > > Hi sssd-users, > > > > My LDAP setup contains two bases: > > dc=office1,dc=company,dc=tld > > dc=office2,dc=company,dc=tld > > > > Groups can cross-reference other groups in the two bases, like this: > > cn=printer-access,ou=groups,dc=office1,dc=company,dc=tld > > - member: cn=everybody,ou=groups,dc=office1,dc=company,dc=tld > > - member: cn=everybody,ou=groups,dc=office2,dc=company,dc=tld > > cn=printer-access,ou=groups,dc=office2,dc=company,dc=tld > > - member: cn=everybody,ou=groups,dc=office2,dc=company,dc=tld > > > > What I'm trying achieve is to have a server belonging to office1 being > able to expand all groups, even if the references are across office > boundary, but only see the leaf groups that are in its own base. > > > > What I've tried is something like this: > > [domain/office1] > > debug_level = 9 > > enumerate = true > > cache_credentials = true > > entry_cache_timeout = 600 > > id_provider = ldap > > auth_provider = ldap > > chpass_provider = ldap > > ldap_search_base = dc=company,dc=tld > > ldap_group_search_base = dc=office1,dc=company,dc=tld > > # Also tried with: > > # ldap_group_search_base = dc=company,dc=tld?subtree?(dc:dn:=office1) > > ldap_schema = rfc2307bis > > ldap_group_member = member > > ldap_group_nesting_level = 5 > > ldap_uri = ldaps://xxx > > ldap_tls_reqcert = hard > > ldap_tls_cacert = /etc/ssl/ldap-ca.crt > > > > Sadly this does not work, which I'm not that surprised over. The lookup > logic reports: > > (Sun May 20 14:00:29 2018) [sssd[be[ office1]]] [sdap_save_grpmem] > (0x0400): Adding member users to group [printer-access@office1] > > (Sun May 20 14:00:29 2018) [sssd[be[ office1]]] > [sdap_find_entry_by_origDN] (0x4000): Searching cache for > [cn=everybody,ou=groups,dc=office2,dc=company,dc=tld]. > > (Sun May 20 14:00:29 2018) [sssd[be[ office1]]] [sdap_fill_memberships] > (0x0080): Member [ cn=everybody,ou=groups,dc=office2,dc=company,dc=tld] > was not found in cache. Is it out of scope? > > > > > Looking at the way things are executed in code and logs it seems like > there is no "post processing" to drop groups based on LDAP attributes, nor > is there any way for me to add attributes to the full name of the resource > to disambiguate them. Those are the two ways I've been attacking this, and > both seems to not be supported. > > > > Are my observations correct? Is there a workaround other than making > sure groups have unique names across the whole company? > > > > When groups are not colliding in name everything works just fine if I > put " ldap_group_search_base = dc=company,dc=tld", but I'd prefer if I > could avoid having to resort to globally unique group names. > > > > Thanks, > > > > P.S. My groups are named differently and have been renamed in the log > messages. Let me know if something doesn't make sense and I might have > typo'd a replacement. > > Yes, I must admit I got a bit confused. Is the issue related to both > members in your example having the same name? IOW, if you have “everybody” > and “nobody” in different subtrees, are those resolved correctly? > If I understand your question, yes - it's related to having the same name of sorts, but only indirectly. The naive search base would be the common ancestor DN, which would be in this example dc=company,dc=tld. Given that sssd-ldap says: "Note: It is unsupported to have multiple search bases which reference identically-named objects (for example, groups with the same name in two different search bases). This will lead to unpredictable behavior on client machines." that scares me a bit (problem 1) - but also because I want to limit the amount of groups the servers are exposed to when belonging to office1 and office2 in this case (problem 2). If I change the name of the groups to be everybody-office1 etc. (unique names across the common ancestor) everything works (solved problem 1) but problem 2 still remains. Actually, the above solution is what we're currently running while I try to figure out if it's feasible to take this a step further to solve problem 2. That's why I want to see if I can limit the search base to be limited to office1 yet still offer full expansion. Does that make sense or did I just make it less clear? :-) I've since found the dynlist overlay in OpenLDAP which may solve this need by having OpenLDAP flatten the group membership attribute, which would then make this work as I want if I set the per-office search base. But if SSSD can/should do it by itself that would of course be neater for me. Chris
_______________________________________________ sssd-users mailing list -- sssd-users@lists.fedorahosted.org To unsubscribe send an email to sssd-users-le...@lists.fedorahosted.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/sssd-users@lists.fedorahosted.org/message/BMF77LEKFNKPK4GDFQTQCNB2Q5HT6FVC/