Yea, totally agree. You know where my loyalties lie wrt pragmatism &
simplicity vs. "correctness." There are definitely a lot of issues to take
into consideration here. I think the best approach to enumerating these
issues, as you mentioned in your post, is to start with existing use cases
and try to come up with some (preferably simple) mechanism to satisfy each
use case using OAuth.

Going back to the TweetDeck / TwitPic example, another possible solution
would be to forget about delegating auth tokens, and instead provide some
mechanism for third party apps to sync access tokens with one another.

If TwitPic provided an endpoint that took a single signed URI to the Twitter
API requesting the authorized user, it could verify that TweetDeck has
auth'd said user and check whether that user is also a TwitPic user, passing
that info back to TweetDeck. TweetDeck could then update its UI showing the
photo option if the user has a TwitPic account, or a "sign up for TwitPic"
link if they don't.

TwitPic could then allow TweetDeck to post on the user's behalf. TweetDeck
could pass along it's consumer key / access key with each request to
TwitPic, which TwitPic could use to look up its own access token for that
user.

One problem with this type of approach: if the user revokes TweetDeck's
token TweetDeck would still be able to make requests via TwitPic. Maybe
TwitPic could periodically re-verify that the token is active? Or maybe it
could pass along the consumer key and oauth token it's making requests on
behalf of, and the provider could authorize that both tokens are still
valid.

Mike

On Fri, Mar 27, 2009 at 9:02 AM, Eran Hammer-Lahav <[email protected]>wrote:

>  I agree and did repeat this warning in the post. The trick of course is
> to find a solution that is consistent with the simplicity of the OAuth
> design. The problem with a  more limited “sub” token is that it might not be
> enough for the other application to perform its activities.
>
>
>
> EHL
>
>
>
> Some more thoughts on this topic at
> http://www.hueniverse.com/hueniverse/2009/03/more-thoughts-on-oauth-access-sharing.html
>
>
>
>
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On Behalf
> Of *Mike Malone
> *Sent:* Friday, March 27, 2009 12:57 AM
> *To:* [email protected]
> *Subject:* [oauth] Re: Is 4-legged OAuth possible?
>
>
>
> Good post, Eran, but if you removed the token/consumer matching requirement
> entirely, and encouraged sharing token credentials, wouldn't we essentially
> be in the same boat we're currently in with usernames and passwords? (Ok,
> that may be a bit of an exaggeration, but we'd still be giving up a lot of
> what makes OAuth secure.)
>
> What if an application could request a limited use token (limited
> permissions, limited number of requests, limited lifetime, etc.) that it
> could then pass on to a third party application to make requests? Just a
> thought...
>
> Mike
>
> On Fri, Mar 27, 2009 at 12:28 AM, Eran Hammer-Lahav <[email protected]>
> wrote:
>
>
> First, let's now get carried away with the leg count... I don't think
> naming this scenario 4-legged is helpful.
>
> I think your use case could be addressed in many way and the complexity
> level should be based on the actual threat model, not some generic
> "requirements".
>
> You'll notice that while section 6.3.2 (Core 1.0) explicitly requires that
> "The Request Token matches the Consumer Key", there is no such requirement
> in section 7. This means clients are free to share the token credentials
> with other clients if permitted by the server.
>
> This is a question of managing expectations more than anything else (when a
> user authorizes an application, they usually have an idea of what the
> application is going to do, including using other applications). I would
> encourage servers to permit token usage by clients other than those the
> tokens were issued to, only after explicitly obtaining permission for that
> from the client.
>
> While it would be great to have a way to keep the chain of control active
> for sharing access, services like Twitter might be just fine with just
> allowing tokens to be shared between applications.
>
> EHL
>
> More thought on my blog
> http://www.hueniverse.com/hueniverse/2009/03/taking-oauth-beyond-the-3rd-leg.html
>
>
>
> > -----Original Message-----
> > From: [email protected] [mailto:[email protected]] On Behalf
> > Of Ivan Kirigin
> > Sent: Wednesday, March 25, 2009 9:14 AM
> > To: OAuth
> > Subject: [oauth] Is 4-legged OAuth possible?
> >
> >
> > Hi,
> >
> > I recently integrated Twitter's OAuth into my site, http://tipjoy.com
> >
> > It's a great user experience and a lot like Facebook Connect.
> >
> > But I ran into a problem when developing our API for Twitter
> > applications to use Tipjoy for payments. OAuth tokens aren't
> > transferable like a username & password. For example, a Twitter user
> > on TweetDeck can input a username & password, which lets TweetDeck
> > post a picture to TwitPic. If TweetDeck were granted OAuth access to
> > the user's Twitter account, TwitPic couldn't verify the access tokens
> > easily, and couldn't communicate to Twitter with them.
> >
> > How can we power this 4-legged OAuth? Twitter could act as an
> > intermediary, to tell TwitPic that the request from TweetDeck is
> > authorized.
> >
> > I'm told Facebook is coming up with a solution for Facebook Connect.
> > As the environment for social apps becomes more connected, this
> > communication between 3rd parties about users on the OAuth provider
> > become more important.
> >
> > What do you all think?
> >
> > Thanks,
> > Ivan
> > http://tipjoy.com
> >
> >
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OAuth" 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/oauth?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to