Sorry, meant to say "server-less client applications". The OP is trying to 
create a client-side JS application that communicates directly to an OS 
endpoint (specifically trystack). I believe his problem is same origin policy, 
not authentication.

On Apr 23, 2012, at 12:33 PM, Adam Young wrote:

> On 04/23/2012 01:13 PM, Tres Henry wrote:
>> Adam, in what way should the OS API support server-less clients? AFAIK the 
>> options are CORS or JSONP, no?
> 
> I am not quite sure what you mean by serverless clients,  but I think the 
> answer to this is getting a real Single Sign On solution,  which is based on:
> 
> 1. Kerberos,
> 2. X509
> 
> Kerberos is likely a non starter for Web applications due to some current 
> issues with handling multiple TGTs and also cross firewalls (Kerberso tickets 
> must get served out on port 88 without jumping through considerable hoops.)
> 
> I've written up about X509 support here:
> http://wiki.openstack.org/PKI
> 
> I think that X509 Client Authentication is the right long-term approach for 
> what we are doing.  Specifically, short term X509 certificates replacing the 
> Keystone tokens as the mechanism for  SSO.
> 
> 
>> 
>> On Apr 23, 2012, at 5:50 AM, Adam Young wrote:
>> 
>>> I see this as a feature,  not a drawback.    The inability to access 
>>> portions of the HTTP protocol is there to defend against attacks such as 
>>> cross site request forgeries.  If we suppress that mechanism, we open up a 
>>> lot of security holes.
>>> 
>>> 
>>> On 04/23/2012 06:09 AM, Adrian Smith wrote:
>>>> The authentication request returns X-Storage-Url and X-Auth-Token
>>>> headers. For the JS client to see them they need to be referenced in
>>>> Access-Control-Expose-Headers. As of the last time checked, both these
>>>> headers were being stripped from the response before being presented
>>>> to JS.
>>>> 
>>>> Adrian
>>>> 
>>>> 
>>>> On 23 April 2012 10:35, Nick Lothian<nick.loth...@gmail.com>   wrote:
>>>>> Hi Adrian,
>>>>> 
>>>>> Good to know this is a known issue.
>>>>> 
>>>>> Why does the client need to see custom headers from the server anyway?
>>>>> I know the client needs to pass the authorisation header to the server, 
>>>>> but
>>>>> I haven't seen any of the APIs yet that return custom headers. (It's 
>>>>> likely
>>>>> I'm missing them though)
>>>>> 
>>>>> Nick
>>>>> 
>>>>> On Apr 23, 2012 5:40 PM, "Adrian Smith"<adr...@17od.com>   wrote:
>>>>>> Hi Nick,
>>>>>> 
>>>>>> I did some work with CORS a few months back [1].
>>>>>> 
>>>>>> At the time I couldn't get any browser to work properly with CORS so I
>>>>>> just parked the code. The problem was lack of support for the
>>>>>> Access-Control-Expose-Headers header.
>>>>>> 
>>>>>> According to the Chrome bug report [2] this issue may well be fixed
>>>>>> now so I need to retest.
>>>>>> 
>>>>>> Adrian
>>>>>> 
>>>>>> [1]
>>>>>> http://www.mail-archive.com/openstack@lists.launchpad.net/msg07219.html
>>>>>> [2] http://code.google.com/p/chromium/issues/detail?id=87338
>>>>>> 
>>>>>> 
>>>>>> On 23 April 2012 06:19, Nick Lothian<nick.loth...@gmail.com>   wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I've been playing with the Nova APIs from Javascript, and I've run into
>>>>>>> a
>>>>>>> problem.
>>>>>>> 
>>>>>>> The very first thing one needs to do to use the APIs is to get a token.
>>>>>>> 
>>>>>>> That requires a POST to the API endpoint. Using curl&   trystack that
>>>>>>> looks
>>>>>>> like this:
>>>>>>> 
>>>>>>> $ curl -k -X 'POST' -v https://nova-api.trystack.org:5443/v2.0/tokens -d
>>>>>>> '{"auth":{"passwordCredentials":{"username": "<username>",
>>>>>>> "password":"<password>"}}}' -H 'Content-type: application/json'
>>>>>>> 
>>>>>>> 
>>>>>>> The Javascript equivalent (using JQuery) is:
>>>>>>> 
>>>>>>>     $.ajax({
>>>>>>>         url: "https://nova-api.trystack.org:5443/v2.0/tokens";,
>>>>>>>         type: 'POST',
>>>>>>>         headers: {"Content-Type": "application/json"},
>>>>>>>         data:  {"auth":{"passwordCredentials":{"username":"<username>",
>>>>>>> "password":"<password>"}}},
>>>>>>>         success: function(data) { alert(data); }
>>>>>>>     });
>>>>>>> 
>>>>>>> That fails because the call is cross-domain, and Nova doesn't support
>>>>>>> CORS
>>>>>>> (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing).<script>
>>>>>>> based
>>>>>>> cross-domain requests only supports GET requests, so that doesn't work
>>>>>>> either.
>>>>>>> 
>>>>>>> I have raised a bug: https://bugs.launchpad.net/nova/+bug/987044, but
>>>>>>> I'm
>>>>>>> really hoping someone can point out something obvious I'm missing here.
>>>>>>> 
>>>>>>> Regards
>>>>>>>   Nick Lothian
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Mailing list: https://launchpad.net/~openstack
>>>>>>> Post to     : openstack@lists.launchpad.net
>>>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>> 
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~openstack
>>>>> Post to     : openstack@lists.launchpad.net
>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>> 
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~openstack
>>>> Post to     : openstack@lists.launchpad.net
>>>> Unsubscribe : https://launchpad.net/~openstack
>>>> More help   : https://help.launchpad.net/ListHelp
>>> 
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to     : openstack@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
> 


_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to