[Users] Authentication for REST APIs?

Brian Vetter bjvetter at gmail.com
Tue Oct 2 15:20:17 UTC 2012


> 3.1 added support for non admin to use the api.
> i.e., this should work.
> which specific version are you using?

From the about box in the admin web app:

oVirt Engine Version: 3.1.0-2.fc17

The curl command I send is:

curl --cacert $CA_FILE -X GET -H "Filter: true" -u user at domain:password https://$OVIRT/api/vms > uservms.xml 

The output when my user's group has a DOMAIN_ADMIN role contains the xml for the VMs. The output when the user's group has either a power user or a regular user role contains the error response with a 401 unauthorized error.

I had lots of fun getting this server set up so it is possible I made a mistake during installation, but it seems pretty functional right now. Everything seems to be working but I haven't been able to to test out how/if I can connect a new, non-portal client without having to add new servlets.

Brian

On Oct 2, 2012, at 9:57 AM, Itamar Heim wrote:

> On 10/02/2012 04:52 PM, Brian Vetter wrote:
>> Adding the "Filter:true" header to the curl request doesn't change anything. If the user account is not an admin account, I get a 401 status result. So my question still stands, can the REST API be used by a mere, non-admin "mortal" or is it only for administrative functions?
>> 
>> I'm in the process of trying to hook up a different client to a VM managed by ovirt. I can't use the user portal app. So I was trying to use the REST APIs on behalf of a normal, non-admin user to get the list of the authenticating user's VMs and their connection information.
> 
> 3.1 added support for non admin to use the api.
> i.e., this should work.
> which specific version are you using?
> 
>> 
>> Brian
>> 
>> On Oct 2, 2012, at 2:15 AM, Itamar Heim wrote:
>> 
>>> On 10/02/2012 06:28 AM, Brian Vetter wrote:
>>>> I've done two different things. First, I associated one of my groups in my directory with being a VMUser which gave members access to a particular VM. If I login with one of those users via the User portal, I can see their VM (or VMs if I do more than one). If I use the REST API (or ovirt-shell) using this user's account and password, I get an unauthorized error.
>>>> 
>>>> Similarly, I have another group that is assigned the DomainManager role. If I add this other user to that group, when I login with that user via the user portal, I see the advanced portal. If I use the REST-API (using curl) or ovirt-shell and use the user's login information, I now am authorized and see a list of VMs returned as XML (in the case of curl).
>>>> 
>>>> That said, I see all VMs in the system, not just the one assigned to the user that logged in. So this makes me think that either the REST API for getting the APIs as suggested by the article is an administrative API and there is either (a) a different rest API/uri that returns the logged in user's vms (the list that would be returned to the portal) or (b) no way to get a particular user's list of VMs authenticated as the user.
>>> 
>>> you need to specify to the api you want to view things in "user mode" via the filter header.
>>> Example:
>>> curl -X GET -H "Filter: true" -u user at domain:password http://[servername]:PORT/api/vms
>>> 
>>> 
>>> 
>>>> 
>>>> Brian
>>>> 
>>>> On Oct 1, 2012, at 10:49 PM, Yair Zaslavsky wrote:
>>>> 
>>>>> Hi Brian,
>>>>> I looked at the wiki -
>>>>> I assume you're referring to the "showVm" part.
>>>>> Have you assigned any permissions to the user that is supposed to view the VMs?
>>>>> I assume you created the VMs with the administrator user, so any other user will require to have a proper permissions in order to view these VMs
>>>>> 
>>>>> Yair
>>>>> 
>>>>> 
>>>>> On 10/02/2012 05:09 AM, Brian Vetter wrote:
>>>>>> I was trying to use both the rest api to view a user's vm information. I found that the REST APIs always returned an authentication error if the account I had logged into was not an ovirt administrator. I am guessing that either (a) I am using the wrong URL in the REST api or (b) you must be some kind of admin to access the REST APIs. I noticed the same behavior when I was using the ovirt-shell tool.
>>>>>> 
>>>>>> For example, I was trying to follow the instructions in http://wiki.ovirt.org/wiki/How_to_Connect_to_SPICE_Console_Without_Portal to get the list of VMs (presumably for the user that is logging in), I get an unauthorized error. If the user account I login with in the curl or ovirt-shell connect statement is an admin, I get the list of VMs.
>>>>>> 
>>>>>> So my question here is does the REST-API need admin privileges or am I using a url that requires admin privileges whereas some others don't. And if it is the latter, is there somewhere that documents the various rest api resources? For example, to go back to the "How to connect to Spice console ..." article, how would one use the REST API to fetch one's virtual machines, their status, and connection info for them?
>>>>>> 
>>>>>> Thanks,
>>>>>> 
>>>>>> Brian
>> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20121002/2fbd2561/attachment-0001.html>


More information about the Users mailing list