<div dir="ltr"><div>I actually didn't quite catch,why oVirt can't just pass user information and you could check against it? This may require to create some configuration files for libvirt about end users.</div><div>What is a advantage of authenticating oVirt, and then impersonation for end user?<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-05-11 16:37 GMT+03:00 Daniel P. Berrangé <span dir="ltr"><<a href="mailto:berrange@redhat.com" target="_blank">berrange@redhat.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, May 11, 2018 at 04:26:36PM +0300, Anastasiya Ruzhanskaya wrote:<br>
> Excuse me for renewing this discussion, but I am curious if you would add<br>
> new module, which will be able to process users not based on unix<br>
> processes, from where do you plan to get usernames? I mean, virt-manager<br>
> could give them, as there is authentication in GUI, but for example when<br>
> using oVirt, none of the usernames reach libvirt through the communication<br>
> between server and nodes.<br>
<br>
</span>The identity attributes would have to use information that libvirt acquires<br>
from its authentication modules.  When using TLS, if client certificates are<br>
requested by libvirtd, then we can check the x509 cert distinguished name<br>
field.  When using SASL,  if the SASL mechanism returns a username, we can<br>
check that.<br>
<br>
NB, we would *not* be trying to check the end user that oVirt knows about,<br>
rather we are authenticating oVirt itself.<br>
<br>
To check end users defined by the higher level mgmt app would require an<br>
extra set of functionality in the public API, to allow oVirt to do user<br>
impersonation with libvirt.  eg libvirt would first authenticate ovirt,<br>
ovirt would then sya it wants to impersonate "fred" and from there all<br>
APIs get checked against "fred".<br>
<br>
This gets pretty difficult though, because oVirt and most similar mgmt<br>
apps generally only have a single connection to libvirt but are doing<br>
work for 100's of different users on it. So in reality it is not very<br>
practical for libvirt to try to validate ovirt's users.<br>
<div class="HOEnZb"><div class="h5"><br>
Regards,<br>
Daniel<br>
-- <br>
|: <a href="https://berrange.com" rel="noreferrer" target="_blank">https://berrange.com</a>      -o-    <a href="https://www.flickr.com/photos/dberrange" rel="noreferrer" target="_blank">https://www.flickr.com/photos/<wbr>dberrange</a> :|<br>
|: <a href="https://libvirt.org" rel="noreferrer" target="_blank">https://libvirt.org</a>         -o-            <a href="https://fstop138.berrange.com" rel="noreferrer" target="_blank">https://fstop138.berrange.com</a> :|<br>
|: <a href="https://entangle-photo.org" rel="noreferrer" target="_blank">https://entangle-photo.org</a>    -o-    <a href="https://www.instagram.com/dberrange" rel="noreferrer" target="_blank">https://www.instagram.com/<wbr>dberrange</a> :|<br>
</div></div></blockquote></div><br></div>