[Users] Authentication for REST APIs?

Itamar Heim iheim at redhat.com
Tue Oct 2 15:27:01 UTC 2012


On 10/02/2012 05:20 PM, Brian Vetter wrote:
>> 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.

i think you should get an empty list and not a 401 in any case, but just 
to make sure - you have the user role on a specific VM and you don't see it?
michael - thoughts?
maybe this was fixed post ovirt 3.1 fedora release?

>
> 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
>>>
>>
>>
>





More information about the Users mailing list