Hello,
First of all please do not use NSCD with the maps that are served by SSSD theya re sort of mutually exclusive. SSSD does caching and if you use it NSCD is not needed and should be turned off. The only exception is the maps that are not handled by SSSD. However those are rarely used and so far we have not heard any clear requests to extend the set of maps supported by SSSD. If there are please file and RFE here:
https://fedorahosted.org/sssd/Secondarily, I completely agree that SSSD should run in the context of the host and containers would load nss_sss and connect to the main group of processes. That actually works fine with any flavour of container if of cause you have not set SELinux policies to prevent communication over SSSD NSS responder domain socket. So you can try it and I do not see any big issues so far there. If you find any please report them on SSSD mailing list or in trac.
However there is a challenge moving forward that I do not see a good solution for.
SSSD can connect to different identity sources. So let us say that we have a container based solution that is presented by a service provider and there are different businesses that have their own directories. With per host setup of SSSD the SSSD would need to have access to multiple sources and this is fine, SSSD can do it. What is not fine is that SSSD can't associate containers with sources. What needs to happen is the following:
1) A process from container connects to SSSD over the using socket via nss_sss (happens now)
2) SSSD NSS responder accepts connection (happens now)
3) SSSD NSS responder asks socket for the UUID of the container where the connection is coming from
4) SSSD NSS responder asks something (and I do not know what it would be) what is the mapping of this UUID to a Tenant that this container belongs to.
5) Then SSSD NSS responder can map the Tenant to the identity sources available and would serve the right information.
Now to be clear I am not a specialist in containers so please take the following with a grain of salt.
IMO what we need for containers is: identity (and I was told that the containers already have unique identity so that might be a solved problem), properties (tags) that can be associated with the container when it is created (this is how tenant data can be passed in because management software probably knows this information), API to query these properties based on the UUID, ability to ask for container UUID on the socket. IMO some part of this should be done by Kernel becuase it is the only trusted intermediary between the container and SSSD. SSSD can trust kernel but can't trust the application itself so the properties should be on the container level.
HTH
Thanks
Dmitri