You can use PostMessage if you control both the client and AS. Google uses it in there identity toolkit if you use there g+ Java Script client. http://www.riskcompletefailure.com/2013/03/postmessage-oauth-20.html
There is some example code at https://code.google.com/p/oauth2-postmessage-profile In OpenID Connect the same technique is used for session management. http://openid.net/specs/openid-connect-session-1_0-18.html You can do it but it would be custom to your AS. John B. On Feb 5, 2014, at 6:22 PM, <philip.kers...@stfc.ac.uk> <philip.kers...@stfc.ac.uk> wrote: > Thanks all - some interesting points raised. > > I've used the Authorisation Code grant for a couple of other use cases on > other projects. The Implicit Grant is less desirable but it fits here for me > because of the particular constraints of the client and its hosting > environment. The level of security required is low. > > I'd be interested in finding out about the examples that use a PostMessage > approach that you mention John. > > Phil > > On 5 Feb 2014, at 20:33, John Bradley wrote: > >> The implicit flow is intended to get a access code to JS clients in the >> browser. It is true that you could use the code flow, but only if the AS >> token endpoint allowed CORES requests. >> >> Given that the client is in the UA and has a direct TLS connection to the >> Authorization endpoint, from the clients point of view the call to the >> authorization endpoint and the call to the token endpoint are equally >> secure. >> >> Given that Java Script in the browser typically can't protect a client >> secret, the two flows are about equal in security for the AS. >> >> It is true that people use implicit for things that they probably shouldn't, >> but to get a token to Java Script in the UA implicit is probably the best >> way to do it without jumping through extra hoops that don't add anything. >> >> At some point we need to do a PostMessage binding for Implicit as an option >> passing the token in the fragment, many implementations do that today for >> JS clients but it is not interoperable without a profile. >> >> John B. >> >> >> On Feb 5, 2014, at 4:40 PM, Prateek Mishra <prateek.mis...@oracle.com> wrote: >> >>> Well, there is a fundamental difference between the security properties of >>> implicit vs. code flow: in the former access tokens are passed via URLs >>> (protected only by the fragment URI requirement), whereas in the >>> latter this is never the case. So I do see a foundational difference in >>> security properties between the two. The core issue the type of artifact >>> exposed in network flows in both the models. >>> >>> Another way to put it would be: the authorization code flow is a >>> re-purposing of the well known SAML SSO Web Artifact profile which has a >>> long history of deployment and use. The implicit flow "simplifies" that but >>> there >>> are definitely some consequences from a security point of view. >>> >>> I can see that certain low-value clients (or even better, clients for whom >>> the client issuing entity assumes no liability :-) can reasonably utilize >>> the implicit flow. But it would be good if its weaknesses were kept in mind. >>> >>> - prateek >>>> While you should always factor in an analysis of the security properties >>>> of your client, you should also realize that by hosting the client >>>> completely inside the browser, most of the benefits of the code flow go >>>> away. You're no longer able to separate the knowledge of different parts >>>> of the protocol, and so much of what you're protecting with the auth code >>>> doesn't actually apply anymore. >>>> >>>> Also, if the user is using a user agent that is not conformant or up to >>>> date, there's no need to sniff OAuth because it can just steal the primary >>>> credentials from the auth server connection directly -- so the counter >>>> argument is a bit of a red herring. Yes, it's a requirement for this to >>>> work properly, but it's a requirement for many other things to work >>>> properly also. >>>> >>>> -- Justin >>>> >>>> On Feb 5, 2014, at 1:33 PM, Prateek Mishra <prateek.mis...@oracle.com> >>>> wrote: >>>> >>>>> Well, this means you are completely dependent on a security model that is >>>>> based on a very specific property of HTTP >>>>> redirects. The User agent MUST NOT forward any component of a fragment >>>>> URI in a redirect - you are depending on the user having >>>>> a conformant and uptodate user agent. >>>>> >>>>> I would say that the authorization code grant has more robust security >>>>> properties. From my perspective depending >>>>> on this type of subtle and complex requirement on other layers of the >>>>> protocol stack is a considerable risk. >>>>> >>>>> So you should factor that in your analysis of the security properties of >>>>> your client. >>>>> >>>>> - prateek >>>>>> Hi Phil, >>>>>> >>>>>> the server won't see the access-code, cause it is returned within the >>>>>> hash >>>>>> that stays at the client-site: >>>>>> http://.../returnUri#access_code=ABCDE. >>>>>> >>>>>> By definition, the returnURI has to be the URI that was registered for >>>>>> the >>>>>> client. IMHO, you are only allowed to add additional URL-Parameters. >>>>>> >>>>>> In my opinion, your use-case suits _very_ well to the implicit flow. >>>>>> >>>>>> Wishes, >>>>>> Manfred >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -----Ursprüngliche Nachricht----- >>>>>> Von: OAuth [mailto:oauth-boun...@ietf.org] Im Auftrag von >>>>>> philip.kers...@stfc.ac.uk >>>>>> Gesendet: Mittwoch, 5. Februar 2014 10:12 >>>>>> An: oauth@ietf.org >>>>>> Betreff: [OAUTH-WG] Suitable grant type for a Javascript use case >>>>>> >>>>>> Hi all, >>>>>> >>>>>> I'm looking to apply OAuth for a particular use case with a Javascript >>>>>> client and would like to get some guidance with this. Bear with me as >>>>>> I'm >>>>>> new to this list. >>>>>> >>>>>> I have a Javascript client which needs to be deployed on a number of >>>>>> different sites for which we don't have control over the server-side >>>>>> code. >>>>>> The client needs to obtain an access token to submit data to another 3rd >>>>>> party site on behalf of the user. >>>>>> >>>>>> We've looked at the Implicit Grant type >>>>>> (http://tools.ietf.org/html/rfc6749#section-4.2). Our third party site >>>>>> hosts an Authorisation server and Resource Server. The client provides a >>>>>> redirect URI to return the token to. My understanding is that the >>>>>> redirect >>>>>> URI is a security measure to ensure the token is returned to an endpoint >>>>>> known to the Authorisation Server. >>>>>> >>>>>> However, in my case it is only the Javascript client that needs the >>>>>> token. >>>>>> I can see how the token can be passed to the Javascript via step E in >>>>>> figure >>>>>> 4. However, we have limited control over the site hosting the Javascript >>>>>> ('Web-hosted Client Resource' in Figure 4). We can host Javascript but >>>>>> we >>>>>> can't easily alter any server-side code. There's a danger that the >>>>>> server-side code will choke when it receives the redirect the URI >>>>>> containing >>>>>> the access token. I'm wondering if there is a suitable workaround for >>>>>> this. >>>>>> Can we dispense with the redirect URI or does this compromise security >>>>>> too >>>>>> far? Perhaps we should be looking at an implementing an alternative >>>>>> grant >>>>>> type? >>>>>> >>>>>> Any help much appreciated. >>>>>> >>>>>> Cheers, >>>>>> Phil-- >>>>>> Scanned by iCritical. >>>>>> _______________________________________________ >>>>>> OAuth mailing list >>>>>> OAuth@ietf.org >>>>>> https://www.ietf.org/mailman/listinfo/oauth >>>>>> >>>>>> _______________________________________________ >>>>>> OAuth mailing list >>>>>> OAuth@ietf.org >>>>>> https://www.ietf.org/mailman/listinfo/oauth >>>>> _______________________________________________ >>>>> OAuth mailing list >>>>> OAuth@ietf.org >>>>> https://www.ietf.org/mailman/listinfo/oauth >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org >> https://www.ietf.org/mailman/listinfo/oauth > > -- > Scanned by iCritical.
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth