Hi Dan,

Thanks. I appreciate the response.

I've actually gone ahead and implemented my own OAuth Provider app for
Django along with a Python extension that does the signing and
verification. I've hardened the extension, but not yet the Django app.
When I do I'll let you know.

If I use a URL without a query string for the 3 OAuth Service URLs
everything goes along swimmingly...
 <Request url="http://www.myprovider.com/oauth/request_token/";
method="GET" />
...but when I add a query string...
 <Request url="http://www.myprovider.com/oauth/request_token/?
scope=foobar" method="GET" />
...things fall apart. I can no longer verify the Signature Base
String.

Not to worry, for now. I'll continue on without the additional
parameter (the idea for which I got from Google) and make sure
everything works, then try to add the query parameter later.

A separate issue that I had mentioned was that I found plenty of code
to do HMAC-SHA1 and PLAINTEXT verification, but nothing to do the RSA-
SHA1 which is required by the downloaded Google certificate option
(which is a whole lot easier from an administration standpoint, since
Providers don't have to register every single Consumer secret with
Google). Unfortunately, the missing bit for RSA-SHA1 signing/
verification is a decent OpenSSL extension for Python. That's the
piece that I went ahead and wrote and hardened over the weekend.

Thanks for your help. I'll keep you posted on the Django app.

-Mark


On Jan 20, 4:34 pm, "Dan (Google Employee)" <[email protected]>
wrote:
> Hi Mark,
>
> I've talked some of my more OAuth-experienced colleagues to try and
> get these issues resolved. Here are responses to the points in your
> posts:
>
> 1. Documentation/spec compliance:
> Clearing up mistakes in documentation can be accomplished by
> modifying: "iGoogle uses the draft OAuth Gadgets Extension to provide
> the URL of the gadget on whose behalf the request
> is being made to service providers" to instead read: "iGoogle uses the
> OpenSocial specification [http://code.google.com/apis/opensocial/docs/
> 0.8/reference/gadgets/#gadgets.io_method_detail] to provide the URL of
> the gadget on whose behalf the request is being made to service
> providers". This change should be made shortly.
>
> Because we've opted to use the OpenSocial specification rather than
> the OAuth Gadgets Extension, the request will include
> opensocial_app_url instead of xoauth_app_url.
>
> 2. Is Google including the scope query parameter?
> Google includes the scope query parameter: all query parameters and
> application/x-www-form-urlencoded POST parameters are included. This
> conforms to section 9.1.1 of the OAuth spec, which states that HTTP
> GET parameters added to the URLs in the query part are included in the
> signature base string.
>
> 3. Is the trailing / dropped from the query path?
> The slash is not dropped.
>
> 4. Is Google including the "xoauth_signature_publickey" value?
> Yes. All parameters are included in the base string.
>
> 5. Where is a python OAuth provider that supports RSA signature
> verification?
> This code is a good 
> example:http://code.google.com/p/oauth/source/browse/code/branches/termie/pyt...
>
> I hope this helps you get your signature base string/validation
> working. If you have any other questions or comments, please let me
> know.
>
> Thanks,
> Dan
>
> On Jan 16, 1:10 pm, Mark Paine <[email protected]> wrote:
>
> > Just another quick note:
>
> > The document at...http://code.google.com/apis/gadgets/docs/oauth.html
> > ...states that "Google uses the draft OAuth Gadgets Extension to
> > provide the URL of the gadget on whose behalf the request is being
> > made to service providers".
>
> > But the draft spec that it links to state specifically:
>
> > > This extension defines one additional OAuth parameter to be used in OAuth 
> > > requests originating from an > OAuth consumer:
> > >    xoauth_app_url:
> > >        The URL of the gadget originating the OAuth request.
> > > A consumer MUST include the xoauth_app_url parameter in requests to the 
> > > the Request Token URL and
> > > Access Token URL at the Service Provider
>
> > That's not what Google has implemented:
>
> > > opensocial_app_id%3D10744\9613425304803885
> > > opensocial_app_url%3Dhttp%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F102845035461294445368%2Fexercise_oauthtest_test.xml
> > > opensocial_owner_id%3D101691534457182538500
> > > opensocial_viewer_id%3D101691534457182538500
>
> > Clearly, Google's implementation provides the same information by way
> > of the "opensocial_app_url" information, but it cannot claim to adhere
> > to the draft spec.
>
> > I'm sorry if it sounds like I just want to bash, but that's not my
> > goal. I just want to have a clear roadmap along with clear and
> > *correct* documentation to get there. I've made a big commitment to
> > the gadgets platform and I'm hoping that Google will show the same
> > commitment.
>
> > -Mark
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"iGoogle Developer Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Gadgets-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to