Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Allen Tom
At the very least, the security considerations section should say that 
the OP should have obtained the user's consent to authorize the Access 
Token before issuing it to the RP. This means that the Access Token 
should not be returned via checkid_immediate unless the user had 
approved the token on a previous checkid_setup request.


There are federation scenarios (ie: close partnerships, etc) where user 
consent might not be necessary, so obtaining the user's consent is a 
SHOULD (or STRONGLY RECOMMENDED) rather than a MUST.


Allen


Breno de Medeiros wrote:

I can see some federation scenarios where admins might want to
configure auto-approvals for specific set of scopes for some set of
users (essentially OpenID as a single sign-on mechanism with data
transport). Putting this restriction directly into the standard as a
MUST or SHOULD would mean that libraries would likely enforce checks
(maybe without a configuration option) and make such deployments hard.

Maybe we should have a security considerations sections?

On Wed, May 13, 2009 at 5:05 PM, Andrew Arnott  wrote:
  

I would expect a decent OP to consider that it goes without saying that
checkid_immediate wouldn't have a reasonable OAuth token authorizing
scenario and block it.  So I agree it's good to call it out in the spec.
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death
your right to say it." - S. G. Tallentyre


On Tue, May 12, 2009 at 10:06 PM, Allen Tom  wrote:


Hi Luke,

I don't think there's a session fixation issue with Hybrid, but I believe
that several individuals raised concerns regarding auto-approval of OAuth
tokens using regular OAuth, which is essentially the same thing as
checkid_immediate mode in Hybrid.

Is there really a reason why an RP would need the OAuth token returned in
a checkid_immediate response if the user had previously authorized one on an
earlier visit?

Allen


Luke Shepard wrote:

(hijacking thread a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn’t affect the
hybrid spec in the same way.

With the OAuth session fixation vulnerability, the problem comes if the
attacker does the following:

Request a request token by pretending to request access
Force the user to go to a url using that request token
Muah! Calculate what the return_to url would have been, and use the
pre-known request token to gain access to the user’s account info.

In the OAuth hybrid flow, there is no pre-registered request token;
instead, the token is returned, securely, in the URL. It is protected by the
fact that OpenID requires the realm to match the return_to, and many
providers can require that the Oauth request realm also match the OpenID
realm. In this flow, there’s no way for the attacker to intercept the
request_token before it makes its way back to the correct user.

Perhaps the problem is more subtle than I understood, but I just want  to
make sure I’m clear on the issues.

On 5/12/09 9:48 PM, "Allen Tom"  wrote:

Hi Nat,

Here you go:


http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
      

Hi.

Where can I find the most current version of OpenID / OAuth hybrid spec
draft?
I would like to look at it to see if I can borrow as much from the
draft for what I am thinking right now.




___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs



___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs

  

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs







  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Allen Tom
I like the idea of issuing a short lived Access Token that has to be 
periodically refreshed using checkid_immdiate , implying  that the user 
needs to be signed-in to  both the OP (and presumably the RP) in order 
to refresh the credentials. This makes a lot of sense from a security 
perspective, and helps to mitigate the scenario where an RP that the 
user doesn't actively use has persistent access to user's data.


However, I believe that the conventional use case for OAuth is to issue 
persistent credentials to the RP to allow the RP to access services on 
behalf of the user, independent of the user having an active browser 
session at either the OP or RP.


Allen


Luke Shepard wrote:

As I suggested, an OP may want to give an updated session via 
checkid-immediate. Facebook Connect does this, and it seems like a legit use 
case to me.


From: Andrew Arnott 
To: Allen Tom 
Cc: Luke Shepard; OpenID Specs Mailing List 
Sent: Wed May 13 17:05:00 2009
Subject: Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

I would expect a decent OP to consider that it goes without saying that 
checkid_immediate wouldn't have a reasonable OAuth token authorizing scenario 
and block it.  So I agree it's good to call it out in the spec.
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your 
right to say it." - S. G. Tallentyre


On Tue, May 12, 2009 at 10:06 PM, Allen Tom 
mailto:a...@yahoo-inc.com>> wrote:
Hi Luke,

I don't think there's a session fixation issue with Hybrid, but I believe that 
several individuals raised concerns regarding auto-approval of OAuth tokens 
using regular OAuth, which is essentially the same thing as checkid_immediate 
mode in Hybrid.

Is there really a reason why an RP would need the OAuth token returned in a 
checkid_immediate response if the user had previously authorized one on an 
earlier visit?

Allen


Luke Shepard wrote:
(hijacking thread a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn’t affect the 
hybrid spec in the same way.

With the OAuth session fixation vulnerability, the problem comes if the 
attacker does the following:


 1.  Request a request token by pretending to request access
 2.  Force the user to go to a url using that request token
 3.  Muah! Calculate what the return_to url would have been, and use the 
pre-known request token to gain access to the user’s account info.

In the OAuth hybrid flow, there is no pre-registered request token; instead, 
the token is returned, securely, in the URL. It is protected by the fact that 
OpenID requires the realm to match the return_to, and many providers can 
require that the Oauth request realm also match the OpenID realm. In this flow, 
there’s no way for the attacker to intercept the request_token before it makes 
its way back to the correct user.

Perhaps the problem is more subtle than I understood, but I just want  to make 
sure I’m clear on the issues.

On 5/12/09 9:48 PM, "Allen Tom" http://a...@yahoo-inc.com>> 
wrote:

Hi Nat,

Here you go:

http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
  

Hi.

Where can I find the most current version of OpenID / OAuth hybrid spec draft?
I would like to look at it to see if I can borrow as much from the
draft for what I am thinking right now.





___
specs mailing list
specs@openid.net<http://specs@openid.net>
http://openid.net/mailman/listinfo/specs



___
specs mailing list
specs@openid.net<mailto:specs@openid.net>
http://openid.net/mailman/listinfo/specs


  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Breno de Medeiros
I can see some federation scenarios where admins might want to
configure auto-approvals for specific set of scopes for some set of
users (essentially OpenID as a single sign-on mechanism with data
transport). Putting this restriction directly into the standard as a
MUST or SHOULD would mean that libraries would likely enforce checks
(maybe without a configuration option) and make such deployments hard.

Maybe we should have a security considerations sections?

On Wed, May 13, 2009 at 5:05 PM, Andrew Arnott  wrote:
> I would expect a decent OP to consider that it goes without saying that
> checkid_immediate wouldn't have a reasonable OAuth token authorizing
> scenario and block it.  So I agree it's good to call it out in the spec.
> --
> Andrew Arnott
> "I [may] not agree with what you have to say, but I'll defend to the death
> your right to say it." - S. G. Tallentyre
>
>
> On Tue, May 12, 2009 at 10:06 PM, Allen Tom  wrote:
>>
>> Hi Luke,
>>
>> I don't think there's a session fixation issue with Hybrid, but I believe
>> that several individuals raised concerns regarding auto-approval of OAuth
>> tokens using regular OAuth, which is essentially the same thing as
>> checkid_immediate mode in Hybrid.
>>
>> Is there really a reason why an RP would need the OAuth token returned in
>> a checkid_immediate response if the user had previously authorized one on an
>> earlier visit?
>>
>> Allen
>>
>>
>> Luke Shepard wrote:
>>
>> (hijacking thread a bit)
>>
>> Allen-
>>
>> If I understand it correctly, the OAuth security issue doesn’t affect the
>> hybrid spec in the same way.
>>
>> With the OAuth session fixation vulnerability, the problem comes if the
>> attacker does the following:
>>
>> Request a request token by pretending to request access
>> Force the user to go to a url using that request token
>> Muah! Calculate what the return_to url would have been, and use the
>> pre-known request token to gain access to the user’s account info.
>>
>> In the OAuth hybrid flow, there is no pre-registered request token;
>> instead, the token is returned, securely, in the URL. It is protected by the
>> fact that OpenID requires the realm to match the return_to, and many
>> providers can require that the Oauth request realm also match the OpenID
>> realm. In this flow, there’s no way for the attacker to intercept the
>> request_token before it makes its way back to the correct user.
>>
>> Perhaps the problem is more subtle than I understood, but I just want  to
>> make sure I’m clear on the issues.
>>
>> On 5/12/09 9:48 PM, "Allen Tom"  wrote:
>>
>> Hi Nat,
>>
>> Here you go:
>>
>>
>> http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html
>>
>> We might need to revise the spec to not support checkid_immediate for
>> the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
>> bad thing, in light of the recent OAuth security issue.
>>
>> Allen
>>
>>
>>
>>
>>
>> Nat Sakimura wrote:
>> > Hi.
>> >
>> > Where can I find the most current version of OpenID / OAuth hybrid spec
>> > draft?
>> > I would like to look at it to see if I can borrow as much from the
>> > draft for what I am thinking right now.
>> >
>> >
>>
>> ___
>> specs mailing list
>> specs@openid.net
>> http://openid.net/mailman/listinfo/specs
>>
>>
>>
>> ___
>> specs mailing list
>> specs@openid.net
>> http://openid.net/mailman/listinfo/specs
>>
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Andrew Arnott
Luke, do you mean some kind of OAuth access token renewal process over
checkid_immediate?  Sounds interesting, although if renewal was mandated by
the OP I would expect it to be so the user could explicitly validate the RP
should still be authorized.  Otherwise why not just issue a longer-lasting
token in the first place?
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death
your right to say it." - S. G. Tallentyre


On Wed, May 13, 2009 at 5:13 PM, Luke Shepard  wrote:

> As I suggested, an OP may want to give an updated session via
> checkid-immediate. Facebook Connect does this, and it seems like a legit use
> case to me.
>
> 
> From: Andrew Arnott 
> To: Allen Tom 
> Cc: Luke Shepard; OpenID Specs Mailing List 
> Sent: Wed May 13 17:05:00 2009
> Subject: Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?
>
> I would expect a decent OP to consider that it goes without saying that
> checkid_immediate wouldn't have a reasonable OAuth token authorizing
> scenario and block it.  So I agree it's good to call it out in the spec.
> --
> Andrew Arnott
> "I [may] not agree with what you have to say, but I'll defend to the death
> your right to say it." - S. G. Tallentyre
>
>
> On Tue, May 12, 2009 at 10:06 PM, Allen Tom  a...@yahoo-inc.com>> wrote:
> Hi Luke,
>
> I don't think there's a session fixation issue with Hybrid, but I believe
> that several individuals raised concerns regarding auto-approval of OAuth
> tokens using regular OAuth, which is essentially the same thing as
> checkid_immediate mode in Hybrid.
>
> Is there really a reason why an RP would need the OAuth token returned in a
> checkid_immediate response if the user had previously authorized one on an
> earlier visit?
>
> Allen
>
>
> Luke Shepard wrote:
> (hijacking thread a bit)
>
> Allen-
>
> If I understand it correctly, the OAuth security issue doesn't affect the
> hybrid spec in the same way.
>
> With the OAuth session fixation vulnerability, the problem comes if the
> attacker does the following:
>
>
>  1.  Request a request token by pretending to request access
>  2.  Force the user to go to a url using that request token
>  3.  Muah! Calculate what the return_to url would have been, and use the
> pre-known request token to gain access to the user's account info.
>
> In the OAuth hybrid flow, there is no pre-registered request token;
> instead, the token is returned, securely, in the URL. It is protected by the
> fact that OpenID requires the realm to match the return_to, and many
> providers can require that the Oauth request realm also match the OpenID
> realm. In this flow, there's no way for the attacker to intercept the
> request_token before it makes its way back to the correct user.
>
> Perhaps the problem is more subtle than I understood, but I just want  to
> make sure I'm clear on the issues.
>
> On 5/12/09 9:48 PM, "Allen Tom" http://atom@
> yahoo-inc.com>> wrote:
>
> Hi Nat,
>
> Here you go:
>
>
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html
>
> We might need to revise the spec to not support checkid_immediate for
> the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
> bad thing, in light of the recent OAuth security issue.
>
> Allen
>
>
>
>
>
> Nat Sakimura wrote:
> > Hi.
> >
> > Where can I find the most current version of OpenID / OAuth hybrid spec
> draft?
> > I would like to look at it to see if I can borrow as much from the
> > draft for what I am thinking right now.
> >
> >
>
> ___
> specs mailing list
> specs@openid.net<http://specs@openid.net>
> http://openid.net/mailman/listinfo/specs
>
>
>
> ___
> specs mailing list
> specs@openid.net<mailto:specs@openid.net>
> http://openid.net/mailman/listinfo/specs
>
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Luke Shepard
As I suggested, an OP may want to give an updated session via 
checkid-immediate. Facebook Connect does this, and it seems like a legit use 
case to me.


From: Andrew Arnott 
To: Allen Tom 
Cc: Luke Shepard; OpenID Specs Mailing List 
Sent: Wed May 13 17:05:00 2009
Subject: Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

I would expect a decent OP to consider that it goes without saying that 
checkid_immediate wouldn't have a reasonable OAuth token authorizing scenario 
and block it.  So I agree it's good to call it out in the spec.
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your 
right to say it." - S. G. Tallentyre


On Tue, May 12, 2009 at 10:06 PM, Allen Tom 
mailto:a...@yahoo-inc.com>> wrote:
Hi Luke,

I don't think there's a session fixation issue with Hybrid, but I believe that 
several individuals raised concerns regarding auto-approval of OAuth tokens 
using regular OAuth, which is essentially the same thing as checkid_immediate 
mode in Hybrid.

Is there really a reason why an RP would need the OAuth token returned in a 
checkid_immediate response if the user had previously authorized one on an 
earlier visit?

Allen


Luke Shepard wrote:
(hijacking thread a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn’t affect the 
hybrid spec in the same way.

With the OAuth session fixation vulnerability, the problem comes if the 
attacker does the following:


 1.  Request a request token by pretending to request access
 2.  Force the user to go to a url using that request token
 3.  Muah! Calculate what the return_to url would have been, and use the 
pre-known request token to gain access to the user’s account info.

In the OAuth hybrid flow, there is no pre-registered request token; instead, 
the token is returned, securely, in the URL. It is protected by the fact that 
OpenID requires the realm to match the return_to, and many providers can 
require that the Oauth request realm also match the OpenID realm. In this flow, 
there’s no way for the attacker to intercept the request_token before it makes 
its way back to the correct user.

Perhaps the problem is more subtle than I understood, but I just want  to make 
sure I’m clear on the issues.

On 5/12/09 9:48 PM, "Allen Tom" http://a...@yahoo-inc.com>> 
wrote:

Hi Nat,

Here you go:

http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
> Hi.
>
> Where can I find the most current version of OpenID / OAuth hybrid spec draft?
> I would like to look at it to see if I can borrow as much from the
> draft for what I am thinking right now.
>
>

___
specs mailing list
specs@openid.net<http://specs@openid.net>
http://openid.net/mailman/listinfo/specs



___
specs mailing list
specs@openid.net<mailto:specs@openid.net>
http://openid.net/mailman/listinfo/specs


<>___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-13 Thread Andrew Arnott
I would expect a decent OP to consider that it goes without saying that
checkid_immediate wouldn't have a reasonable OAuth token authorizing
scenario and block it.  So I agree it's good to call it out in the spec.
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death
your right to say it." - S. G. Tallentyre


On Tue, May 12, 2009 at 10:06 PM, Allen Tom  wrote:

>  Hi Luke,
>
> I don't think there's a session fixation issue with Hybrid, but I believe
> that several individuals raised concerns regarding auto-approval of OAuth
> tokens using regular OAuth, which is essentially the same thing as
> checkid_immediate mode in Hybrid.
>
> Is there really a reason why an RP would need the OAuth token returned in a
> checkid_immediate response if the user had previously authorized one on an
> earlier visit?
>
> Allen
>
>
> Luke Shepard wrote:
>
> (hijacking thread a bit)
>
> Allen-
>
> If I understand it correctly, the OAuth security issue doesn’t affect the
> hybrid spec in the same way.
>
> With the OAuth session fixation vulnerability, the problem comes if the
> attacker does the following:
>
>
>1. Request a request token by pretending to request access
>2. Force the user to go to a url using that request token
>3. Muah! Calculate what the return_to url would have been, and use the
>pre-known request token to gain access to the user’s account info.
>
>
> In the OAuth hybrid flow, there is no pre-registered request token;
> instead, the token is returned, securely, in the URL. It is protected by the
> fact that OpenID requires the realm to match the return_to, and many
> providers can require that the Oauth request realm also match the OpenID
> realm. In this flow, there’s no way for the attacker to intercept the
> request_token before it makes its way back to the correct user.
>
> Perhaps the problem is more subtle than I understood, but I just want  to
> make sure I’m clear on the issues.
>
> On 5/12/09 9:48 PM, "Allen Tom"  wrote:
>
>  Hi Nat,
>
> Here you go:
>
>
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html
>
> We might need to revise the spec to not support checkid_immediate for
> the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
> bad thing, in light of the recent OAuth security issue.
>
> Allen
>
>
>
>
>
> Nat Sakimura wrote:
> > Hi.
> >
> > Where can I find the most current version of OpenID / OAuth hybrid spec
> draft?
> > I would like to look at it to see if I can borrow as much from the
> > draft for what I am thinking right now.
> >
> >
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Most current version of OpenID / OAuth hybrid spec draft?

2009-05-13 Thread Breno de Medeiros
While I agree that we should look into the auto-issuing aspects
carefully, and the recent OAuth security issue is a reminder that we
should all perform due security dilligence, the session fixation
attack itself is impossible here because the request token step is
omitted.

On Tue, May 12, 2009 at 9:48 PM, Allen Tom  wrote:
> Hi Nat,
>
> Here you go:
>
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html
>
> We might need to revise the spec to not support checkid_immediate for the
> Hybrid flow, becuase auto-issuing OAuth access tokens is probably a bad
> thing, in light of the recent OAuth security issue.
>
> Allen
>
>
>
>
>
> Nat Sakimura wrote:
>>
>> Hi.
>>
>> Where can I find the most current version of OpenID / OAuth hybrid spec
>> draft?
>> I would like to look at it to see if I can borrow as much from the
>> draft for what I am thinking right now.
>>
>>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-12 Thread Luke Shepard
I can certainly think of examples where you would NOT need the token returned, 
but I can also think of examples where it's useful. I'd be wary of writing 
something that prohibits or recommends against it in conjunction with the OAuth 
security vulnerability, because I think they are unrelated.

For example, an OP may want to re-send a freshly authorized token, if the 
previous one has timed out. This is how Facebook Connect behaves (if you 
re-visit a site more than an hour after the first auth, then a background ping 
will refresh the token).


On 5/12/09 10:06 PM, "Allen Tom"  wrote:

Hi Luke,

I don't think there's a session fixation issue with Hybrid, but I believe that 
several individuals raised concerns regarding auto-approval of OAuth tokens 
using regular OAuth, which is essentially the same thing as checkid_immediate 
mode in Hybrid.

Is there really a reason why an RP would need the OAuth token returned in a 
checkid_immediate response if the user had previously authorized one on an 
earlier visit?

Allen


Luke Shepard wrote:
Does OAuth security vulnerability affect OpenID/OAuth hybrid? (hijacking thread 
a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn't affect the 
hybrid spec in the same way.

With the OAuth session fixation vulnerability, the problem comes if the 
attacker does the following:



 1.  Request a request token by pretending to request access
 2.  Force the user to go to a url using that request token
 3.  Muah! Calculate what the return_to url would have been, and use the 
pre-known request token to gain access to the user's account info.
 4.

In the OAuth hybrid flow, there is no pre-registered request token; instead, 
the token is returned, securely, in the URL. It is protected by the fact that 
OpenID requires the realm to match the return_to, and many providers can 
require that the Oauth request realm also match the OpenID realm. In this flow, 
there's no way for the attacker to intercept the request_token before it makes 
its way back to the correct user.

Perhaps the problem is more subtle than I understood, but I just want  to make 
sure I'm clear on the issues.

On 5/12/09 9:48 PM, "Allen Tom"  wrote:


Hi Nat,

Here you go:

 
http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
> Hi.
>
> Where can I find the most current version of OpenID / OAuth hybrid spec draft?
> I would like to look at it to see if I can borrow as much from the
> draft for what I am thinking right now.
>
>

___
specs mailing list
 specs@openid.net
 http://openid.net/mailman/listinfo/specs




___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-12 Thread Allen Tom

Hi Luke,

I don't think there's a session fixation issue with Hybrid, but I 
believe that several individuals raised concerns regarding auto-approval 
of OAuth tokens using regular OAuth, which is essentially the same thing 
as checkid_immediate mode in Hybrid.


Is there really a reason why an RP would need the OAuth token returned 
in a checkid_immediate response if the user had previously authorized 
one on an earlier visit?


Allen


Luke Shepard wrote:

(hijacking thread a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn't affect 
the hybrid spec in the same way.


With the OAuth session fixation vulnerability, the problem comes if 
the attacker does the following:


   1. Request a request token by pretending to request access
   2. Force the user to go to a url using that request token
   3. Muah! Calculate what the return_to url would have been, and use
  the pre-known request token to gain access to the user's account
  info.


In the OAuth hybrid flow, there is no pre-registered request token; 
instead, the token is returned, securely, in the URL. It is protected 
by the fact that OpenID requires the realm to match the return_to, and 
many providers can require that the Oauth request realm also match the 
OpenID realm. In this flow, there's no way for the attacker to 
intercept the request_token before it makes its way back to the 
correct user.


Perhaps the problem is more subtle than I understood, but I just want 
 to make sure I'm clear on the issues.


On 5/12/09 9:48 PM, "Allen Tom"  wrote:

Hi Nat,

Here you go:


http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is
probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
> Hi.
>
> Where can I find the most current version of OpenID / OAuth
hybrid spec draft?
> I would like to look at it to see if I can borrow as much from the
> draft for what I am thinking right now.
>
>  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs



___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Does OAuth security vulnerability affect OpenID/OAuth hybrid?

2009-05-12 Thread Luke Shepard
(hijacking thread a bit)

Allen-

If I understand it correctly, the OAuth security issue doesn't affect the 
hybrid spec in the same way.

With the OAuth session fixation vulnerability, the problem comes if the 
attacker does the following:


 1.  Request a request token by pretending to request access
 2.  Force the user to go to a url using that request token
 3.  Muah! Calculate what the return_to url would have been, and use the 
pre-known request token to gain access to the user's account info.

In the OAuth hybrid flow, there is no pre-registered request token; instead, 
the token is returned, securely, in the URL. It is protected by the fact that 
OpenID requires the realm to match the return_to, and many providers can 
require that the Oauth request realm also match the OpenID realm. In this flow, 
there's no way for the attacker to intercept the request_token before it makes 
its way back to the correct user.

Perhaps the problem is more subtle than I understood, but I just want  to make 
sure I'm clear on the issues.

On 5/12/09 9:48 PM, "Allen Tom"  wrote:

Hi Nat,

Here you go:

http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a
bad thing, in light of the recent OAuth security issue.

Allen





Nat Sakimura wrote:
> Hi.
>
> Where can I find the most current version of OpenID / OAuth hybrid spec draft?
> I would like to look at it to see if I can borrow as much from the
> draft for what I am thinking right now.
>
>

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: Most current version of OpenID / OAuth hybrid spec draft?

2009-05-12 Thread Allen Tom

Hi Nat,

Here you go:

http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

We might need to revise the spec to not support checkid_immediate for 
the Hybrid flow, becuase auto-issuing OAuth access tokens is probably a 
bad thing, in light of the recent OAuth security issue.


Allen





Nat Sakimura wrote:

Hi.

Where can I find the most current version of OpenID / OAuth hybrid spec draft?
I would like to look at it to see if I can borrow as much from the
draft for what I am thinking right now.

  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Most current version of OpenID / OAuth hybrid spec draft?

2009-05-12 Thread Nat Sakimura
Hi.

Where can I find the most current version of OpenID / OAuth hybrid spec draft?
I would like to look at it to see if I can borrow as much from the
draft for what I am thinking right now.

-- 
Nat Sakimura (=nat)
http://www.sakimura.org/en/
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2009-01-07 Thread Dirk Balfanz
On Sun, Nov 30, 2008 at 3:07 PM, Manger, James H <
james.h.man...@team.telstra.com> wrote:

>
> > here is a non-security reason [for openid.oauth.consumer in the
> response]:
> > Imagine the Consumer controlling more than
> > one consumer key, and also imagine that the consumer is implemented as a
> > server farms of thousands of machines. The machine receiving the response
> > is not necessarily the same machine as the machine that made the request,
> > and it response-receiver needs to know the context of the request.
>
>
> The openid.return_to parameter is already available to relay RP context
> from a request to a response. Adding second way to do the same thing does
> not help. An app can, for instance, use
>  openid.return_to=https://example.com/rp?contex=26532
>
> Returning openid.oauth.consumer and openid.oauth.scope cannot help if
> apps are not doing anything with them (and the draft spec doesn't suggest
> doing anything). If a paranoid crypto geek in future finds a reason to
> return the parameters the apps built before that point will still be
> broken.
>

Reviving this thread.

I think you're right. I'm removing the consumer parameter from the response.
I have posted a new version of the spec on
http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

Dirk.


>
>
>
> >> Is the app supposed to check that the value in the response matches the
> >> value in the request?
> >> Are there security implications of not doing the check?
> >> I suspect it can be omitted (openid.return_to is still present and
> signed
> >> if the app want to confirm the response is meant for itself).
>
> James Manger
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-03 Thread Allen Tom
Martin Atkins wrote:
> There's also the need to have something to point at as what the user 
> trusted, so that other applications can't piggy-back off the trust of a 
> popular app.
>
>   
Hi Martin,

The OAuth access token is the credential that is issued to the instance 
of the application that was authorized. Although the SP might not be 
able to identify the application, the Access Token can be used to 
identify the instance of whatever app it was that was authorized by the 
user.

> It doesn't matter so much if the former is compromised, but it is very 
> important that the second isn't compromised.
>   
All applications are expected to secure store their Access Token Secret, 
which was issued along with the AT.

> It seems like there needs to be two tokens here. One is provisioned by 
> going through some registration flow on the SP site,
This is the OAuth Consumer Key and Consumer Secret. The CK identifies 
the application, and the CS is used to sign requests on behalf of the 
CK. Unfortunately, the CS can be easily compromised for all non-server 
based applications.

>  and the other is 
> provisioned automatically *by each installation* of a desktop/mobile 
> app. The latter is known only to that installation and so a user trusts 
> only their installation of the app, not an installation of the same app 
> on someone else's system.
>
>   
Yup, this is the OAuth Access Token and Access Token Secret.


> I guess the flow I'm imagining is as follows:
>
> * App author applies for an application identifier through web forms as 
> normal.
> * App author creates a desktop app that is distributed with that 
> application identifier embedded in it.
> * On install or first run, the app makes a back-channel request to an 
> endpoint at the SP to get a consumer key that's attached to the 
> application identifier but known only to that install.
> * Henceforth, the app does OAuth as normal using the single-instance 
> consumer key.
>
>   
I think the existing OAuth dance is pretty much equivalent (although 
different) than what you describe.

Allen

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-03 Thread Martin Atkins
Allen Tom wrote:
> Hi Martin,
> 
> The intent is to be able to identify applications which were not 
> deliberately designed to be malicious. Well designed malicious apps 
> would piggy back off of another app's CK or just cycle through a list of 
> CKs to evade detection.
> 
> However, there have been occasions where legitimate apps behave 
> strangely, and we'd like to be able to contact the developer of the app 
> for more information. Having the CK present in the server logs makes it 
> a lot easier for us to diagnose problems on our side, especially if 
> we're able to use the CK to look up information about the app and its 
> developer.
> 
> We've also seen apps that are well intentioned, but extremely buggy. 
> It's very helpful to be able to easily identify requests originating 
> from these apps if we need to disable them.
> 

It sounds like there are really two things that need identifying here. 
Your description above seems to be less a security requirement and more 
just a means for well-meaning authors to be notified about unintentional 
bugs.

There's also the need to have something to point at as what the user 
trusted, so that other applications can't piggy-back off the trust of a 
popular app.

It doesn't matter so much if the former is compromised, but it is very 
important that the second isn't compromised.

It seems like there needs to be two tokens here. One is provisioned by 
going through some registration flow on the SP site, and the other is 
provisioned automatically *by each installation* of a desktop/mobile 
app. The latter is known only to that installation and so a user trusts 
only their installation of the app, not an installation of the same app 
on someone else's system.

I guess the flow I'm imagining is as follows:

* App author applies for an application identifier through web forms as 
normal.
* App author creates a desktop app that is distributed with that 
application identifier embedded in it.
* On install or first run, the app makes a back-channel request to an 
endpoint at the SP to get a consumer key that's attached to the 
application identifier but known only to that install.
* Henceforth, the app does OAuth as normal using the single-instance 
consumer key.

If the consumer key becomes invalid for some reason (because the user 
removed the trust of that app, for example) the app would need to do the 
same steps it did on first-run to provision a new key, re-establish 
trust and so forth.

Since the consumer key is indirectly mapped to the application 
identifier, you retain the ability to contact the registered author of 
the application.

Does this sound reasonable?

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-03 Thread Allen Tom
Hi Martin,

The intent is to be able to identify applications which were not 
deliberately designed to be malicious. Well designed malicious apps 
would piggy back off of another app's CK or just cycle through a list of 
CKs to evade detection.

However, there have been occasions where legitimate apps behave 
strangely, and we'd like to be able to contact the developer of the app 
for more information. Having the CK present in the server logs makes it 
a lot easier for us to diagnose problems on our side, especially if 
we're able to use the CK to look up information about the app and its 
developer.

We've also seen apps that are well intentioned, but extremely buggy. 
It's very helpful to be able to easily identify requests originating 
from these apps if we need to disable them.

Allen


Martin Atkins wrote:
> If I make a dangerous app using the consumer key from a popular 
> application, would you black list that key and inconvenience all of its 
> users?
>
> (I doubt it.)
>
>   

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-02 Thread Martin Atkins
Allen Tom wrote:
> 
> For the time being, we prefer to require CKs for client applications 
> (even if they can't be verified) mostly to make it easy for us to pull 
> the plug on specific applications if they are discovered to be severely 
> buggy or dangerous. We'd also like to require pre-registration of CKs so 
> that we know who to contact about a particular app if we have any questions.
> 

If I make a dangerous app using the consumer key from a popular 
application, would you black list that key and inconvenience all of its 
users?

(I doubt it.)

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-02 Thread Breno de Medeiros
On Tue, Dec 2, 2008 at 4:58 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> It's definitely bad hygiene for developers to leak their secrets to the
> browser, or to reuse their website's CK for a downloadable client
> application, and we're doing all that we can to encourage good hygiene.
>
> For the time being, we prefer to require CKs for client applications (even
> if they can't be verified) mostly to make it easy for us to pull the plug on
> specific applications if they are discovered to be severely buggy or
> dangerous. We'd also like to require pre-registration of CKs so that we know
> who to contact about a particular app if we have any questions.

Sounds reasonable.

>
> Allen
>
> Breno de Medeiros wrote:
>
> Interesting point, and probably worth adding to a security portion of the
> spec.
>
> I would say though, that is bad security hygiene to share the same
> consumer key between your web and desktop apps. Since we can't vouch
> for consumer keys stored in desktop apps anyway, I would volunteer
> that the most sensible thing is to have empty consumer keys in that
> case (and warn users that we can't vouch for the origin of the
> request).
>
> On Tue, Dec 2, 2008 at 4:37 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>
> Dirk Balfanz wrote:
>
> On Tue, Nov 25, 2008 at 7:17 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>
>
> In Section 10, and perhaps also in Section 12, the spec should mention
> that because the hybrid protocol does not have a request token secret, and
> because the user is never required to manually type in the request token
> (unlike in OAuth), the hybrid Request Token probably should be longer and
> harder to guess than the standard OAuth Request Token. At least for our
> implementation, I'm thinking that the hybrid RT == OAuth's RT+RTSecret.
>
>
> But you need to have the consumer secret to exchange it, no? What if it were
> just a incrementing integer? What would the attack be?
>
> Yes, the attacker would still need the Consumer Secret, however in vanilla
> OAuth, the attacker would need the Consumer Key, Consumer Secret, Request
> Token, and Request Token Secret. Because there's one less secret, the Access
> Token could be more vulnerable to hijacking from brute force attacks where
> RTs are just randomly scanned.
>
> In our case, Yahoo issues relatively short Request Tokens from a limited
> character set to make them easy to type. We compensate for the short RTs by
> pairing them with long RTSecrets. If we were to implement the hybrid
> protocol, our hybrid RTs would be much longer than the regular OAuth RTs.
>
> We also believe that developers may inadvertently leak their Consumer
> Secrets. We're seeing lots of questions from developers who are trying to
> use OAuth from within Javascript and Flash, which implies that they're going
> to be leaking the secret to the browser. Developers may also reuse their
> website's Consumer Key into a downloadable client application.
>
> Allen
>
>
>
>
>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-02 Thread Allen Tom
It's definitely bad hygiene for developers to leak their secrets to the 
browser, or to reuse their website's CK for a downloadable client 
application, and we're doing all that we can to encourage good hygiene.


For the time being, we prefer to require CKs for client applications 
(even if they can't be verified) mostly to make it easy for us to pull 
the plug on specific applications if they are discovered to be severely 
buggy or dangerous. We'd also like to require pre-registration of CKs so 
that we know who to contact about a particular app if we have any questions.


Allen

Breno de Medeiros wrote:

Interesting point, and probably worth adding to a security portion of the spec.

I would say though, that is bad security hygiene to share the same
consumer key between your web and desktop apps. Since we can't vouch
for consumer keys stored in desktop apps anyway, I would volunteer
that the most sensible thing is to have empty consumer keys in that
case (and warn users that we can't vouch for the origin of the
request).

On Tue, Dec 2, 2008 at 4:37 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
  

Dirk Balfanz wrote:

On Tue, Nov 25, 2008 at 7:17 PM, Allen Tom <[EMAIL PROTECTED]> wrote:



In Section 10, and perhaps also in Section 12, the spec should mention
that because the hybrid protocol does not have a request token secret, and
because the user is never required to manually type in the request token
(unlike in OAuth), the hybrid Request Token probably should be longer and
harder to guess than the standard OAuth Request Token. At least for our
implementation, I'm thinking that the hybrid RT == OAuth's RT+RTSecret.
  

But you need to have the consumer secret to exchange it, no? What if it were
just a incrementing integer? What would the attack be?

Yes, the attacker would still need the Consumer Secret, however in vanilla
OAuth, the attacker would need the Consumer Key, Consumer Secret, Request
Token, and Request Token Secret. Because there's one less secret, the Access
Token could be more vulnerable to hijacking from brute force attacks where
RTs are just randomly scanned.

In our case, Yahoo issues relatively short Request Tokens from a limited
character set to make them easy to type. We compensate for the short RTs by
pairing them with long RTSecrets. If we were to implement the hybrid
protocol, our hybrid RTs would be much longer than the regular OAuth RTs.

We also believe that developers may inadvertently leak their Consumer
Secrets. We're seeing lots of questions from developers who are trying to
use OAuth from within Javascript and Flash, which implies that they're going
to be leaking the secret to the browser. Developers may also reuse their
website's Consumer Key into a downloadable client application.

Allen








  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-02 Thread Breno de Medeiros
Interesting point, and probably worth adding to a security portion of the spec.

I would say though, that is bad security hygiene to share the same
consumer key between your web and desktop apps. Since we can't vouch
for consumer keys stored in desktop apps anyway, I would volunteer
that the most sensible thing is to have empty consumer keys in that
case (and warn users that we can't vouch for the origin of the
request).

On Tue, Dec 2, 2008 at 4:37 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> Dirk Balfanz wrote:
>
> On Tue, Nov 25, 2008 at 7:17 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>>
>> In Section 10, and perhaps also in Section 12, the spec should mention
>> that because the hybrid protocol does not have a request token secret, and
>> because the user is never required to manually type in the request token
>> (unlike in OAuth), the hybrid Request Token probably should be longer and
>> harder to guess than the standard OAuth Request Token. At least for our
>> implementation, I'm thinking that the hybrid RT == OAuth's RT+RTSecret.
>
> But you need to have the consumer secret to exchange it, no? What if it were
> just a incrementing integer? What would the attack be?
>
> Yes, the attacker would still need the Consumer Secret, however in vanilla
> OAuth, the attacker would need the Consumer Key, Consumer Secret, Request
> Token, and Request Token Secret. Because there's one less secret, the Access
> Token could be more vulnerable to hijacking from brute force attacks where
> RTs are just randomly scanned.
>
> In our case, Yahoo issues relatively short Request Tokens from a limited
> character set to make them easy to type. We compensate for the short RTs by
> pairing them with long RTSecrets. If we were to implement the hybrid
> protocol, our hybrid RTs would be much longer than the regular OAuth RTs.
>
> We also believe that developers may inadvertently leak their Consumer
> Secrets. We're seeing lots of questions from developers who are trying to
> use OAuth from within Javascript and Flash, which implies that they're going
> to be leaking the secret to the browser. Developers may also reuse their
> website's Consumer Key into a downloadable client application.
>
> Allen
>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-12-02 Thread Allen Tom

Dirk Balfanz wrote:


On Tue, Nov 25, 2008 at 7:17 PM, Allen Tom <[EMAIL PROTECTED] 
> wrote:



In Section 10, and perhaps also in Section 12, the spec should
mention that because the hybrid protocol does not have a request
token secret, and because the user is never required to manually
type in the request token (unlike in OAuth), the hybrid Request
Token probably should be longer and harder to guess than the
standard OAuth Request Token. At least for our implementation, I'm
thinking that the hybrid RT == OAuth's RT+RTSecret.


But you need to have the consumer secret to exchange it, no? What if 
it were just a incrementing integer? What would the attack be?
Yes, the attacker would still need the Consumer Secret, however in 
vanilla OAuth, the attacker would need the Consumer Key, Consumer 
Secret, Request Token, and Request Token Secret. Because there's one 
less secret, the Access Token could be more vulnerable to hijacking from 
brute force attacks where RTs are just randomly scanned.


In our case, Yahoo issues relatively short Request Tokens from a limited 
character set to make them easy to type. We compensate for the short RTs 
by pairing them with long RTSecrets. If we were to implement the hybrid 
protocol, our hybrid RTs would be much longer than the regular OAuth RTs.


We also believe that developers may inadvertently leak their Consumer 
Secrets. We're seeing lots of questions from developers who are trying 
to use OAuth from within Javascript and Flash, which implies that 
they're going to be leaking the secret to the browser. Developers may 
also reuse their website's Consumer Key into a downloadable client 
application.


Allen


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2008-12-01 Thread Breno de Medeiros
OAuth discovery draft spec has been discarded, AFAIK. After XRD
discovery is available, an OAuth discovery mini-spec will be created,
based on XRD. That is good for interoperability, because XRD will be
used by other protocols, and indeed most probably by OpenID as well.


On Sun, Nov 30, 2008 at 7:44 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:
> OAuth Discovery 1.0 Draft 2 addresses this issue through the Static
> Consumer Identity allocation
> (http://oauth.net/discovery/#static_alloc).
>
> For example:
>
>  
>http://oauth.net/discovery/1.0/consumer-identity/static
>0685bd9184jfhq22
>  
>
> I would assume compatibility with OAuth Discovery is something that
> will be desirable within the hybrid specification as well.
>
> -
> darren bounds
> cliqset.com
>
>
> On Wed, Nov 26, 2008 at 1:20 AM, Manger, James H
> <[EMAIL PROTECTED]> wrote:
>> The latest OpenID/OAuth hybrid draft REQUIRES the openid.oauth.consumer
>> parameter, which means an app must be pre-registered with a service before
>> it can use the protocol.
>> Requiring per-service pre-registration is not suitable for a web-scale
>> authentication & delegation solution. [Web sites don't require Firefox, IE, 
>> Safari, Opera, curl, wget, lynx, search crawlers, feed readers... to be 
>> pre-registered]
>> I don't mind if some service only support pre-registered apps, but pre-
>> registration really needs to be optional in the *protocol* (even if extra
>> security considerations apply to that case).
>>
>>
>> A couple of other issues (of lesser importance to supporting un-registered 
>> apps):
>>
>>
>> Response:
>> openid.oauth.consumer is REQUIRED in the OpenID authentication response.
>> What is supposed to be done with this field?
>> Is the app supposed to check that the value in the response matches the 
>> value in the request?
>> Are there security implications of not doing the check?
>> I suspect it can be omitted (openid.return_to is still present and signed if 
>> the app want to confirm the response is meant for itself).
>>
>> Similarly with openid.oauth.scope in the response. The draft hints that the 
>> value in the response is likely to be different from the value in the 
>> request. It seems like there is nothing an app can do with the scope from 
>> the response without SP-specific knowledge.
>> I suggest omitting scope from the response.
>> The OP/SP can define its own structure for openid.oauth.request_token if it 
>> wants to provide more details to an app with SP-specific knowledge.
>> An arbitrary amount of metadata about the delegation (scopes, lifetimes...) 
>> would be better communicated separately -- perhaps as extra parameters 
>> returned when getting an access token.
>>
>>
>> Signing:
>> The openid.oauth.* parameters in the OpenID response "MUST be signed" [§9].
>> No reason is offered. It is not clear if this is necessary for security, an 
>> arbitrary choice, or adds some value.
>> This seems to contradict the aim of NOT introducing reliance on the security 
>> properties of one protocol (OpenID) for the correctness of the other (OAuth) 
>> [§11 Security Considerations].
>> I think signing openid.oauth.request_token DOES add value.
>> It proves that the authentication and delegation come from the same user. It 
>> prevents a strange case of two colluding users constructing a response where:
>> (1) openid.claimed_id identifies user1; but
>> (2) openid.oauth.request_token gives access to user2's resources.
>> I am not sure how or if this could be exploited.
>> I suggest adding a sentence that openid.oauth.request_token MUST be signed 
>> to bind the delegated rights to the user identified by openid.claimed_id.
>>
>>
>> Scopes:
>> The openid.oauth.scope parameter encodes "one or more scopes" in a way 
>> "possibly specific to the Consumer Provider" [section 7 "Requesting 
>> Authentication"].
>> This complicates any future OAuth discovery. Not only will a protected 
>> resource need to indicate a scope value, it will also need to indicate how 
>> to combine that with other scope values (separators, escaping...). Yuck.
>> I suggest avoiding any mention of structure in the scope field (just call it 
>> a blob obtained from the SP to represent the context of the delegation, with 
>> an expectation that a future OAuth discovery step will supply the blob -- 
>> even better if one blob covers scope & consumer key).
>> [Poor alternative: define the structure (|-separated relative UR

Re: OpenID/OAuth hybrid - without app pre-registration

2008-11-30 Thread Darren Bounds
OAuth Discovery 1.0 Draft 2 addresses this issue through the Static
Consumer Identity allocation
(http://oauth.net/discovery/#static_alloc).

For example:

  
http://oauth.net/discovery/1.0/consumer-identity/static
0685bd9184jfhq22
  

I would assume compatibility with OAuth Discovery is something that
will be desirable within the hybrid specification as well.

-
darren bounds
cliqset.com


On Wed, Nov 26, 2008 at 1:20 AM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> The latest OpenID/OAuth hybrid draft REQUIRES the openid.oauth.consumer
> parameter, which means an app must be pre-registered with a service before
> it can use the protocol.
> Requiring per-service pre-registration is not suitable for a web-scale
> authentication & delegation solution. [Web sites don't require Firefox, IE, 
> Safari, Opera, curl, wget, lynx, search crawlers, feed readers... to be 
> pre-registered]
> I don't mind if some service only support pre-registered apps, but pre-
> registration really needs to be optional in the *protocol* (even if extra
> security considerations apply to that case).
>
>
> A couple of other issues (of lesser importance to supporting un-registered 
> apps):
>
>
> Response:
> openid.oauth.consumer is REQUIRED in the OpenID authentication response.
> What is supposed to be done with this field?
> Is the app supposed to check that the value in the response matches the value 
> in the request?
> Are there security implications of not doing the check?
> I suspect it can be omitted (openid.return_to is still present and signed if 
> the app want to confirm the response is meant for itself).
>
> Similarly with openid.oauth.scope in the response. The draft hints that the 
> value in the response is likely to be different from the value in the 
> request. It seems like there is nothing an app can do with the scope from the 
> response without SP-specific knowledge.
> I suggest omitting scope from the response.
> The OP/SP can define its own structure for openid.oauth.request_token if it 
> wants to provide more details to an app with SP-specific knowledge.
> An arbitrary amount of metadata about the delegation (scopes, lifetimes...) 
> would be better communicated separately -- perhaps as extra parameters 
> returned when getting an access token.
>
>
> Signing:
> The openid.oauth.* parameters in the OpenID response "MUST be signed" [§9].
> No reason is offered. It is not clear if this is necessary for security, an 
> arbitrary choice, or adds some value.
> This seems to contradict the aim of NOT introducing reliance on the security 
> properties of one protocol (OpenID) for the correctness of the other (OAuth) 
> [§11 Security Considerations].
> I think signing openid.oauth.request_token DOES add value.
> It proves that the authentication and delegation come from the same user. It 
> prevents a strange case of two colluding users constructing a response where:
> (1) openid.claimed_id identifies user1; but
> (2) openid.oauth.request_token gives access to user2's resources.
> I am not sure how or if this could be exploited.
> I suggest adding a sentence that openid.oauth.request_token MUST be signed to 
> bind the delegated rights to the user identified by openid.claimed_id.
>
>
> Scopes:
> The openid.oauth.scope parameter encodes "one or more scopes" in a way 
> "possibly specific to the Consumer Provider" [section 7 "Requesting 
> Authentication"].
> This complicates any future OAuth discovery. Not only will a protected 
> resource need to indicate a scope value, it will also need to indicate how to 
> combine that with other scope values (separators, escaping...). Yuck.
> I suggest avoiding any mention of structure in the scope field (just call it 
> a blob obtained from the SP to represent the context of the delegation, with 
> an expectation that a future OAuth discovery step will supply the blob -- 
> even better if one blob covers scope & consumer key).
> [Poor alternative: define the structure (|-separated relative URIs?, 
> comma-separated alphanumeric strings?).]
>
>
> Access token secret:
> Section "3 Purpose" says
>  "for security reasons, the OAuth access token is not returned in the URL"
> A hint as to the security reasons would be helpful.
> The access token is useless without the access token secret that cannot be 
> obtained without the corresponding consumer secret (since the spec requires 
> pre-registration).
> [Changing "in the URL" to "in the OpenID authentication response" might also 
> be clearer]
>
>
> Request token secret:
> Using an empty string for the request token secret [§10

RE: OpenID/OAuth hybrid - without app pre-registration

2008-11-30 Thread Manger, James H

> here is a non-security reason [for openid.oauth.consumer in the response]:
> Imagine the Consumer controlling more than
> one consumer key, and also imagine that the consumer is implemented as a
> server farms of thousands of machines. The machine receiving the response
> is not necessarily the same machine as the machine that made the request,
> and it response-receiver needs to know the context of the request.


The openid.return_to parameter is already available to relay RP context from a 
request to a response. Adding second way to do the same thing does not help. An 
app can, for instance, use
  openid.return_to=https://example.com/rp?contex=26532

Returning openid.oauth.consumer and openid.oauth.scope cannot help if
apps are not doing anything with them (and the draft spec doesn't suggest
doing anything). If a paranoid crypto geek in future finds a reason to
return the parameters the apps built before that point will still be broken.

 

>> Is the app supposed to check that the value in the response matches the
>> value in the request?
>> Are there security implications of not doing the check?
>> I suspect it can be omitted (openid.return_to is still present and signed
>> if the app want to confirm the response is meant for itself).

James Manger
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2008-11-28 Thread Dirk Balfanz
On Tue, Nov 25, 2008 at 10:20 PM, Manger, James H <
[EMAIL PROTECTED]> wrote:

> The latest OpenID/OAuth hybrid draft REQUIRES the openid.oauth.consumer
> parameter, which means an app must be pre-registered with a service before
> it can use the protocol.
>

Well, technically speaking, it requires the parameter, not that the consumer
be pre-registered. Perhaps in the future there will be a way to
automatically obtain consumer keys. I agree that today and in practice, this
means that consumers have to be pre-registered.


> Requiring per-service pre-registration is not suitable for a web-scale
> authentication & delegation solution.


Agreed. This is a weakness that we share with OAuth, though. We need a
solution to this scale-prohibiting problem.

[Web sites don't require Firefox, IE, Safari, Opera, curl, wget, lynx,
> search crawlers, feed readers... to be pre-registered]
> I don't mind if some service only support pre-registered apps, but pre-
> registration really needs to be optional in the *protocol* (even if extra
> security considerations apply to that case).
>

See above. I don't think the protocol requires pre-registration. It's just
that today the only way to get one of the parameters required by the
protocol, you have to pre-register.


>
>
> A couple of other issues (of lesser importance to supporting un-registered
> apps):
>
>
> Response:
> openid.oauth.consumer is REQUIRED in the OpenID authentication response.
> What is supposed to be done with this field?


This follows the OpenID tradition to parrot back to the Consumer the
parameters it sent to the Provider. I'm sure more paranoid crypto geeks than
me can come up with a reason why that's important for security, but here is
a non-security reason: Imagine the Consumer controlling more than one
consumer key, and also imagine that the consumer is implemented as a server
farms of thousands of machines. The machine receiving the response is not
necessarily the same machine as the machine that made the request, and it
response-receiver needs to know the context of the request.


>
> Is the app supposed to check that the value in the response matches the
> value in the request?
> Are there security implications of not doing the check?
> I suspect it can be omitted (openid.return_to is still present and signed
> if the app want to confirm the response is meant for itself).
>
> Similarly with openid.oauth.scope in the response. The draft hints that the
> value in the response is likely to be different from the value in the
> request. It seems like there is nothing an app can do with the scope from
> the response without SP-specific knowledge.
> I suggest omitting scope from the response.


See above. If the parameter is in the request, I think it should also be in
the response. There are those that argue that scope doesn't need to be
talked about at all in a protocol like this, and can be encoded in other
places (like the consumer requesting different scopes by contacting
different endpoints on the provider, etc.). But it seems that those that
want to see a scope parameter have won this time.


>
> The OP/SP can define its own structure for openid.oauth.request_token if it
> wants to provide more details to an app with SP-specific knowledge.
> An arbitrary amount of metadata about the delegation (scopes, lifetimes...)
> would be better communicated separately -- perhaps as extra parameters
> returned when getting an access token.
>
>
> Signing:
> The openid.oauth.* parameters in the OpenID response "MUST be signed" [§9].
> No reason is offered. It is not clear if this is necessary for security, an
> arbitrary choice, or adds some value.
> This seems to contradict the aim of NOT introducing reliance on the
> security properties of one protocol (OpenID) for the correctness of the
> other (OAuth) [§11 Security Considerations].
> I think signing openid.oauth.request_token DOES add value.
> It proves that the authentication and delegation come from the same user.
> It prevents a strange case of two colluding users constructing a response
> where:
> (1) openid.claimed_id identifies user1; but
> (2) openid.oauth.request_token gives access to user2's resources.
> I am not sure how or if this could be exploited.
> I suggest adding a sentence that openid.oauth.request_token MUST be signed
> to bind the delegated rights to the user identified by openid.claimed_id.
>
>
> Scopes:
> The openid.oauth.scope parameter encodes "one or more scopes" in a way
> "possibly specific to the Consumer Provider" [section 7 "Requesting
> Authentication"].
> This complicates any future OAuth discovery. Not only will a protected
> resource need to indicate a scope value, it will also need to 

Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-26 Thread Dirk Balfanz
On Tue, Nov 25, 2008 at 7:17 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

>  Some more feedback:
>
> The first sentence in the Abstract should say "describes" instead of
> "describe."
>

Done.


>
> The phrase "OpenID OAuth Extension" is not consistently capitalized in the
> spec. For instance, it's capitalized in the first sentence in section 3, but
> "extension" is lowercase in section 4.  Sections 5 and 8 call it the OAuth
> extension, rather than the OpenID OAuth Extension.
>

Done.


>
> The second word in Section 7, "Requesting" should be all lowercase.
>

Done.


>
> In Section 7, the phrase "this extension can be used to request that the
> end user authorize an OAuth token" should probably be clarified to say that
> the user is authorizing an OAuth Access token.
>

Done. This assumes that "authorizing an access token" is the same as
"approving a request token that can be exchanged for an access token".


>
> In the last sentence of Section 8, the phrase "SHOULD not" should be in all
> caps, "SHOULD NOT."
>

Done.


>
> I recommend that the phrase "Combined Consumer" be used instead of simply
> "Consumer" everywhere in the spec. The third paragraph in section 9, and the
> description for OAuth token secret in Section 10 still say Consumer.
>

Done.


>
> In Section 10, is the Access Token endpoint discoverable? I guess that's
> out of scope for this spec.
>

Yes it should be discoverable, but we don't know yet how that will work.
According to Eran, The Right Way to do this is provide meta-data for the
OpenID endpoint, and have that point to the access token endpoint. So you
would serve something like this as the meta-data for your actual OpenID
endpoint:


  http://specs.openid.net/auth/2.0/server
  http://specs.openid.net/extensions/oauth/1.0

  
http://oauth.net/core/1.0/endpoint/access
http://url-of-the-access-token-endpoint/
  


But this kind of stuff has yet to gel in the various committees looking at
discovery. As far as I know, in current versions of XRD(S), you can't have
 elements underneath  elements. Once that's all sorted out, we
should probably include it in the spec. Although it might be that it falls
out automatically out of XRD in general and OAuth discovery in particular,
i.e. we would basically just have to remind the reader of how to put those
other pieces together to make the access token endpoint discoverable.



>
> In Section 10, and perhaps also in Section 12, the spec should mention that
> because the hybrid protocol does not have a request token secret, and
> because the user is never required to manually type in the request token
> (unlike in OAuth), the hybrid Request Token probably should be longer and
> harder to guess than the standard OAuth Request Token. At least for our
> implementation, I'm thinking that the hybrid RT == OAuth's RT+RTSecret.
>

But you need to have the consumer secret to exchange it, no? What if it were
just a incrementing integer? What would the attack be?


>
>
> I think the spec is getting pretty close.
>

Thanks again, Allen - this is really helpful!

Dirk.


>
> thanks
> Allen
>
>
>
>
> Dirk Balfanz wrote:
>
>
>> Otherwise, the spec is looking pretty good!
>>
>
>  Great! We're officially calling it Draft 1 now :-) (the previous version
> was Draft 0).
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2008-11-26 Thread Breno de Medeiros
I will answer this question with two possibilities:

1. Auto-registration. We have done some research at Google to allow
auto-registration of consumer keys (as a possible OAuth extension).
This did not make into the first version of our proposal for OAuth for
unregistered consumers, but we may want to revisit this with the broad
OpenID/OAuth community at some point. Our initial results in that area
did influence our thinking that we could drop the request token
request in the hybrid (which would introduce severe inefficiencies in
the hybrid).

2. Yes, the case you are providing could be compelling in the absence
of an auto-registration mechanism. However, we are really delaying the
unregistered consumer issue because until such time as there is a
hybrid protocol at all, and a stable mechanism for OAuth discovery,
the benefit is minimal of tackling unregistered consumers.

We believe (by having played with these ideas for a while now) that
the current proposal for hybrid will accommodate unregistered
consumers eventually, but that additional pieces to provide better
security and usability will be necessary to make it work in that case.


On Tue, Nov 25, 2008 at 11:22 PM, Martin Atkins <[EMAIL PROTECTED]> wrote:
> Breno de Medeiros wrote:
>>
>> The consumer key is an independent issue of pre-registration. Say a
>> site hosts multiple apps. The realm indicates the site, the consumer
>> key indicates the app. The presence of the consumer key (even in a
>> scenario without pre-registration requirements) is useful to indicate
>> to the user information about the request.
>>
>> This turns out to be particularly important in the un-registered case,
>> where the consumer could provide a descriptive key. In the case of
>> registered consumers, this will probably not be used to describe the
>> request in a user-visible way, but is useful for other purposes.
>>
>> Making it optional actually hurts interoperability. The idea is that
>> it can be a self-reported value in the case of unregistered consumers.
>>
>
> Can you give a concrete example of what you're arguing for?
>
> Are you imagining...
>
> oauth.consumer_key=Martin's Amazing Social Applicatioon
>
> or did you have something else in mind?
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2008-11-25 Thread Martin Atkins
Breno de Medeiros wrote:
> 
> The consumer key is an independent issue of pre-registration. Say a
> site hosts multiple apps. The realm indicates the site, the consumer
> key indicates the app. The presence of the consumer key (even in a
> scenario without pre-registration requirements) is useful to indicate
> to the user information about the request.
> 
> This turns out to be particularly important in the un-registered case,
> where the consumer could provide a descriptive key. In the case of
> registered consumers, this will probably not be used to describe the
> request in a user-visible way, but is useful for other purposes.
> 
> Making it optional actually hurts interoperability. The idea is that
> it can be a self-reported value in the case of unregistered consumers.
> 

Can you give a concrete example of what you're arguing for?

Are you imagining...

oauth.consumer_key=Martin's Amazing Social Applicatioon

or did you have something else in mind?

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - without app pre-registration

2008-11-25 Thread Breno de Medeiros
On Tue, Nov 25, 2008 at 10:20 PM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> The latest OpenID/OAuth hybrid draft REQUIRES the openid.oauth.consumer
> parameter, which means an app must be pre-registered with a service before
> it can use the protocol.
> Requiring per-service pre-registration is not suitable for a web-scale
> authentication & delegation solution. [Web sites don't require Firefox, IE, 
> Safari, Opera, curl, wget, lynx, search crawlers, feed readers... to be 
> pre-registered]
> I don't mind if some service only support pre-registered apps, but pre-
> registration really needs to be optional in the *protocol* (even if extra
> security considerations apply to that case).

The consumer key is an independent issue of pre-registration. Say a
site hosts multiple apps. The realm indicates the site, the consumer
key indicates the app. The presence of the consumer key (even in a
scenario without pre-registration requirements) is useful to indicate
to the user information about the request.

This turns out to be particularly important in the un-registered case,
where the consumer could provide a descriptive key. In the case of
registered consumers, this will probably not be used to describe the
request in a user-visible way, but is useful for other purposes.

Making it optional actually hurts interoperability. The idea is that
it can be a self-reported value in the case of unregistered consumers.

>
>
> A couple of other issues (of lesser importance to supporting un-registered 
> apps):
>
>
> Response:
> openid.oauth.consumer is REQUIRED in the OpenID authentication response.
> What is supposed to be done with this field?
> Is the app supposed to check that the value in the response matches the value 
> in the request?
> Are there security implications of not doing the check?
> I suspect it can be omitted (openid.return_to is still present and signed if 
> the app want to confirm the response is meant for itself).
>
> Similarly with openid.oauth.scope in the response. The draft hints that the 
> value in the response is likely to be different from the value in the 
> request. It seems like there is nothing an app can do with the scope from the 
> response without SP-specific knowledge.
> I suggest omitting scope from the response.
> The OP/SP can define its own structure for openid.oauth.request_token if it 
> wants to provide more details to an app with SP-specific knowledge.
> An arbitrary amount of metadata about the delegation (scopes, lifetimes...) 
> would be better communicated separately -- perhaps as extra parameters 
> returned when getting an access token.
>
>
> Signing:
> The openid.oauth.* parameters in the OpenID response "MUST be signed" [§9].
> No reason is offered. It is not clear if this is necessary for security, an 
> arbitrary choice, or adds some value.
> This seems to contradict the aim of NOT introducing reliance on the security 
> properties of one protocol (OpenID) for the correctness of the other (OAuth) 
> [§11 Security Considerations].
> I think signing openid.oauth.request_token DOES add value.
> It proves that the authentication and delegation come from the same user. It 
> prevents a strange case of two colluding users constructing a response where:
> (1) openid.claimed_id identifies user1; but
> (2) openid.oauth.request_token gives access to user2's resources.
> I am not sure how or if this could be exploited.
> I suggest adding a sentence that openid.oauth.request_token MUST be signed to 
> bind the delegated rights to the user identified by openid.claimed_id.
>
>
> Scopes:
> The openid.oauth.scope parameter encodes "one or more scopes" in a way 
> "possibly specific to the Consumer Provider" [section 7 "Requesting 
> Authentication"].
> This complicates any future OAuth discovery. Not only will a protected 
> resource need to indicate a scope value, it will also need to indicate how to 
> combine that with other scope values (separators, escaping...). Yuck.
> I suggest avoiding any mention of structure in the scope field (just call it 
> a blob obtained from the SP to represent the context of the delegation, with 
> an expectation that a future OAuth discovery step will supply the blob -- 
> even better if one blob covers scope & consumer key).
> [Poor alternative: define the structure (|-separated relative URIs?, 
> comma-separated alphanumeric strings?).]
>
>
> Access token secret:
> Section "3 Purpose" says
>  "for security reasons, the OAuth access token is not returned in the URL"
> A hint as to the security reasons would be helpful.
> The access token is useless without the access token secret that cannot be 
> obtained without the correspon

OpenID/OAuth hybrid - without app pre-registration

2008-11-25 Thread Manger, James H
The latest OpenID/OAuth hybrid draft REQUIRES the openid.oauth.consumer
parameter, which means an app must be pre-registered with a service before
it can use the protocol.
Requiring per-service pre-registration is not suitable for a web-scale
authentication & delegation solution. [Web sites don't require Firefox, IE, 
Safari, Opera, curl, wget, lynx, search crawlers, feed readers... to be 
pre-registered]
I don’t mind if some service only support pre-registered apps, but pre-
registration really needs to be optional in the *protocol* (even if extra
security considerations apply to that case).


A couple of other issues (of lesser importance to supporting un-registered 
apps):


Response:
openid.oauth.consumer is REQUIRED in the OpenID authentication response.
What is supposed to be done with this field?
Is the app supposed to check that the value in the response matches the value 
in the request?
Are there security implications of not doing the check?
I suspect it can be omitted (openid.return_to is still present and signed if 
the app want to confirm the response is meant for itself).

Similarly with openid.oauth.scope in the response. The draft hints that the 
value in the response is likely to be different from the value in the request. 
It seems like there is nothing an app can do with the scope from the response 
without SP-specific knowledge.
I suggest omitting scope from the response.
The OP/SP can define its own structure for openid.oauth.request_token if it 
wants to provide more details to an app with SP-specific knowledge.
An arbitrary amount of metadata about the delegation (scopes, lifetimes...) 
would be better communicated separately -- perhaps as extra parameters returned 
when getting an access token.


Signing:
The openid.oauth.* parameters in the OpenID response "MUST be signed" [§9].
No reason is offered. It is not clear if this is necessary for security, an 
arbitrary choice, or adds some value.
This seems to contradict the aim of NOT introducing reliance on the security 
properties of one protocol (OpenID) for the correctness of the other (OAuth) 
[§11 Security Considerations].
I think signing openid.oauth.request_token DOES add value.
It proves that the authentication and delegation come from the same user. It 
prevents a strange case of two colluding users constructing a response where:
(1) openid.claimed_id identifies user1; but
(2) openid.oauth.request_token gives access to user2's resources.
I am not sure how or if this could be exploited.
I suggest adding a sentence that openid.oauth.request_token MUST be signed to 
bind the delegated rights to the user identified by openid.claimed_id.


Scopes:
The openid.oauth.scope parameter encodes "one or more scopes" in a way 
"possibly specific to the Consumer Provider" [section 7 "Requesting 
Authentication"].
This complicates any future OAuth discovery. Not only will a protected resource 
need to indicate a scope value, it will also need to indicate how to combine 
that with other scope values (separators, escaping...). Yuck.
I suggest avoiding any mention of structure in the scope field (just call it a 
blob obtained from the SP to represent the context of the delegation, with an 
expectation that a future OAuth discovery step will supply the blob -- even 
better if one blob covers scope & consumer key).
[Poor alternative: define the structure (|-separated relative URIs?, 
comma-separated alphanumeric strings?).]


Access token secret:
Section "3 Purpose" says
  "for security reasons, the OAuth access token is not returned in the URL"
A hint as to the security reasons would be helpful.
The access token is useless without the access token secret that cannot be 
obtained without the corresponding consumer secret (since the spec requires 
pre-registration).
[Changing "in the URL" to "in the OpenID authentication response" might also be 
clearer]


Request token secret:
Using an empty string for the request token secret [§10 Obtaining the Access 
Token] is an obvious departure from secret designed for OAuth.
A sentence explicitly describing why this is secure would be helpful.


I hope these suggestions are constructive and not just frustrating to the 
authors.


James Manger
[EMAIL PROTECTED]
Identity and security team — Chief Technology Office — Telstra


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-25 Thread Allen Tom

Some more feedback:

The first sentence in the Abstract should say "describes" instead of 
"describe."


The phrase "OpenID OAuth Extension" is not consistently capitalized in 
the spec. For instance, it's capitalized in the first sentence in 
section 3, but "extension" is lowercase in section 4.  Sections 5 and 8 
call it the OAuth extension, rather than the OpenID OAuth Extension.


The second word in Section 7, "Requesting" should be all lowercase.

In Section 7, the phrase "this extension can be used to request that the 
end user authorize an OAuth token" should probably be clarified to say 
that the user is authorizing an OAuth Access token.


In the last sentence of Section 8, the phrase "SHOULD not" should be in 
all caps, "SHOULD NOT."


I recommend that the phrase "Combined Consumer" be used instead of 
simply "Consumer" everywhere in the spec. The third paragraph in section 
9, and the description for OAuth token secret in Section 10 still say 
Consumer.


In Section 10, is the Access Token endpoint discoverable? I guess that's 
out of scope for this spec.


In Section 10, and perhaps also in Section 12, the spec should mention 
that because the hybrid protocol does not have a request token secret, 
and because the user is never required to manually type in the request 
token (unlike in OAuth), the hybrid Request Token probably should be 
longer and harder to guess than the standard OAuth Request Token. At 
least for our implementation, I'm thinking that the hybrid RT == OAuth's 
RT+RTSecret.


I think the spec is getting pretty close.

thanks
Allen




Dirk Balfanz wrote:



Otherwise, the spec is looking pretty good!


Great! We're officially calling it Draft 1 now :-) (the previous 
version was Draft 0).


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-25 Thread Dirk Balfanz
I really don't think we're disagreeing here. There should and will be more
places to discover OAuth endpoints, etc. But that's outside the scope of
this spec. All we're saying in this spec is that if discovery starts from a
user-supplied OpenID (not from a OAuth-protected resource, btw, which is the
use case you're describing below), there is a way for the OP to signal to
the RP whether it might want to try sending the OAuth extension parameters
along with the auth request. There is no extra HTTP transaction.

Dirk.

On Mon, Nov 24, 2008 at 11:26 PM, Martin Atkins <[EMAIL PROTECTED]>wrote:

> Dirk Balfanz wrote:
>
>>
>> We're defining an OpenID extension. Consumer will want to know whether or
>> not a given endpoint speaks that extension. That's all it's doing - just
>> like AX or PAPE have a section on discoverability. It also gives consumers a
>> way to look for the combined OpenID/OAuth endpoint (assuming that one day
>> we'll have these massive XRD documents advertising all sorts of things -
>> OAuth request token endpoints, portable contact endpoints, etc.).
>>
>>
> I guess I'm assuming that the OAuth service saying "use that OpenID
> provider for hybrid OpenID/OAuth" implies that the OpenID Provider supports
> the extension.
>
> However, I guess the following flow could arise:
>  * User does something that requires OAuth.
>  * Consumer does OAuth Discovery (to be defined) and determines, amongst
> other things, the URL of the OpenID Provider that will do the combined
> OpenID/OAuth bit.
>  * Consumer does discovery on the OpenID Provider and determines that it
> doesn't actually support the extension.
>  * Consumer falls back on the non-combined flow, or just tells the user
> that the service provider is broken.
>
> While it's nice to fail early in this case, the consumer still needs to
> deal with a bunch of post-authorization failure cases:
>  * Provider claimed to support the extension but didn't actually return
> anything.
>  * Provider claimed to support the extension but the approved request token
> doesn't actually work for some reason.
>  * Provider claimed to support the extension but it turns out it doesn't
> support this particular sort of request token.
>  * ...
>
> In most cases, the implication from the OAuth discovery step will be enough
> and everything will work out. I'm not sure whether failing early in this one
> (unlikely) error case is worth the extra HTTP transaction(s) to find out
> whether the provider really supports the extension. It'd be more efficient
> to just send a request to the OpenID provider with the extension arguments
> and see if you get back a response.
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Martin Atkins
Dirk Balfanz wrote:
> 
> We're defining an OpenID extension. Consumer will want to know whether 
> or not a given endpoint speaks that extension. That's all it's doing - 
> just like AX or PAPE have a section on discoverability. It also gives 
> consumers a way to look for the combined OpenID/OAuth endpoint (assuming 
> that one day we'll have these massive XRD documents advertising all 
> sorts of things - OAuth request token endpoints, portable contact 
> endpoints, etc.).
> 

I guess I'm assuming that the OAuth service saying "use that OpenID 
provider for hybrid OpenID/OAuth" implies that the OpenID Provider 
supports the extension.

However, I guess the following flow could arise:
  * User does something that requires OAuth.
  * Consumer does OAuth Discovery (to be defined) and determines, 
amongst other things, the URL of the OpenID Provider that will do the 
combined OpenID/OAuth bit.
  * Consumer does discovery on the OpenID Provider and determines that 
it doesn't actually support the extension.
  * Consumer falls back on the non-combined flow, or just tells the user 
that the service provider is broken.

While it's nice to fail early in this case, the consumer still needs to 
deal with a bunch of post-authorization failure cases:
  * Provider claimed to support the extension but didn't actually return 
anything.
  * Provider claimed to support the extension but the approved request 
token doesn't actually work for some reason.
  * Provider claimed to support the extension but it turns out it 
doesn't support this particular sort of request token.
  * ...

In most cases, the implication from the OAuth discovery step will be 
enough and everything will work out. I'm not sure whether failing early 
in this one (unlikely) error case is worth the extra HTTP transaction(s) 
to find out whether the provider really supports the extension. It'd be 
more efficient to just send a request to the OpenID provider with the 
extension arguments and see if you get back a response.

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Dirk Balfanz
On Mon, Nov 24, 2008 at 10:06 PM, Martin Atkins <[EMAIL PROTECTED]>wrote:

> Dirk Balfanz wrote:
> > I'm not sure I understand what the commotion is about :-)
> >
> > OAuth discovery (when it is done), will answer the question: given the
> > URL of a resource, where do I go to get access tokens for that resource.
> > The question answered by the XRD element described in Section 5 is "does
> > this OpenID endpoint support the Hybrid protocol". These two questions
> > are somewhat related, but clearly different. And, yes, the latter is not
> > nearly as exciting as the former.
> >
>
> What is a consumer intended to do with this information?
>

It could decide to combine an OpenID auth request and an OAuth request into
one hybrid request, instead of doing OpenID first, and then (once the user
is logged in) doing OAuth. This information also tells the consumer where
the auth-request endpoint of the Combined Provider is.


>
> Telling me that the OpenID provider also supports the OAuth hybrid
> protocol is not useful alone. It's not like I can just take any OAuth
>

Agreed.


> token in the world and feed it to this endpoint.
>
> More useful, I think, would be to have the OAuth discovery information
> *at the service endpoint* say that "the OAuth authorization URL for this
>

Agreed.

These are not mutually exclusive. When performing discovery on a
user-supplied identifier it's useful to say "the combined endpoint for this
user-supplied identifier is over there". (We'll also need to be able to say
"the request token you'll get from the combined endpoint can be exchanged
for an access token over here" - but that will be covered in the OAuth
discovery spec.) At the combined endpoint it would indeed make sense to say
where the other OAuth URLs are (although the combined endpoint needs only
one other OAuth URL - the access token endpoint).


> service is , and the combined OpenID/OAuth endpoint for this
> service is ". The first part of this will presumably be
> catered for by OAuth discovery.


Yes.


> The second part seems like it ought to
> be an extension to OAuth discovery, though I don't have a good answer
> for what exactly it'd look like on the wire.
>

The second part is exactly what is defined in Section 5. It's part of OpenID
discovery (not OAuth), b/c the combined endpoint _is_ the OpenID endpoint
(an OpenID endpoint that happens to speak the OAuth extension).



> As currently speced, I'm not sure what problem that section is
> addressing or what value it provides. Perhaps for now it'd be better to
>

We're defining an OpenID extension. Consumer will want to know whether or
not a given endpoint speaks that extension. That's all it's doing - just
like AX or PAPE have a section on discoverability. It also gives consumers a
way to look for the combined OpenID/OAuth endpoint (assuming that one day
we'll have these massive XRD documents advertising all sorts of things -
OAuth request token endpoints, portable contact endpoints, etc.).

Dirk.



> take that part out of the Hybrid Protocol specification and defer that
> problem until it's clearer how OAuth discovery will work in general.
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Martin Atkins
Dirk Balfanz wrote:
> I'm not sure I understand what the commotion is about :-)
> 
> OAuth discovery (when it is done), will answer the question: given the 
> URL of a resource, where do I go to get access tokens for that resource. 
> The question answered by the XRD element described in Section 5 is "does 
> this OpenID endpoint support the Hybrid protocol". These two questions 
> are somewhat related, but clearly different. And, yes, the latter is not 
> nearly as exciting as the former.
> 

What is a consumer intended to do with this information?

Telling me that the OpenID provider also supports the OAuth hybrid 
protocol is not useful alone. It's not like I can just take any OAuth 
token in the world and feed it to this endpoint.

More useful, I think, would be to have the OAuth discovery information 
*at the service endpoint* say that "the OAuth authorization URL for this 
service is , and the combined OpenID/OAuth endpoint for this 
service is ". The first part of this will presumably be 
catered for by OAuth discovery. The second part seems like it ought to 
be an extension to OAuth discovery, though I don't have a good answer 
for what exactly it'd look like on the wire.

As currently speced, I'm not sure what problem that section is 
addressing or what value it provides. Perhaps for now it'd be better to 
take that part out of the Hybrid Protocol specification and defer that 
problem until it's clearer how OAuth discovery will work in general.


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Dirk Balfanz
I'm not sure I understand what the commotion is about :-)
OAuth discovery (when it is done), will answer the question: given the URL
of a resource, where do I go to get access tokens for that resource. The
question answered by the XRD element described in Section 5 is "does this
OpenID endpoint support the Hybrid protocol". These two questions are
somewhat related, but clearly different. And, yes, the latter is not nearly
as exciting as the former.

Dirk.


On Mon, Nov 24, 2008 at 6:48 PM, Manger, James H <
[EMAIL PROTECTED]> wrote:

> >> Learning just that an OP supports the hybrid protocol
> >> (without any indication of the associated protected resources)
> >> seems to be of minimal value.
>
> > Yes. However, when OAuth discovery happens (and the standardization
> > effort is under way) it will much more than minimal value.
> > Standardizing OAuth discovery is not in scope for this spec, but
> > standardizing hybrid support indication is.
>
>
> A future "OAuth discovery" could say:
>  "This SP supports the hybrid protocol with this OP http://...";
> In this case section "5 Discovery" in the hybrid spec adds no value because
> the app already knows about the support.
>
> Or a future "OAuth discovery" might not mention OpenID.
> In this case section "5 Discovery" in the hybrid spec barely helps as there
> are no links between OP and SP.
>
> >> James Manger
> >> [EMAIL PROTECTED]
> >> Identity and security team — Chief Technology Office — Telstra
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


RE: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Manger, James H
>> Learning just that an OP supports the hybrid protocol
>> (without any indication of the associated protected resources)
>> seems to be of minimal value.

> Yes. However, when OAuth discovery happens (and the standardization
> effort is under way) it will much more than minimal value.
> Standardizing OAuth discovery is not in scope for this spec, but
> standardizing hybrid support indication is.


A future "OAuth discovery" could say:
 "This SP supports the hybrid protocol with this OP http://...";
In this case section "5 Discovery" in the hybrid spec adds no value because the 
app already knows about the support.

Or a future "OAuth discovery" might not mention OpenID.
In this case section "5 Discovery" in the hybrid spec barely helps as there are 
no links between OP and SP.

>> James Manger
>> [EMAIL PROTECTED]
>> Identity and security team — Chief Technology Office — Telstra


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Breno de Medeiros
On Mon, Nov 24, 2008 at 6:29 PM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> Breno,
>
>> The fact that the OP indicates support for hybrid has nothing to do
>> with directed identity, of whether or not they use the same XRDS file.
>
> What is section "5 Discovery" for?
> Is it supposed to allow an app (after finding a user's OP) to make additional 
> requests to get the OP's metadata to see if it supports the hybrid protocol?
>
> Learning just that an OP supports the hybrid protocol (without any indication 
> of the associated protected resources) seems to be of minimal value.

Yes. However, when OAuth discovery happens (and the standardization
effort is under way) it will much more than minimal value.
Standardizing OAuth discovery is not in scope for this spec, but
standardizing hybrid support indication is.

>
>
> James Manger
> [EMAIL PROTECTED]
> Identity and security team — Chief Technology Office — Telstra
>
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


RE: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Manger, James H
Breno,

> The fact that the OP indicates support for hybrid has nothing to do
> with directed identity, of whether or not they use the same XRDS file.

What is section "5 Discovery" for?
Is it supposed to allow an app (after finding a user's OP) to make additional 
requests to get the OP's metadata to see if it supports the hybrid protocol?

Learning just that an OP supports the hybrid protocol (without any indication 
of the associated protected resources) seems to be of minimal value.


James Manger
[EMAIL PROTECTED]
Identity and security team — Chief Technology Office — Telstra



___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/OAuth hybrid - discovery

2008-11-24 Thread Breno de Medeiros
On Mon, Nov 24, 2008 at 5:34 PM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> Section 5 Discovery of the OpenID/OAuth hybrid draft spec says
>  http://specs.openid.net/extensions/oauth/1.0
> should appear in the XRDS discovery document to indicate support for the 
> protocol.
>
>
> This doesn't seem to be the right way around.
>
> Discovery is performed on a user's OpenID identifier. It does not make sense 
> for a user to indicate if an OP supports the hybrid protocol.
> Additionally, support cannot be indicated by users who use an HTML page for 
> their OpenID identifier (with an  
> element).
>
> An OP could indicate that it supports the hybrid protocol in its own XRDS 
> file, assuming all users use directed identity and they all use the same OP 
> XRDS file. I hope we don't have to hardwire these assumptions into the hybrid 
> spec.

The fact that the OP indicates support for hybrid has nothing to do
with directed identity, of whether or not they use the same XRDS file.

> Even in this case, however, indicating hybrid support at the OP is not of 
> much use if the RP/consumer cannot tell which protected resources are covered.
>
> For example, adding the hybrid indicator to the Yahoo OP XRDS file 
> <http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds> does not tell 
> an app if it can use the hybrid protocol to access:
> * Yahoo email address book (probably);
> * Flickr photos (maybe?, it is owned by Yahoo);
> * Microsoft hotmail (perhaps not currently, but a Yahoo/Microsoft merger was 
> discussed earlier this year);
> * Picassa photos (presumably not, as it is owned by Google).
>

This is out of scope for this spec, because OAuth discovery is under
development.

>
> Discovery could work if the metadata for the OAuth Service Provider indicated 
> it supports the hybrid protocol with a specific OP.
>
> [My preferred way to indicate this would be: a request to a protected 
> resource receiving a "401 Unauthenticated" response with a "WWW-Authenticate" 
> HTTP header that included the URL of the OP. If that OP URL matches the OP 
> found from OpenID discovery on the user's OpenID identifier then the app can 
> use the hybrid protocol.]
>
>
>
>
> James Manger
> [EMAIL PROTECTED]
> Identity and security team — Chief Technology Office — Telstra
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


OpenID/OAuth hybrid - discovery

2008-11-24 Thread Manger, James H
Section 5 Discovery of the OpenID/OAuth hybrid draft spec says
  http://specs.openid.net/extensions/oauth/1.0
should appear in the XRDS discovery document to indicate support for the 
protocol.


This doesn't seem to be the right way around.

Discovery is performed on a user's OpenID identifier. It does not make sense 
for a user to indicate if an OP supports the hybrid protocol.
Additionally, support cannot be indicated by users who use an HTML page for 
their OpenID identifier (with an  
element).

An OP could indicate that it supports the hybrid protocol in its own XRDS file, 
assuming all users use directed identity and they all use the same OP XRDS 
file. I hope we don't have to hardwire these assumptions into the hybrid spec.
Even in this case, however, indicating hybrid support at the OP is not of much 
use if the RP/consumer cannot tell which protected resources are covered.

For example, adding the hybrid indicator to the Yahoo OP XRDS file 
<http://open.login.yahooapis.com/openid20/www.yahoo.com/xrds> does not tell an 
app if it can use the hybrid protocol to access:
* Yahoo email address book (probably);
* Flickr photos (maybe?, it is owned by Yahoo);
* Microsoft hotmail (perhaps not currently, but a Yahoo/Microsoft merger was 
discussed earlier this year);
* Picassa photos (presumably not, as it is owned by Google).


Discovery could work if the metadata for the OAuth Service Provider indicated 
it supports the hybrid protocol with a specific OP.

[My preferred way to indicate this would be: a request to a protected resource 
receiving a "401 Unauthenticated" response with a "WWW-Authenticate" HTTP 
header that included the URL of the OP. If that OP URL matches the OP found 
from OpenID discovery on the user's OpenID identifier then the app can use the 
hybrid protocol.]




James Manger
[EMAIL PROTECTED]
Identity and security team — Chief Technology Office — Telstra
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-24 Thread Dirk Balfanz
>
>
> Otherwise, the spec is looking pretty good!
>

Great! We're officially calling it Draft 1 now :-) (the previous version was
Draft 0).

Dirk.


>
> Allen
>
>
> Dirk Balfanz wrote:
>
>>
>> Ok, new version is up. I took out the sentence that recommended to send a
>> cancel. I also added a section on discovery (just copied whatever the AX
>> extension says about that).
>>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-24 Thread Dirk Balfanz
BTW, I reorganized the SVN layout on the server a little bit. The old URL
now points to an old version of the draft. The latest version will from now
on always be here:
http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html
Dirk.

On Fri, Nov 21, 2008 at 4:11 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> A couple minor edits are needed to Section 12: Security Considerations.
>
> I assume that the response_token in Section 12 is the same as the
> request_token in Section 9. The terminology needs to be consistent.
>
> "Is" shoudl be changed to "are" in the phrase "The following security
> principles is reflected in this design"
>
> Otherwise, the spec is looking pretty good!
>
> Allen
>
>
> Dirk Balfanz wrote:
>
>>
>> Ok, new version is up. I took out the sentence that recommended to send a
>> cancel. I also added a section on discovery (just copied whatever the AX
>> extension says about that).
>>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-24 Thread Dirk Balfanz
I'm not sure. While I've seen OAuth interop really being hampered by that
extension not being implemented in many libraries, and I generally think
it's a good thing to report errors as detailed as possible, this does seem a
very Un-OpenID-thing to do. They specify only two error conditions: "the
user didn't want to log in" and "we can't log in the user without showing
them a UI" (and this includes the AX extension). Of course, a lot more can
go wrong, and there doesn't seem to be a notion in OpenID that this would be
communicated, through a browser redirect, to the consumer. Perhaps the
unspoken rule is that the redirect just doesn't happen when something goes
wrong? In that case, the OP would just show a descriptive error page to the
user? I don't know...

Dirk.

On Fri, Nov 21, 2008 at 4:04 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

>  How about if the openid.oauth.scope response parameter defined in Section
> 9 be changed to be a more generic OAuth status indicator? It can be used to
> indicate which scopes were authorized in the success case, or it can be used
> as status/problem indicator if there was an error.
>
> Perhaps the allowed values can be the same as the values defined in the
> ProblemReporting extension.
> http://oauth.pbwiki.com/ProblemReporting
>
> Allen
>
>
>
>
>
> Dirk Balfanz wrote:
>
>
>
> On Wed, Nov 19, 2008 at 2:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>> Since the new hybrid draft spec doesn't affect the OpenID association
>> method, this is moot.
>>
>> However, the spec should mention what SPs should do if the CK is invalid
>> (or doesn't match the realm) in the OpenID authentication request.
>> Presumably, the SP should continue servicing the OpenID portion of the
>> request, however, the response should indicate why the OAuth portion of the
>> request failed.
>>
>
>  How about, to mimic what happens with association handles, we can return
> in the response an openid.oauth.invalid_consumer parameter instead of
> openid.oauth.consumer? It would mean that either the CK was just wrong or
> that it didn't match the realm. Although at this point it starts to get
> pretty complicated.
>
>  Does this error condition really need to be communicated back to the RP?
> For development etc., it might be enough to just show an error page to the
> user explaining what happened.
>
>  Dirk.
>
>
>
>>
>> Allen
>>
>>
>> Dirk Balfanz wrote:
>>
>>
>>
  I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
>>> spec, with a new error_code value indicating that the either the CK or the
>>> realm was invalid. There may actually need to be 2 errors, one to indicate
>>> that the CK is invalid, and another to indicate that the CK is not valid for
>>> the realm.
>>>
>>> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>>>
>>
>>  But Section 8.2 is about the association response. In the auth response,
>> we currently only have cancel or setup_needed. If we invent another error
>> condition there, we're no longer a pure "extension".
>>
>>
>>
>>
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-24 Thread Dirk Balfanz
On Fri, Nov 21, 2008 at 4:11 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> A couple minor edits are needed to Section 12: Security Considerations.
>
> I assume that the response_token in Section 12 is the same as the
> request_token in Section 9. The terminology needs to be consistent.
>
> "Is" shoudl be changed to "are" in the phrase "The following security
> principles is reflected in this design"
>


Done. Thanks for spotting these!

Dirk.


>
> Otherwise, the spec is looking pretty good!
>
> Allen
>
>
> Dirk Balfanz wrote:
>
>>
>> Ok, new version is up. I took out the sentence that recommended to send a
>> cancel. I also added a section on discovery (just copied whatever the AX
>> extension says about that).
>>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-21 Thread Allen Tom
A couple minor edits are needed to Section 12: Security Considerations.

I assume that the response_token in Section 12 is the same as the 
request_token in Section 9. The terminology needs to be consistent.

"Is" shoudl be changed to "are" in the phrase "The following security 
principles is reflected in this design"

Otherwise, the spec is looking pretty good!

Allen

Dirk Balfanz wrote:
>
> Ok, new version is up. I took out the sentence that recommended to 
> send a cancel. I also added a section on discovery (just copied 
> whatever the AX extension says about that).
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-21 Thread Allen Tom
How about if the openid.oauth.scope response parameter defined in 
Section 9 be changed to be a more generic OAuth status indicator? It can 
be used to indicate which scopes were authorized in the success case, or 
it can be used as status/problem indicator if there was an error.


Perhaps the allowed values can be the same as the values defined in the 
ProblemReporting extension.

http://oauth.pbwiki.com/ProblemReporting

Allen




Dirk Balfanz wrote:



On Wed, Nov 19, 2008 at 2:31 PM, Allen Tom <[EMAIL PROTECTED] 
> wrote:


Since the new hybrid draft spec doesn't affect the OpenID
association method, this is moot.

However, the spec should mention what SPs should do if the CK is
invalid (or doesn't match the realm) in the OpenID authentication
request. Presumably, the SP should continue servicing the OpenID
portion of the request, however, the response should indicate why
the OAuth portion of the request failed.


How about, to mimic what happens with association handles, we can 
return in the response an openid.oauth.invalid_consumer parameter 
instead of openid.oauth.consumer? It would mean that either the CK was 
just wrong or that it didn't match the realm. Although at this point 
it starts to get pretty complicated. 

Does this error condition really need to be communicated back to the 
RP? For development etc., it might be enough to just show an error 
page to the user explaining what happened. 


Dirk.

 



Allen



Dirk Balfanz wrote:



I'd recommend an error consistent with Section 8.2.4 in the
OpenID 2.0 spec, with a new error_code value indicating that
the either the CK or the realm was invalid. There may
actually need to be 2 errors, one to indicate that the CK is
invalid, and another to indicate that the CK is not valid for
the realm.

http://openid.net/specs/openid-authentication-2_0.html#anchor20


But Section 8.2 is about the association response. In the auth
response, we currently only have cancel or setup_needed. If we
invent another error condition there, we're no longer a pure
"extension". 
 





___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-20 Thread Dirk Balfanz
Thanks! Fixed.

Dirk.

On Thu, Nov 20, 2008 at 6:37 AM, Paul Madsen <[EMAIL PROTECTED]> wrote:

>  Dirk, typo in Sec 6
>
> The Combined Provider SHOULD in addition obtain, from the Combined
> Provider, a list .
>
> paul
>
> Dirk Balfanz wrote:
>
> Ok, new spec is up:
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
>
> Dirk.
>
> On Mon, Nov 17, 2008 at 5:40 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>> [+Brian Eaton]
>>
>>  On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>>
>>> Sadly, because the OpenID authentication request is not signed, the CK
>>> can't be authenticated, but as you pointed out, although the user may
>>> authorize the application, the CK secret is still required to fetch the
>>> credentials. The worst that could happen is that a user will authorize an
>>> impostor, but the impostor will not be able to retrieve the token.
>>>
>>> That being said, in our case, the CK contains additional information
>>> besides the scope. Yahoo's OAuth Permissions screen contains a lot of rich
>>> information including the application's name, description, developer(s),
>>> images, authorization lifetimes, etc. Over time, new fields may be added to
>>> the approval page.
>>>
>>> While it might make sense for the application's scope to be passed in at
>>> authorization time, does it also make sense to define new parameters for all
>>> the other application specific metadata? The actual data that needs to be
>>> displayed on an approval page is very SP specific, and some SPs may have
>>> security/legal policies requiring that all metadata is manually reviewed,
>>> which makes it impossible for metadata to be passed in at runtime.
>>>
>>
>> Oh I see. Ok. I'l make a new revision of the spec where I add a required
>> parameter (the consumer key) to the auth request.
>>
>> What should the spec recommend the OP should do if the consumer key and
>> realm don't match? Return a cancel? Return something else?
>>
>> Another change I'll be making is to take out references to unregistered
>> consumers. Brian found a weakness in our approach (the one where we make the
>> association secret the consumer secret) that makes me think we need to think
>> about unregistered consumers a bit more[1].
>>
>> Dirk.
>>
>> [1] Basically, the problem is that we have oracles around the web that add
>> OAuth signatures to arbitrary requests. They're called OpenSocial gadget
>> containers. If and when OpenID signatures and OAuth signatures converge,
>> with the current propocal we might end up in a situation where my gadget
>> container will create OAuth signatures using the same key needed to assert
>> auth responses.
>>
>>
>>
>>> So that's why SPs may need the CK in order to display the Approval page.
>>> Make sense?
>>>
>>> Allen
>>>
>>>
>>>
>>> Dirk Balfanz wrote:
>>>

 Need to know the CK for what? What purpose would hinting at the CK serve
 (since it wouldn't prove ownership)? And don't say "scope" :-)


>>>
>>
> --
>
> ___
> specs mailing [EMAIL PROTECTED]://openid.net/mailman/listinfo/specs
>
> --
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.549 / Virus Database: 270.9.6/1797 - Release Date: 18/11/2008 
> 11:23 AM
>
>
>
> --
> [image: ConnectID] 
>
<>___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-20 Thread Paul Madsen




Dirk, typo in Sec 6

The Combined Provider SHOULD in addition obtain, from the Combined
Provider, a list .

paul

Dirk Balfanz wrote:
Ok, new spec is up: http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
  
Dirk.
  
  On Mon, Nov 17, 2008 at 5:40 PM, Dirk
Balfanz <[EMAIL PROTECTED]>
wrote:
  [+Brian
Eaton]


On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]>
wrote:

Sadly, because the OpenID authentication request is not signed, the CK
can't be authenticated, but as you pointed out, although the user may
authorize the application, the CK secret is still required to fetch the
credentials. The worst that could happen is that a user will authorize
an impostor, but the impostor will not be able to retrieve the token.
  
That being said, in our case, the CK contains additional information
besides the scope. Yahoo's OAuth Permissions screen contains a lot of
rich information including the application's name, description,
developer(s), images, authorization lifetimes, etc. Over time, new
fields may be added to the approval page.
  
While it might make sense for the application's scope to be passed in
at authorization time, does it also make sense to define new parameters
for all the other application specific metadata? The actual data that
needs to be displayed on an approval page is very SP specific, and some
SPs may have security/legal policies requiring that all metadata is
manually reviewed, which makes it impossible for metadata to be passed
in at runtime.



Oh I see. Ok. I'l make a new revision of the spec where I add a
required parameter (the consumer key) to the auth request. 

What should the spec recommend the OP should do if the consumer key and
realm don't match? Return a cancel? Return something else?

Another change I'll be making is to take out references to unregistered
consumers. Brian found a weakness in our approach (the one where we
make the association secret the consumer secret) that makes me think we
need to think about unregistered consumers a bit more[1]. 

Dirk.
 
[1] Basically, the problem is that we have oracles around the web that
add OAuth signatures to arbitrary requests. They're called OpenSocial
gadget containers. If and when OpenID signatures and OAuth signatures
converge, with the current propocal we might end up in a situation
where my gadget container will create OAuth signatures using the same
key needed to assert auth responses. 





So that's why SPs may need the CK in order to display the Approval
page. Make sense?
  
Allen
  
  
  
  
  
Dirk Balfanz wrote:
  

Need to know the CK for what? What purpose would hinting at the CK
serve (since it wouldn't prove ownership)? And don't say "scope" :-)

  
  
  
  




  
  
  
  

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs
  
  

No virus found in this incoming message.
Checked by AVG. 
Version: 7.5.549 / Virus Database: 270.9.6/1797 - Release Date: 18/11/2008 11:23 AM
  


-- 



___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid

2008-11-19 Thread Breno de Medeiros
On Wed, Nov 19, 2008 at 4:03 PM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> Breno,
>
> Thanks for your responses.
>
>> The scopes are needed for the approval page to be rendered.
>> The whole thing is meaningless otherwise
>
> I absolutely agree that the auth/authz redirect needs to know what actions 
> are being authorized, ie the "scope". I don't want to eliminate the scope, 
> just use a single opaque token to represent it -- regardless of which aspects 
> any specific SP needs the scope to encompass [app id, resources, permissions, 
> lifetimes...]. The token comes from a URI, which is what really represents 
> the scope.
>
>> You mean that the app has to understand all of the above,
>> but will use that knowledge during the discovery process,
>> rather than authorization
>
> *Something* has to understand all of the above [scope, permissions, 
> lifetime...] -- but it does not have to be the app.

Sure. That something is able to inform the app what to put in the
scope parameter?

> It can be the app. It can be the user. It can be another system that provides 
> discovery details. Perhaps it can be a hyperlink on a web page.
>
> The app just has a URI and it flows from there.

The scope is an optional element of this spec. If and when we have a
discovery mechanism that makes this obsolete, than it can be safely
left empty. Or discovery could provide what to use as the scope
parameter. At this point, since we do not have discovery, the spec
needs an explicit place to talk about scope.

>
>
>> If that [discovery] effort is successful,
>> I do not think any of these issues are intractable.
>
> It is conceivable that discovery can provide 'scope' strings, and even 
> 'consumer' values for unregistered apps -- but that does not feel like it 
> fits well with the web architecture. It feels unnecessarily complicated and 
> OAuth-specific.
> I can image discovery providing:
>  A URI for my address book;
>  A URI for my calendar;
>  A URI for my photos;
>  A separate URI for my photos of a particular conference;
> I am concerned that with the current hybrid draft, discovery will have to 
> define 'scope' strings etc in addition to a URI to access a service. I doubt 
> generic web discovery mechanisms will
> offer that.

Scope strings? what about just using the above URIs as scopes? Clearly
you need to find already the OpenID+OAuth hybrid endpoint & the URIs
indicating scope. Each of these URIs could also have metadata
associated with them via XRD, e.g., they could define their own scope
strings. Or in the absence of these, the URIs themselves could be used
as scopes. There are many options here. I am not sure all of them
violate the web infrastructure or are OAuth-specific.

Let me pose this problem then: Drop the request token request in the
OAuth spec. Now you have discovery and authorization. What do you
suggest to indicate scope?


>
>
>
> James Manger
> [EMAIL PROTECTED]
> Identity and security team — Chief Technology Office — Telstra
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


RE: OpenID/Oauth hybrid

2008-11-19 Thread Manger, James H
Breno,

Thanks for your responses.

> The scopes are needed for the approval page to be rendered.
> The whole thing is meaningless otherwise

I absolutely agree that the auth/authz redirect needs to know what actions are 
being authorized, ie the "scope". I don't want to eliminate the scope, just use 
a single opaque token to represent it -- regardless of which aspects any 
specific SP needs the scope to encompass [app id, resources, permissions, 
lifetimes...]. The token comes from a URI, which is what really represents the 
scope.

> You mean that the app has to understand all of the above,
> but will use that knowledge during the discovery process,
> rather than authorization

*Something* has to understand all of the above [scope, permissions, 
lifetime...] -- but it does not have to be the app.
It can be the app. It can be the user. It can be another system that provides 
discovery details. Perhaps it can be a hyperlink on a web page.

The app just has a URI and it flows from there.


> If that [discovery] effort is successful,
> I do not think any of these issues are intractable.

It is conceivable that discovery can provide 'scope' strings, and even 
'consumer' values for unregistered apps -- but that does not feel like it fits 
well with the web architecture. It feels unnecessarily complicated and 
OAuth-specific.
I can image discovery providing:
  A URI for my address book;
  A URI for my calendar;
  A URI for my photos;
  A separate URI for my photos of a particular conference;
I am concerned that with the current hybrid draft, discovery will have to 
define 'scope' strings etc in addition to a URI to access a service. I doubt 
generic web discovery mechanisms will offer that.



James Manger
[EMAIL PROTECTED]
Identity and security team — Chief Technology Office — Telstra
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Dirk Balfanz
On Wed, Nov 19, 2008 at 2:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

>  Since the new hybrid draft spec doesn't affect the OpenID association
> method, this is moot.
>
> However, the spec should mention what SPs should do if the CK is invalid
> (or doesn't match the realm) in the OpenID authentication request.
> Presumably, the SP should continue servicing the OpenID portion of the
> request, however, the response should indicate why the OAuth portion of the
> request failed.
>

How about, to mimic what happens with association handles, we can return in
the response an openid.oauth.invalid_consumer parameter instead of
openid.oauth.consumer? It would mean that either the CK was just wrong or
that it didn't match the realm. Although at this point it starts to get
pretty complicated.

Does this error condition really need to be communicated back to the RP? For
development etc., it might be enough to just show an error page to the user
explaining what happened.

Dirk.



>
> Allen
>
>
> Dirk Balfanz wrote:
>
>
>
>>>  I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
>> spec, with a new error_code value indicating that the either the CK or the
>> realm was invalid. There may actually need to be 2 errors, one to indicate
>> that the CK is invalid, and another to indicate that the CK is not valid for
>> the realm.
>>
>> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>>
>
>  But Section 8.2 is about the association response. In the auth response,
> we currently only have cancel or setup_needed. If we invent another error
> condition there, we're no longer a pure "extension".
>
>
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Allen Tom
Since the new hybrid draft spec doesn't affect the OpenID association 
method, this is moot.


However, the spec should mention what SPs should do if the CK is invalid 
(or doesn't match the realm) in the OpenID authentication request. 
Presumably, the SP should continue servicing the OpenID portion of the 
request, however, the response should indicate why the OAuth portion of 
the request failed.


Allen


Dirk Balfanz wrote:



I'd recommend an error consistent with Section 8.2.4 in the OpenID
2.0 spec, with a new error_code value indicating that the either
the CK or the realm was invalid. There may actually need to be 2
errors, one to indicate that the CK is invalid, and another to
indicate that the CK is not valid for the realm.

http://openid.net/specs/openid-authentication-2_0.html#anchor20


But Section 8.2 is about the association response. In the auth 
response, we currently only have cancel or setup_needed. If we invent 
another error condition there, we're no longer a pure "extension". 
 


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Martin Atkins

There is definitely a benefit to not having to roll a new implementation 
of key authorization for each provider. I'm not saying that OAuth serves 
no purpose at all.

I'm just saying that requiring a business relationship to exist between 
every consumer and every service provider is not conducive to creating 
an open marketplace where anyone can be a consumer and anyone can be a 
provider as we see with OpenID, and it can't scale beyond a few providers.

So while code reuse is a good thing, I'd like to think we can achieve 
more than that.

Allen Tom wrote:
> Hi Martin,
> 
> Not sure why you say that requiring pre-registration and having an open 
> stack are mutually exclusive. Are you saying that there's no benefit for 
> service providers to provide a standard interface to developers?
> 
> Allen
> 
> 
> Martin Atkins wrote:
>> Allen Tom wrote:
>>>
>>> One  problem with this approach is that many SPs like Yahoo and 
>>> MySpace will require developers to register their site to get a 
>>> Consumer Key. Given that the developer already has to manually get a 
>>> CK, there might not that much value in defining a workflow for 
>>> Consumers to discover the OAuth endpoints.
>>>
>>
>> As long as this is true it will be impossible for such SPs to expose 
>> non-proprietary protocols like PortableContacts, so either these SPs 
>> will need to find a way to work without pre-registration or we'll all 
>> have to accept that the open stack is impossible and go find something 
>> more productive to do.
>>
> 

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Allen Tom
Hi Martin,

Not sure why you say that requiring pre-registration and having an open 
stack are mutually exclusive. Are you saying that there's no benefit for 
service providers to provide a standard interface to developers?

Allen


Martin Atkins wrote:
> Allen Tom wrote:
>>
>> One  problem with this approach is that many SPs like Yahoo and 
>> MySpace will require developers to register their site to get a 
>> Consumer Key. Given that the developer already has to manually get a 
>> CK, there might not that much value in defining a workflow for 
>> Consumers to discover the OAuth endpoints.
>>
>
> As long as this is true it will be impossible for such SPs to expose 
> non-proprietary protocols like PortableContacts, so either these SPs 
> will need to find a way to work without pre-registration or we'll all 
> have to accept that the open stack is impossible and go find something 
> more productive to do.
>

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Dirk Balfanz
On Wed, Nov 19, 2008 at 10:14 AM, Breno de Medeiros <[EMAIL PROTECTED]>wrote:

> On Tue, Nov 18, 2008 at 10:32 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
> >
> >
> > On Tue, Nov 18, 2008 at 10:04 PM, Breno de Medeiros <[EMAIL PROTECTED]>
> > wrote:
> >>
> >> On Tue, Nov 18, 2008 at 10:00 PM, Dirk Balfanz <[EMAIL PROTECTED]>
> wrote:
> >> >
> >> >
> >> > On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]>
> wrote:
> >> >>
> >> >> Dirk Balfanz wrote:
> >> >>>
> >> >>> Oh I see. Ok. I'l make a new revision of the spec where I add a
> >> >>> required
> >> >>> parameter (the consumer key) to the auth request.
> >> >>>
> >> >> Cool, thanks!
> >> >>
> >> >>
> >> >>> What should the spec recommend the OP should do if the consumer key
> >> >>> and
> >> >>> realm don't match? Return a cancel? Return something else?
> >> >>>
> >> >> I'd recommend an error consistent with Section 8.2.4 in the OpenID
> 2.0
> >> >> spec, with a new error_code value indicating that the either the CK
> or
> >> >> the
> >> >> realm was invalid. There may actually need to be 2 errors, one to
> >> >> indicate
> >> >> that the CK is invalid, and another to indicate that the CK is not
> >> >> valid for
> >> >> the realm.
> >> >>
> >> >> http://openid.net/specs/openid-authentication-2_0.html#anchor20
> >> >
> >> > But Section 8.2 is about the association response. In the auth
> response,
> >> > we
> >> > currently only have cancel or setup_needed. If we invent another error
> >> > condition there, we're no longer a pure "extension".
> >>
> >> The solution is to add an optional term in the openid.oauth response
> >> and return the appropriate error code from the OAuth error handling
> >> spec.
> >
> > Well, the oauth errors are about things like the nonce being reused, the
> > signature not verifying, or the request token being revoked. We don't
> have
> > any of that here.
> > It seems to me that in OpenID, you simply don't return a value if the
> > extension in question encountered some sort of problem. We follow that
> > spirit when the user declines the OAuth request (while, at the same time,
> > approving the authentication request). This error condition (realm not
> > matching the CK), however,  feels different. This is more like if the RP
> > violates the "both present or both absent" rule and sends a claimed if
> but
> > no identity. As far as I can tell, the spec is silent on what the SP is
> > supposed to do when such inconsistent requests come in. Maybe that's what
> we
> > should do, too - just say that they have to match, and don't say what
> should
> > happen if they don't?
>
> Sounds good, because such requests may either be accidental or
> malicious, and the OP might have to deal with them accordingly.
>

Ok, new version is up. I took out the sentence that recommended to send a
cancel. I also added a section on discovery (just copied whatever the AX
extension says about that).

Dirk.
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-19 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 10:32 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>
> On Tue, Nov 18, 2008 at 10:04 PM, Breno de Medeiros <[EMAIL PROTECTED]>
> wrote:
>>
>> On Tue, Nov 18, 2008 at 10:00 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>> >
>> >
>> > On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Dirk Balfanz wrote:
>> >>>
>> >>> Oh I see. Ok. I'l make a new revision of the spec where I add a
>> >>> required
>> >>> parameter (the consumer key) to the auth request.
>> >>>
>> >> Cool, thanks!
>> >>
>> >>
>> >>> What should the spec recommend the OP should do if the consumer key
>> >>> and
>> >>> realm don't match? Return a cancel? Return something else?
>> >>>
>> >> I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
>> >> spec, with a new error_code value indicating that the either the CK or
>> >> the
>> >> realm was invalid. There may actually need to be 2 errors, one to
>> >> indicate
>> >> that the CK is invalid, and another to indicate that the CK is not
>> >> valid for
>> >> the realm.
>> >>
>> >> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>> >
>> > But Section 8.2 is about the association response. In the auth response,
>> > we
>> > currently only have cancel or setup_needed. If we invent another error
>> > condition there, we're no longer a pure "extension".
>>
>> The solution is to add an optional term in the openid.oauth response
>> and return the appropriate error code from the OAuth error handling
>> spec.
>
> Well, the oauth errors are about things like the nonce being reused, the
> signature not verifying, or the request token being revoked. We don't have
> any of that here.
> It seems to me that in OpenID, you simply don't return a value if the
> extension in question encountered some sort of problem. We follow that
> spirit when the user declines the OAuth request (while, at the same time,
> approving the authentication request). This error condition (realm not
> matching the CK), however,  feels different. This is more like if the RP
> violates the "both present or both absent" rule and sends a claimed if but
> no identity. As far as I can tell, the spec is silent on what the SP is
> supposed to do when such inconsistent requests come in. Maybe that's what we
> should do, too - just say that they have to match, and don't say what should
> happen if they don't?

Sounds good, because such requests may either be accidental or
malicious, and the OP might have to deal with them accordingly.

> Dirk.
>
>
>>
>> >
>> > Dirk.
>> >>
>> >> Allen
>> >>
>> >
>> >
>>
>>
>>
>> --
>> --Breno
>>
>> +1 (650) 214-1007 desk
>> +1 (408) 212-0135 (Grand Central)
>> MTV-41-3 : 383-A
>> PST (GMT-8) / PDT(GMT-7)
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid

2008-11-19 Thread Breno de Medeiros
On Wed, Nov 19, 2008 at 5:19 AM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> How much special knowledge about the OP/SP is an app expected to have to use 
> the OpenID/OAuth hybrid protocol?  [and some performance issues at the end]
>
> A common case might be an app built to enhance one specific service. It is 
> probably realistic to assume such an app is registered with the SP, and has 
> hardwired knowledge about its OAuth URIs, scopes, signing modes etc.
>
> Another case is an app that dynamically learns who a user's OP is (eg from 
> OpenID discovery) and which SP the user uses for the service of interest 
> (perhaps from the same OpenID discovery). The app notices that the OP and SP 
> are the same (how?) and that they support the hybrid protocol (how?). This 
> app understands OpenID, OAuth, hybrid, and the type of service of interest -- 
> but has no special knowledge about this user's specific OP/SP.
>
> The first case may cover many immediate pain points, particularly as OpenID 
> and OAuth are in their infancy. However, a standard would be much more useful 
> for the whole community and in the medium term if it supported the second 
> case as well.

As I mentioned before, we purposefully let discovery outside of this
spec because there is a separate effort to standardize meta-data
discovery vs. XRD. If that effort is successful, I do not think any of
these issues are intractable.

>
> Even if the discovery aspects are not solved immediately, the hybrid protocol 
> should not *preclude* apps without SP-specific knowledge once discovery 
> mechanisms emerge.

It does not talk about discovery at all, exactly for that reason.

>
>
> The current hybrid draft adds openid.oauth.consumer and openid.oauth.scope 
> fields to an OpenID request. The former forces the app to be pre-registered. 
> The latter requires the app to know about the SP's specific scopes.

The scopes are needed for the approval page to be rendered. The whole
thing is meaningless otherwise.

>
> It seems possible that more parameters might be required in future: perhaps 
> permissions (eg read/write), or lifetime (once-off, for 24 hours, forever).
>
> All these parameters seem to tightly couple the app to the SP.

I would say they tightly couple the request with the meaning of the
authorization required.

>
> An alternative is to add one opaque handle to the OpenID request: a request 
> token. To add a new scope, offer a new permission, support a new lifetime, 
> etc an SP can offer a new URI for getting the new request tokens. As far as 
> the app code is concerned it is just a URI, like any other URI. It doesn't 
> necessarily need code that understands permissions, or scopes, or lifetimes 
> etc.

You mean that the app has to understand all of the above, but will use
that knowledge during the discovery process, rather than
authorization. It needs to know what scope to ask. It needs to know
what permission to require. It does not need to know the lifetime the
OP enforces, but that just indicates that it has no place in the
authorization request.

>
>
>
> Breno de Medeiros said the initial OAuth request for a token "adds a 
> (probably unacceptable) redundant server-to-server call for *every* 
> authentication request".
>
> It may be better for performance to omit the request AFTER the redirect, 
> instead of the request BEFORE the redirect.
>
> OAuth involves:
> 1. get request token
> 2. redirect user to do authorization
> 3. swap request token for access token
> 4. do stuff
>
> Step 3 was added to OAuth to support apps that could not launch/redirect-to a 
> browser. Such apps need the user to manually type in a token, which needs to 
> be short to be human-friendly. Step 3 allows a short token to be exchanged 
> for a longer one that can encode lots of state so the service can operate in 
> a stateless (scalable) manner.
> Step 3 was kept for all OAuth apps (not just those that could not 
> launch/redirect a browser) to keep the spec simple.
>
> The hybrid protocol could save a request/response pair by dropping step 3 (or 
> make it optional so apps that cannot launch/redirect-to a browser can use it).
>
>
> The initial request for a request token (step 1) does not have to affect the 
> user experience -- as it can be done in advance. An app could get request 
> tokens in the background and cache them until one is needed for a hybrid 
> auth/authz redirect.
>
>
> Keeping step 1 but omitting step 3 means the access token needs to be 
> returned in the authentication/authorization response. The request token 
> secret can be used instead of getting a new access token secret.
>
> The hybrid spec says [in section 3 Purpose]
>  "For security reasons, the OA

Re: OpenID/Oauth hybrid

2008-11-19 Thread Breno de Medeiros
On Wed, Nov 19, 2008 at 5:19 AM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> How much special knowledge about the OP/SP is an app expected to have to use 
> the OpenID/OAuth hybrid protocol?  [and some performance issues at the end]
>
> A common case might be an app built to enhance one specific service. It is 
> probably realistic to assume such an app is registered with the SP, and has 
> hardwired knowledge about its OAuth URIs, scopes, signing modes etc.
>
> Another case is an app that dynamically learns who a user's OP is (eg from 
> OpenID discovery) and which SP the user uses for the service of interest 
> (perhaps from the same OpenID discovery). The app notices that the OP and SP 
> are the same (how?) and that they support the hybrid protocol (how?). This 
> app understands OpenID, OAuth, hybrid, and the type of service of interest -- 
> but has no special knowledge about this user's specific OP/SP.
>
> The first case may cover many immediate pain points, particularly as OpenID 
> and OAuth are in their infancy. However, a standard would be much more useful 
> for the whole community and in the medium term if it supported the second 
> case as well.
>
> Even if the discovery aspects are not solved immediately, the hybrid protocol 
> should not *preclude* apps without SP-specific knowledge once discovery 
> mechanisms emerge.
>
>
> The current hybrid draft adds openid.oauth.consumer and openid.oauth.scope 
> fields to an OpenID request. The former forces the app to be pre-registered. 
> The latter requires the app to know about the SP's specific scopes.
>
> It seems possible that more parameters might be required in future: perhaps 
> permissions (eg read/write), or lifetime (once-off, for 24 hours, forever).
>
> All these parameters seem to tightly couple the app to the SP.
>
> An alternative is to add one opaque handle to the OpenID request: a request 
> token. To add a new scope, offer a new permission, support a new lifetime, 
> etc an SP can offer a new URI for getting the new request tokens. As far as 
> the app code is concerned it is just a URI, like any other URI. It doesn't 
> necessarily need code that understands permissions, or scopes, or lifetimes 
> etc.
>
>
>
> Breno de Medeiros said the initial OAuth request for a token "adds a 
> (probably unacceptable) redundant server-to-server call for *every* 
> authentication request".
>
> It may be better for performance to omit the request AFTER the redirect, 
> instead of the request BEFORE the redirect.
>
> OAuth involves:
> 1. get request token
> 2. redirect user to do authorization
> 3. swap request token for access token
> 4. do stuff
>
> Step 3 was added to OAuth to support apps that could not launch/redirect-to a 
> browser. Such apps need the user to manually type in a token, which needs to 
> be short to be human-friendly. Step 3 allows a short token to be exchanged 
> for a longer one that can encode lots of state so the service can operate in 
> a stateless (scalable) manner.
> Step 3 was kept for all OAuth apps (not just those that could not 
> launch/redirect a browser) to keep the spec simple.
>
> The hybrid protocol could save a request/response pair by dropping step 3 (or 
> make it optional so apps that cannot launch/redirect-to a browser can use it).
>
>
> The initial request for a request token (step 1) does not have to affect the 
> user experience -- as it can be done in advance. An app could get request 
> tokens in the background and cache them until one is needed for a hybrid 
> auth/authz redirect.
>
>
> Keeping step 1 but omitting step 3 means the access token needs to be 
> returned in the authentication/authorization response. The request token 
> secret can be used instead of getting a new access token secret.
>
> The hybrid spec says [in section 3 Purpose]
>  "For security reasons, the OAuth access token is not returned in the URL."
> It is not clear what these security reasons are. I suspect they only apply 
> because the hybrid protocol had dropped the token secret from step 1.
>
>
> [It might not even be necessary to perform step 1 for *every* authentication 
> request. If the returned token simply encodes the scope and/or consumer 
> identity, then the service could set a Cache-Control header indicating that 
> the token can be reused for, say, any authentication requests in the next day 
> (I will have to think about any security implications).
> Alternatively define a way for an app to get a batch of request tokens in one 
> go.]

That sounds like an interesting option.

>
>
>
> James Manger
> [EMAIL PROTECTED]
> Identity and security team — Chief Technology Office — Telstra

Re: OpenID/Oauth hybrid

2008-11-19 Thread Breno de Medeiros
James,

OAuth is typically used _once_ to get a long-term capability to access
user's data.
The hybrid protocol is used *many time* to login the user.

So the step _after_ the authorization will happen infrequently, and it
is not a penalty issue to require. The step _before_ the authorization
(if mandated in the hybrid) must happen _every_time_  because the
RP/consumer does not know who the user is. It is throwaway busywork in
the vast majority of cases.

On Wed, Nov 19, 2008 at 5:19 AM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> How much special knowledge about the OP/SP is an app expected to have to use 
> the OpenID/OAuth hybrid protocol?  [and some performance issues at the end]
>
> A common case might be an app built to enhance one specific service. It is 
> probably realistic to assume such an app is registered with the SP, and has 
> hardwired knowledge about its OAuth URIs, scopes, signing modes etc.
>
> Another case is an app that dynamically learns who a user's OP is (eg from 
> OpenID discovery) and which SP the user uses for the service of interest 
> (perhaps from the same OpenID discovery). The app notices that the OP and SP 
> are the same (how?) and that they support the hybrid protocol (how?). This 
> app understands OpenID, OAuth, hybrid, and the type of service of interest -- 
> but has no special knowledge about this user's specific OP/SP.
>
> The first case may cover many immediate pain points, particularly as OpenID 
> and OAuth are in their infancy. However, a standard would be much more useful 
> for the whole community and in the medium term if it supported the second 
> case as well.
>
> Even if the discovery aspects are not solved immediately, the hybrid protocol 
> should not *preclude* apps without SP-specific knowledge once discovery 
> mechanisms emerge.
>
>
> The current hybrid draft adds openid.oauth.consumer and openid.oauth.scope 
> fields to an OpenID request. The former forces the app to be pre-registered. 
> The latter requires the app to know about the SP's specific scopes.
>
> It seems possible that more parameters might be required in future: perhaps 
> permissions (eg read/write), or lifetime (once-off, for 24 hours, forever).
>
> All these parameters seem to tightly couple the app to the SP.
>
> An alternative is to add one opaque handle to the OpenID request: a request 
> token. To add a new scope, offer a new permission, support a new lifetime, 
> etc an SP can offer a new URI for getting the new request tokens. As far as 
> the app code is concerned it is just a URI, like any other URI. It doesn't 
> necessarily need code that understands permissions, or scopes, or lifetimes 
> etc.
>
>
>
> Breno de Medeiros said the initial OAuth request for a token "adds a 
> (probably unacceptable) redundant server-to-server call for *every* 
> authentication request".
>
> It may be better for performance to omit the request AFTER the redirect, 
> instead of the request BEFORE the redirect.
>
> OAuth involves:
> 1. get request token
> 2. redirect user to do authorization
> 3. swap request token for access token
> 4. do stuff
>
> Step 3 was added to OAuth to support apps that could not launch/redirect-to a 
> browser. Such apps need the user to manually type in a token, which needs to 
> be short to be human-friendly. Step 3 allows a short token to be exchanged 
> for a longer one that can encode lots of state so the service can operate in 
> a stateless (scalable) manner.
> Step 3 was kept for all OAuth apps (not just those that could not 
> launch/redirect a browser) to keep the spec simple.
>
> The hybrid protocol could save a request/response pair by dropping step 3 (or 
> make it optional so apps that cannot launch/redirect-to a browser can use it).
>
>
> The initial request for a request token (step 1) does not have to affect the 
> user experience -- as it can be done in advance. An app could get request 
> tokens in the background and cache them until one is needed for a hybrid 
> auth/authz redirect.
>
>
> Keeping step 1 but omitting step 3 means the access token needs to be 
> returned in the authentication/authorization response. The request token 
> secret can be used instead of getting a new access token secret.
>
> The hybrid spec says [in section 3 Purpose]
>  "For security reasons, the OAuth access token is not returned in the URL."
> It is not clear what these security reasons are. I suspect they only apply 
> because the hybrid protocol had dropped the token secret from step 1.
>
>
> [It might not even be necessary to perform step 1 for *every* authentication 
> request. If the returned token simply encodes the scope and/or consumer 
> identity, then 

OpenID/Oauth hybrid

2008-11-19 Thread Manger, James H
How much special knowledge about the OP/SP is an app expected to have to use 
the OpenID/OAuth hybrid protocol?  [and some performance issues at the end]

A common case might be an app built to enhance one specific service. It is 
probably realistic to assume such an app is registered with the SP, and has 
hardwired knowledge about its OAuth URIs, scopes, signing modes etc.

Another case is an app that dynamically learns who a user's OP is (eg from 
OpenID discovery) and which SP the user uses for the service of interest 
(perhaps from the same OpenID discovery). The app notices that the OP and SP 
are the same (how?) and that they support the hybrid protocol (how?). This app 
understands OpenID, OAuth, hybrid, and the type of service of interest -- but 
has no special knowledge about this user's specific OP/SP.

The first case may cover many immediate pain points, particularly as OpenID and 
OAuth are in their infancy. However, a standard would be much more useful for 
the whole community and in the medium term if it supported the second case as 
well.

Even if the discovery aspects are not solved immediately, the hybrid protocol 
should not *preclude* apps without SP-specific knowledge once discovery 
mechanisms emerge.


The current hybrid draft adds openid.oauth.consumer and openid.oauth.scope 
fields to an OpenID request. The former forces the app to be pre-registered. 
The latter requires the app to know about the SP's specific scopes.

It seems possible that more parameters might be required in future: perhaps 
permissions (eg read/write), or lifetime (once-off, for 24 hours, forever).

All these parameters seem to tightly couple the app to the SP.

An alternative is to add one opaque handle to the OpenID request: a request 
token. To add a new scope, offer a new permission, support a new lifetime, etc 
an SP can offer a new URI for getting the new request tokens. As far as the app 
code is concerned it is just a URI, like any other URI. It doesn't necessarily 
need code that understands permissions, or scopes, or lifetimes etc.



Breno de Medeiros said the initial OAuth request for a token "adds a (probably 
unacceptable) redundant server-to-server call for *every* authentication 
request".

It may be better for performance to omit the request AFTER the redirect, 
instead of the request BEFORE the redirect.

OAuth involves:
1. get request token
2. redirect user to do authorization
3. swap request token for access token
4. do stuff

Step 3 was added to OAuth to support apps that could not launch/redirect-to a 
browser. Such apps need the user to manually type in a token, which needs to be 
short to be human-friendly. Step 3 allows a short token to be exchanged for a 
longer one that can encode lots of state so the service can operate in a 
stateless (scalable) manner.
Step 3 was kept for all OAuth apps (not just those that could not 
launch/redirect a browser) to keep the spec simple.

The hybrid protocol could save a request/response pair by dropping step 3 (or 
make it optional so apps that cannot launch/redirect-to a browser can use it).


The initial request for a request token (step 1) does not have to affect the 
user experience -- as it can be done in advance. An app could get request 
tokens in the background and cache them until one is needed for a hybrid 
auth/authz redirect.


Keeping step 1 but omitting step 3 means the access token needs to be returned 
in the authentication/authorization response. The request token secret can be 
used instead of getting a new access token secret.

The hybrid spec says [in section 3 Purpose]
  "For security reasons, the OAuth access token is not returned in the URL."
It is not clear what these security reasons are. I suspect they only apply 
because the hybrid protocol had dropped the token secret from step 1.


[It might not even be necessary to perform step 1 for *every* authentication 
request. If the returned token simply encodes the scope and/or consumer 
identity, then the service could set a Cache-Control header indicating that the 
token can be reused for, say, any authentication requests in the next day (I 
will have to think about any security implications).
Alternatively define a way for an app to get a batch of request tokens in one 
go.]



James Manger
[EMAIL PROTECTED]
Identity and security team — Chief Technology Office — Telstra
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Dirk Balfanz
On Tue, Nov 18, 2008 at 10:04 PM, Breno de Medeiros <[EMAIL PROTECTED]>wrote:

> On Tue, Nov 18, 2008 at 10:00 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
> >
> >
> > On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> >>
> >> Dirk Balfanz wrote:
> >>>
> >>> Oh I see. Ok. I'l make a new revision of the spec where I add a
> required
> >>> parameter (the consumer key) to the auth request.
> >>>
> >> Cool, thanks!
> >>
> >>
> >>> What should the spec recommend the OP should do if the consumer key and
> >>> realm don't match? Return a cancel? Return something else?
> >>>
> >> I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
> >> spec, with a new error_code value indicating that the either the CK or
> the
> >> realm was invalid. There may actually need to be 2 errors, one to
> indicate
> >> that the CK is invalid, and another to indicate that the CK is not valid
> for
> >> the realm.
> >>
> >> http://openid.net/specs/openid-authentication-2_0.html#anchor20
> >
> > But Section 8.2 is about the association response. In the auth response,
> we
> > currently only have cancel or setup_needed. If we invent another error
> > condition there, we're no longer a pure "extension".
>
> The solution is to add an optional term in the openid.oauth response
> and return the appropriate error code from the OAuth error handling
> spec.
>

Well, the oauth errors are about things like the nonce being reused, the
signature not verifying, or the request token being revoked. We don't have
any of that here.

It seems to me that in OpenID, you simply don't return a value if the
extension in question encountered some sort of problem. We follow that
spirit when the user declines the OAuth request (while, at the same time,
approving the authentication request). This error condition (realm not
matching the CK), however,  feels different. This is more like if the RP
violates the "both present or both absent" rule and sends a claimed if but
no identity. As far as I can tell, the spec is silent on what the SP is
supposed to do when such inconsistent requests come in. Maybe that's what we
should do, too - just say that they have to match, and don't say what should
happen if they don't?

Dirk.




>
> >
> > Dirk.
> >>
> >> Allen
> >>
> >
> >
>
>
>
> --
> --Breno
>
> +1 (650) 214-1007 desk
> +1 (408) 212-0135 (Grand Central)
> MTV-41-3 : 383-A
> PST (GMT-8) / PDT(GMT-7)
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Dirk Balfanz
On Tue, Nov 18, 2008 at 6:58 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> Dirk Balfanz wrote:
>
>> Ok, new spec is up:
>> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
>>
>>
>>
>>
> Hi Dirk,
>
> It doesn't look like the hybrid spec changes the OpenID association
> mechanism, so you should not mention the association mechanism in the last
> sentence of Section 3.
>

Good catch. I took out the whole sentence.


>
> Under Security Considerations in Section 11, it would probably be good to
> mention that anyone knowing the CK can force the SP to display the hybrid
> approval page, while standard OAuth requires both the CK and the CSecret  to
> display a vanilla OAuth approval page.
>

Good idea. I added a paragraph in Section 11 explaining this.

Dirk.


> Thanks
> Allen
>
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 10:04 PM, Breno de Medeiros <[EMAIL PROTECTED]> wrote:
> On Tue, Nov 18, 2008 at 10:00 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>>
>>
>> On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>>>
>>> Dirk Balfanz wrote:

 Oh I see. Ok. I'l make a new revision of the spec where I add a required
 parameter (the consumer key) to the auth request.

>>> Cool, thanks!
>>>
>>>
 What should the spec recommend the OP should do if the consumer key and
 realm don't match? Return a cancel? Return something else?

>>> I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
>>> spec, with a new error_code value indicating that the either the CK or the
>>> realm was invalid. There may actually need to be 2 errors, one to indicate
>>> that the CK is invalid, and another to indicate that the CK is not valid for
>>> the realm.
>>>
>>> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>>
>> But Section 8.2 is about the association response. In the auth response, we
>> currently only have cancel or setup_needed. If we invent another error
>> condition there, we're no longer a pure "extension".
>
> The solution is to add an optional term in the openid.oauth response
> and return the appropriate error code from the OAuth error handling
> spec.

Actually, I meant a required term, to be present only in "unsuccessful
OAuth responses"

>
>>
>> Dirk.
>>>
>>> Allen
>>>
>>
>>
>
>
>
> --
> --Breno
>
> +1 (650) 214-1007 desk
> +1 (408) 212-0135 (Grand Central)
> MTV-41-3 : 383-A
> PST (GMT-8) / PDT(GMT-7)
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 10:00 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>
> On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>>
>> Dirk Balfanz wrote:
>>>
>>> Oh I see. Ok. I'l make a new revision of the spec where I add a required
>>> parameter (the consumer key) to the auth request.
>>>
>> Cool, thanks!
>>
>>
>>> What should the spec recommend the OP should do if the consumer key and
>>> realm don't match? Return a cancel? Return something else?
>>>
>> I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
>> spec, with a new error_code value indicating that the either the CK or the
>> realm was invalid. There may actually need to be 2 errors, one to indicate
>> that the CK is invalid, and another to indicate that the CK is not valid for
>> the realm.
>>
>> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>
> But Section 8.2 is about the association response. In the auth response, we
> currently only have cancel or setup_needed. If we invent another error
> condition there, we're no longer a pure "extension".

The solution is to add an optional term in the openid.oauth response
and return the appropriate error code from the OAuth error handling
spec.

>
> Dirk.
>>
>> Allen
>>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Dirk Balfanz
On Tue, Nov 18, 2008 at 6:19 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> Dirk Balfanz wrote:
>
>>
>> Oh I see. Ok. I'l make a new revision of the spec where I add a required
>> parameter (the consumer key) to the auth request.
>>
>>  Cool, thanks!
>
>
>  What should the spec recommend the OP should do if the consumer key and
>> realm don't match? Return a cancel? Return something else?
>>
>>  I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0
> spec, with a new error_code value indicating that the either the CK or the
> realm was invalid. There may actually need to be 2 errors, one to indicate
> that the CK is invalid, and another to indicate that the CK is not valid for
> the realm.
>
> http://openid.net/specs/openid-authentication-2_0.html#anchor20
>

But Section 8.2 is about the association response. In the auth response, we
currently only have cancel or setup_needed. If we invent another error
condition there, we're no longer a pure "extension".

Dirk.


> Allen
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 7:57 PM, Martin Atkins <[EMAIL PROTECTED]> wrote:
> Breno de Medeiros wrote:
>>
>> At this point, there is no reasonably secure formulation of OAuth
>> without key registration.
>>
>> We hope to add one for the hybrid protocol.
>>
>
> If that is true then OAuth is broken. Wouldn't it be better to fix this
> problem in OAuth itself rather than only in the hybrid protocol?

Addressing it at the level of the OAuth spec may be useful also, but
it is not really desirable to have the request token step in the
hybrid protocol for performance reasons. And any such "fix" for OAuth
that will work also for desktop apps will probably involve the request
token step (in fact it is not too hard to envision some strategies
along those lines).

>
> Mobile and desktop apps need to be able to use OAuth as well, and since
> consumer secrets are impractical for such apps there has to be a way to use
> OAuth without consumer secrets in order to support them. The hybrid protocol
> is not appropriate for desktop/mobile apps, so fixing it at this level does
> not address the problem.
>
> Cheers,
> Martin
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Martin Atkins
Breno de Medeiros wrote:
> 
> At this point, there is no reasonably secure formulation of OAuth
> without key registration.
> 
> We hope to add one for the hybrid protocol.
> 

If that is true then OAuth is broken. Wouldn't it be better to fix this 
problem in OAuth itself rather than only in the hybrid protocol?

Mobile and desktop apps need to be able to use OAuth as well, and since 
consumer secrets are impractical for such apps there has to be a way to 
use OAuth without consumer secrets in order to support them. The hybrid 
protocol is not appropriate for desktop/mobile apps, so fixing it at 
this level does not address the problem.

Cheers,
Martin
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 7:45 PM, Martin Atkins <[EMAIL PROTECTED]> wrote:
> Allen Tom wrote:
>> Manger, James H wrote:
>>> Ideally, an app would attempt to access a protected resource at an SP and 
>>> get:
>>> * A 401 Unauthenticated response from the SP; with
>>> * A "WWW-Authenticate: OAuth" header; with
>>> * A parameter providing the authorization URL; and
>>> * Another parameter with the OP URL (when OpenID/OAuth hybrid was 
>>> supported).
>>>
>>
>> One  problem with this approach is that many SPs like Yahoo and MySpace
>> will require developers to register their site to get a Consumer Key.
>> Given that the developer already has to manually get a CK, there might
>> not that much value in defining a workflow for Consumers to discover the
>> OAuth endpoints.
>>
>
> As long as this is true it will be impossible for such SPs to expose
> non-proprietary protocols like PortableContacts, so either these SPs
> will need to find a way to work without pre-registration or we'll all
> have to accept that the open stack is impossible and go find something
> more productive to do.

At this point, there is no reasonably secure formulation of OAuth
without key registration.

We hope to add one for the hybrid protocol.

>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Martin Atkins
Allen Tom wrote:
> Manger, James H wrote:
>> Ideally, an app would attempt to access a protected resource at an SP and 
>> get:
>> * A 401 Unauthenticated response from the SP; with
>> * A “WWW-Authenticate: OAuth” header; with
>> * A parameter providing the authorization URL; and
>> * Another parameter with the OP URL (when OpenID/OAuth hybrid was supported).
>>   
> 
> One  problem with this approach is that many SPs like Yahoo and MySpace 
> will require developers to register their site to get a Consumer Key. 
> Given that the developer already has to manually get a CK, there might 
> not that much value in defining a workflow for Consumers to discover the 
> OAuth endpoints.
> 

As long as this is true it will be impossible for such SPs to expose 
non-proprietary protocols like PortableContacts, so either these SPs 
will need to find a way to work without pre-registration or we'll all 
have to accept that the open stack is impossible and go find something 
more productive to do.

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Allen Tom
Dirk Balfanz wrote:
> Ok, new spec is up: 
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
>
>
>

Hi Dirk,

It doesn't look like the hybrid spec changes the OpenID association 
mechanism, so you should not mention the association mechanism in the 
last sentence of Section 3.

Under Security Considerations in Section 11, it would probably be good 
to mention that anyone knowing the CK can force the SP to display the 
hybrid approval page, while standard OAuth requires both the CK and the 
CSecret  to display a vanilla OAuth approval page.

Thanks
Allen


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 6:26 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> Manger, James H wrote:
>> Ideally, an app would attempt to access a protected resource at an SP and 
>> get:
>> * A 401 Unauthenticated response from the SP; with
>> * A "WWW-Authenticate: OAuth" header; with
>> * A parameter providing the authorization URL; and
>> * Another parameter with the OP URL (when OpenID/OAuth hybrid was supported).
>>
>
> One  problem with this approach is that many SPs like Yahoo and MySpace
> will require developers to register their site to get a Consumer Key.
> Given that the developer already has to manually get a CK, there might
> not that much value in defining a workflow for Consumers to discover the
> OAuth endpoints.

I believe this technical problem will be solved anyway by the
integrated OpenID/OAuth discovery mechanism via XRD (currently under
discussion). As Allen remarks, though, its value will be limited while
manual registration is required by most service providers.

>
> Allen
>
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Allen Tom
Manger, James H wrote:
> Ideally, an app would attempt to access a protected resource at an SP and get:
> * A 401 Unauthenticated response from the SP; with
> * A “WWW-Authenticate: OAuth” header; with
> * A parameter providing the authorization URL; and
> * Another parameter with the OP URL (when OpenID/OAuth hybrid was supported).
>   

One  problem with this approach is that many SPs like Yahoo and MySpace 
will require developers to register their site to get a Consumer Key. 
Given that the developer already has to manually get a CK, there might 
not that much value in defining a workflow for Consumers to discover the 
OAuth endpoints.

Allen



___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Allen Tom
Dirk Balfanz wrote:
>
> Oh I see. Ok. I'l make a new revision of the spec where I add a 
> required parameter (the consumer key) to the auth request.
>
Cool, thanks!


> What should the spec recommend the OP should do if the consumer key 
> and realm don't match? Return a cancel? Return something else?
>
I'd recommend an error consistent with Section 8.2.4 in the OpenID 2.0 
spec, with a new error_code value indicating that the either the CK or 
the realm was invalid. There may actually need to be 2 errors, one to 
indicate that the CK is invalid, and another to indicate that the CK is 
not valid for the realm.

http://openid.net/specs/openid-authentication-2_0.html#anchor20

Allen

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
On Tue, Nov 18, 2008 at 12:44 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
> On Tue, Nov 18, 2008 at 12:00 PM, Breno de Medeiros <[EMAIL PROTECTED]>
> wrote:
>>
>> You have some references like "in Section 5." Please change them to
>> "in Section 5 of the OAuth Spec".
>
> But then it would be pointing to the wrong thing :-)
>
> "in Section 5" means Section 5 of the document the reader is currently
> reading.

Well, the current wording is confusing: "consumer key agreed upon in
Section 5 (Before Requesting Authentication - Registration). ". We did
not do anything in Section 5, except vaguely defer to the OAuth spec.
Something like "consumer key, described in Section 5 (...)."

>
> Dirk.
>
>>
>> On Tue, Nov 18, 2008 at 11:56 AM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>> > Ok, new spec is up:
>> >
>> > http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
>> >
>> > Dirk.
>> >
>> > On Mon, Nov 17, 2008 at 5:40 PM, Dirk Balfanz <[EMAIL PROTECTED]>
>> > wrote:
>> >>
>> >> [+Brian Eaton]
>> >>
>> >> On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>> >>>
>> >>> Sadly, because the OpenID authentication request is not signed, the CK
>> >>> can't be authenticated, but as you pointed out, although the user may
>> >>> authorize the application, the CK secret is still required to fetch
>> >>> the
>> >>> credentials. The worst that could happen is that a user will authorize
>> >>> an
>> >>> impostor, but the impostor will not be able to retrieve the token.
>> >>>
>> >>> That being said, in our case, the CK contains additional information
>> >>> besides the scope. Yahoo's OAuth Permissions screen contains a lot of
>> >>> rich
>> >>> information including the application's name, description,
>> >>> developer(s),
>> >>> images, authorization lifetimes, etc. Over time, new fields may be
>> >>> added to
>> >>> the approval page.
>> >>>
>> >>> While it might make sense for the application's scope to be passed in
>> >>> at
>> >>> authorization time, does it also make sense to define new parameters
>> >>> for all
>> >>> the other application specific metadata? The actual data that needs to
>> >>> be
>> >>> displayed on an approval page is very SP specific, and some SPs may
>> >>> have
>> >>> security/legal policies requiring that all metadata is manually
>> >>> reviewed,
>> >>> which makes it impossible for metadata to be passed in at runtime.
>> >>
>> >> Oh I see. Ok. I'l make a new revision of the spec where I add a
>> >> required
>> >> parameter (the consumer key) to the auth request.
>> >>
>> >> What should the spec recommend the OP should do if the consumer key and
>> >> realm don't match? Return a cancel? Return something else?
>> >>
>> >> Another change I'll be making is to take out references to unregistered
>> >> consumers. Brian found a weakness in our approach (the one where we
>> >> make the
>> >> association secret the consumer secret) that makes me think we need to
>> >> think
>> >> about unregistered consumers a bit more[1].
>> >>
>> >> Dirk.
>> >>
>> >> [1] Basically, the problem is that we have oracles around the web that
>> >> add
>> >> OAuth signatures to arbitrary requests. They're called OpenSocial
>> >> gadget
>> >> containers. If and when OpenID signatures and OAuth signatures
>> >> converge,
>> >> with the current propocal we might end up in a situation where my
>> >> gadget
>> >> container will create OAuth signatures using the same key needed to
>> >> assert
>> >> auth responses.
>> >>
>> >>
>> >>>
>> >>> So that's why SPs may need the CK in order to display the Approval
>> >>> page.
>> >>> Make sense?
>> >>>
>> >>> Allen
>> >>>
>> >>>
>> >>>
>> >>> Dirk Balfanz wrote:
>> 
>>  Need to know the CK for what? What purpose would hinting at the CK
>>  serve
>>  (since it wouldn't prove ownership)? And don't say "scope" :-)
>> 
>> >>>
>> >>
>> >
>> >
>>
>>
>>
>> --
>> --Breno
>>
>> +1 (650) 214-1007 desk
>> +1 (408) 212-0135 (Grand Central)
>> MTV-41-3 : 383-A
>> PST (GMT-8) / PDT(GMT-7)
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Dirk Balfanz
On Tue, Nov 18, 2008 at 12:00 PM, Breno de Medeiros <[EMAIL PROTECTED]>wrote:

> You have some references like "in Section 5." Please change them to
> "in Section 5 of the OAuth Spec".
>

But then it would be pointing to the wrong thing :-)

"in Section 5" means Section 5 of the document the reader is currently
reading.

Dirk.


>
> On Tue, Nov 18, 2008 at 11:56 AM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
> > Ok, new spec is up:
> >
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
> >
> > Dirk.
> >
> > On Mon, Nov 17, 2008 at 5:40 PM, Dirk Balfanz <[EMAIL PROTECTED]>
> wrote:
> >>
> >> [+Brian Eaton]
> >>
> >> On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> >>>
> >>> Sadly, because the OpenID authentication request is not signed, the CK
> >>> can't be authenticated, but as you pointed out, although the user may
> >>> authorize the application, the CK secret is still required to fetch the
> >>> credentials. The worst that could happen is that a user will authorize
> an
> >>> impostor, but the impostor will not be able to retrieve the token.
> >>>
> >>> That being said, in our case, the CK contains additional information
> >>> besides the scope. Yahoo's OAuth Permissions screen contains a lot of
> rich
> >>> information including the application's name, description,
> developer(s),
> >>> images, authorization lifetimes, etc. Over time, new fields may be
> added to
> >>> the approval page.
> >>>
> >>> While it might make sense for the application's scope to be passed in
> at
> >>> authorization time, does it also make sense to define new parameters
> for all
> >>> the other application specific metadata? The actual data that needs to
> be
> >>> displayed on an approval page is very SP specific, and some SPs may
> have
> >>> security/legal policies requiring that all metadata is manually
> reviewed,
> >>> which makes it impossible for metadata to be passed in at runtime.
> >>
> >> Oh I see. Ok. I'l make a new revision of the spec where I add a required
> >> parameter (the consumer key) to the auth request.
> >>
> >> What should the spec recommend the OP should do if the consumer key and
> >> realm don't match? Return a cancel? Return something else?
> >>
> >> Another change I'll be making is to take out references to unregistered
> >> consumers. Brian found a weakness in our approach (the one where we make
> the
> >> association secret the consumer secret) that makes me think we need to
> think
> >> about unregistered consumers a bit more[1].
> >>
> >> Dirk.
> >>
> >> [1] Basically, the problem is that we have oracles around the web that
> add
> >> OAuth signatures to arbitrary requests. They're called OpenSocial gadget
> >> containers. If and when OpenID signatures and OAuth signatures converge,
> >> with the current propocal we might end up in a situation where my gadget
> >> container will create OAuth signatures using the same key needed to
> assert
> >> auth responses.
> >>
> >>
> >>>
> >>> So that's why SPs may need the CK in order to display the Approval
> page.
> >>> Make sense?
> >>>
> >>> Allen
> >>>
> >>>
> >>>
> >>> Dirk Balfanz wrote:
> 
>  Need to know the CK for what? What purpose would hinting at the CK
> serve
>  (since it wouldn't prove ownership)? And don't say "scope" :-)
> 
> >>>
> >>
> >
> >
>
>
>
> --
> --Breno
>
> +1 (650) 214-1007 desk
> +1 (408) 212-0135 (Grand Central)
> MTV-41-3 : 383-A
> PST (GMT-8) / PDT(GMT-7)
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Breno de Medeiros
You have some references like "in Section 5." Please change them to
"in Section 5 of the OAuth Spec".

On Tue, Nov 18, 2008 at 11:56 AM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
> Ok, new spec is up:
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html
>
> Dirk.
>
> On Mon, Nov 17, 2008 at 5:40 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>>
>> [+Brian Eaton]
>>
>> On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>>>
>>> Sadly, because the OpenID authentication request is not signed, the CK
>>> can't be authenticated, but as you pointed out, although the user may
>>> authorize the application, the CK secret is still required to fetch the
>>> credentials. The worst that could happen is that a user will authorize an
>>> impostor, but the impostor will not be able to retrieve the token.
>>>
>>> That being said, in our case, the CK contains additional information
>>> besides the scope. Yahoo's OAuth Permissions screen contains a lot of rich
>>> information including the application's name, description, developer(s),
>>> images, authorization lifetimes, etc. Over time, new fields may be added to
>>> the approval page.
>>>
>>> While it might make sense for the application's scope to be passed in at
>>> authorization time, does it also make sense to define new parameters for all
>>> the other application specific metadata? The actual data that needs to be
>>> displayed on an approval page is very SP specific, and some SPs may have
>>> security/legal policies requiring that all metadata is manually reviewed,
>>> which makes it impossible for metadata to be passed in at runtime.
>>
>> Oh I see. Ok. I'l make a new revision of the spec where I add a required
>> parameter (the consumer key) to the auth request.
>>
>> What should the spec recommend the OP should do if the consumer key and
>> realm don't match? Return a cancel? Return something else?
>>
>> Another change I'll be making is to take out references to unregistered
>> consumers. Brian found a weakness in our approach (the one where we make the
>> association secret the consumer secret) that makes me think we need to think
>> about unregistered consumers a bit more[1].
>>
>> Dirk.
>>
>> [1] Basically, the problem is that we have oracles around the web that add
>> OAuth signatures to arbitrary requests. They're called OpenSocial gadget
>> containers. If and when OpenID signatures and OAuth signatures converge,
>> with the current propocal we might end up in a situation where my gadget
>> container will create OAuth signatures using the same key needed to assert
>> auth responses.
>>
>>
>>>
>>> So that's why SPs may need the CK in order to display the Approval page.
>>> Make sense?
>>>
>>> Allen
>>>
>>>
>>>
>>> Dirk Balfanz wrote:

 Need to know the CK for what? What purpose would hinting at the CK serve
 (since it wouldn't prove ownership)? And don't say "scope" :-)

>>>
>>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-18 Thread Dirk Balfanz
Ok, new spec is up:
http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html

Dirk.

On Mon, Nov 17, 2008 at 5:40 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:

> [+Brian Eaton]
>
> On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>> Sadly, because the OpenID authentication request is not signed, the CK
>> can't be authenticated, but as you pointed out, although the user may
>> authorize the application, the CK secret is still required to fetch the
>> credentials. The worst that could happen is that a user will authorize an
>> impostor, but the impostor will not be able to retrieve the token.
>>
>> That being said, in our case, the CK contains additional information
>> besides the scope. Yahoo's OAuth Permissions screen contains a lot of rich
>> information including the application's name, description, developer(s),
>> images, authorization lifetimes, etc. Over time, new fields may be added to
>> the approval page.
>>
>> While it might make sense for the application's scope to be passed in at
>> authorization time, does it also make sense to define new parameters for all
>> the other application specific metadata? The actual data that needs to be
>> displayed on an approval page is very SP specific, and some SPs may have
>> security/legal policies requiring that all metadata is manually reviewed,
>> which makes it impossible for metadata to be passed in at runtime.
>>
>
> Oh I see. Ok. I'l make a new revision of the spec where I add a required
> parameter (the consumer key) to the auth request.
>
> What should the spec recommend the OP should do if the consumer key and
> realm don't match? Return a cancel? Return something else?
>
> Another change I'll be making is to take out references to unregistered
> consumers. Brian found a weakness in our approach (the one where we make the
> association secret the consumer secret) that makes me think we need to think
> about unregistered consumers a bit more[1].
>
> Dirk.
>
> [1] Basically, the problem is that we have oracles around the web that add
> OAuth signatures to arbitrary requests. They're called OpenSocial gadget
> containers. If and when OpenID signatures and OAuth signatures converge,
> with the current propocal we might end up in a situation where my gadget
> container will create OAuth signatures using the same key needed to assert
> auth responses.
>
>
>
>> So that's why SPs may need the CK in order to display the Approval page.
>> Make sense?
>>
>> Allen
>>
>>
>>
>>
>> Dirk Balfanz wrote:
>>
>>>
>>> Need to know the CK for what? What purpose would hinting at the CK serve
>>> (since it wouldn't prove ownership)? And don't say "scope" :-)
>>>
>>>
>>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Breno de Medeiros
On Mon, Nov 17, 2008 at 7:53 PM, Manger, James H
<[EMAIL PROTECTED]> wrote:
> Dirk, Allen, Brian, etc
>
> How about sending an 'unauthorized request token' with the OpenID 
> authentication request, instead of a scope or a consumer key?
>
> A Service Provider can choose to encode the consumer key or scope into the 
> request token when issuing it if they need those details when interacting 
> with the user.
>

That is how we started, but it adds a (probably unacceptable)
redundant server-to-server call for *every* authentication request. We
have decided to abandon this option after much debate. The request
token request is not needed for security reasons because (1) the
return_to URL is mandatory (hybrid only makes sense for web apps) and
(2) The OP/SP signs the response (unlike plain OAuth).

> From the OAuth perspective there would be minimal change to the protocol. 
> Instead of redirecting the user to the authorization URL (after adding the 
> token), the user is redirected to the OP URL (after adding the token). That 
> makes it easier to be confident that the hybrid model does not introduce new 
> security weaknesses.
>
> Ideally, an app would attempt to access a protected resource at an SP and get:
> * A 401 Unauthenticated response from the SP; with
> * A "WWW-Authenticate: OAuth" header; with
> * A parameter providing the authorization URL; and
> * Another parameter with the OP URL (when OpenID/OAuth hybrid was supported).
>
> If the app supports the hybrid mode, and the SP has indicated it supports the 
> hybrid mode by including an OP URL in a 401 response, and the user's OpenID 
> identifier resolves (via discovery) to the same OP, then the app can trigger 
> the hybrid auth/authz action.
>
> James Manger
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


RE: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Manger, James H
Dirk, Allen, Brian, etc

How about sending an ‘unauthorized request token’ with the OpenID 
authentication request, instead of a scope or a consumer key?

A Service Provider can choose to encode the consumer key or scope into the 
request token when issuing it if they need those details when interacting with 
the user.

From the OAuth perspective there would be minimal change to the protocol. 
Instead of redirecting the user to the authorization URL (after adding the 
token), the user is redirected to the OP URL (after adding the token). That 
makes it easier to be confident that the hybrid model does not introduce new 
security weaknesses.

Ideally, an app would attempt to access a protected resource at an SP and get:
* A 401 Unauthenticated response from the SP; with
* A “WWW-Authenticate: OAuth” header; with
* A parameter providing the authorization URL; and
* Another parameter with the OP URL (when OpenID/OAuth hybrid was supported).

If the app supports the hybrid mode, and the SP has indicated it supports the 
hybrid mode by including an OP URL in a 401 response, and the user’s OpenID 
identifier resolves (via discovery) to the same OP, then the app can trigger 
the hybrid auth/authz action.

James Manger
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Dirk Balfanz
[+Brian Eaton]

On Mon, Nov 17, 2008 at 4:31 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> Sadly, because the OpenID authentication request is not signed, the CK
> can't be authenticated, but as you pointed out, although the user may
> authorize the application, the CK secret is still required to fetch the
> credentials. The worst that could happen is that a user will authorize an
> impostor, but the impostor will not be able to retrieve the token.
>
> That being said, in our case, the CK contains additional information
> besides the scope. Yahoo's OAuth Permissions screen contains a lot of rich
> information including the application's name, description, developer(s),
> images, authorization lifetimes, etc. Over time, new fields may be added to
> the approval page.
>
> While it might make sense for the application's scope to be passed in at
> authorization time, does it also make sense to define new parameters for all
> the other application specific metadata? The actual data that needs to be
> displayed on an approval page is very SP specific, and some SPs may have
> security/legal policies requiring that all metadata is manually reviewed,
> which makes it impossible for metadata to be passed in at runtime.
>

Oh I see. Ok. I'l make a new revision of the spec where I add a required
parameter (the consumer key) to the auth request.

What should the spec recommend the OP should do if the consumer key and
realm don't match? Return a cancel? Return something else?

Another change I'll be making is to take out references to unregistered
consumers. Brian found a weakness in our approach (the one where we make the
association secret the consumer secret) that makes me think we need to think
about unregistered consumers a bit more[1].

Dirk.

[1] Basically, the problem is that we have oracles around the web that add
OAuth signatures to arbitrary requests. They're called OpenSocial gadget
containers. If and when OpenID signatures and OAuth signatures converge,
with the current propocal we might end up in a situation where my gadget
container will create OAuth signatures using the same key needed to assert
auth responses.



> So that's why SPs may need the CK in order to display the Approval page.
> Make sense?
>
> Allen
>
>
>
>
> Dirk Balfanz wrote:
>
>>
>> Need to know the CK for what? What purpose would hinting at the CK serve
>> (since it wouldn't prove ownership)? And don't say "scope" :-)
>>
>>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Allen Tom
Sadly, because the OpenID authentication request is not signed, the CK 
can't be authenticated, but as you pointed out, although the user may 
authorize the application, the CK secret is still required to fetch the 
credentials. The worst that could happen is that a user will authorize 
an impostor, but the impostor will not be able to retrieve the token.

That being said, in our case, the CK contains additional information 
besides the scope. Yahoo's OAuth Permissions screen contains a lot of 
rich information including the application's name, description, 
developer(s), images, authorization lifetimes, etc. Over time, new 
fields may be added to the approval page.

While it might make sense for the application's scope to be passed in at 
authorization time, does it also make sense to define new parameters for 
all the other application specific metadata? The actual data that needs 
to be displayed on an approval page is very SP specific, and some SPs 
may have security/legal policies requiring that all metadata is manually 
reviewed, which makes it impossible for metadata to be passed in at runtime.

So that's why SPs may need the CK in order to display the Approval page. 
Make sense?

Allen



Dirk Balfanz wrote:
>
> Need to know the CK for what? What purpose would hinting at the CK 
> serve (since it wouldn't prove ownership)? And don't say "scope" :-)
>

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Dirk Balfanz
> Yes, but as Breno said, the OAuth spec does not currently have a concept of
> scope, however, the Consumer Key is definitely part of the spec. It would
> seem to be more generally useful for a Consumer to signal Consumer Key,
> rather than signaling scope, as many SPs need to know the CK, but not all of
> them will need to know the scope. That being said, the CK and Scope should


Need to know the CK for what? What purpose would hinting at the CK serve
(since it wouldn't prove ownership)? And don't say "scope" :-)

Dirk.


> just be 2 separate parameters.
>
>
>
>  If you don't want to put consumer keys there, let consumers put some other
>> encoding of the scope there.
>>
> I have no problem with having an optional parameter for CK, and a different
> optional parameter for scope.
> Allen
>
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-17 Thread Allen Tom
Dirk Balfanz wrote:
>
> So, again, the proposal seems to be to embed a hint to the consumer 
> key into the association request (which will then be threaded through 
> the association handle into the auth request). This doesn't buy us any 
> additional security, it just hints at what scope the consumer is 
> allowed to request (for those SPs that encode scope in consumer keys) 
> - the security is provided later in the access token request step.
>
It's unfortunate that the OpenID Authentication request isn't signed, 
because if it was signed, it would be nearly equivalent to OAuth, 
because an OAuth approval page is only displayed using a valid Request 
Token that was returned via a signed request.

> Now, my argument is that we already _have_ a place to signal scope. 
> It's the openid.oauth.scope parameter.

Yes, but as Breno said, the OAuth spec does not currently have a concept 
of scope, however, the Consumer Key is definitely part of the spec. It 
would seem to be more generally useful for a Consumer to signal Consumer 
Key, rather than signaling scope, as many SPs need to know the CK, but 
not all of them will need to know the scope. That being said, the CK and 
Scope should just be 2 separate parameters.



> If you don't want to put consumer keys there, let consumers put some 
> other encoding of the scope there.
I have no problem with having an optional parameter for CK, and a 
different optional parameter for scope. 

Allen


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-16 Thread Dirk Balfanz
I don't want to put parameters into the protocol that aren't necessary.
So far, I've heard one argument for adding the consumer key in the
association request: to give a hint to the authorization UI as to whether or
not the consumer is authorized to request the scope passed in the
openid.oauth.scope parameter. The idea is, as far as I can tell, to encode
the consumer key into the association handle, and thus have the consumer key
available at authorization time.

I'm saying "hint", because it is nothing more than that - neither the
association request nor the auth request are signed, and the consumer can
put whatever they want into the consumer key (in the association request) or
association handle (in the auth request). Which is fine, since an attacker
lying about these things won't be able to exchange the request token for an
access token later.

So, again, the proposal seems to be to embed a hint to the consumer key into
the association request (which will then be threaded through the association
handle into the auth request). This doesn't buy us any additional security,
it just hints at what scope the consumer is allowed to request (for those
SPs that encode scope in consumer keys) - the security is provided later in
the access token request step.

Now, my argument is that we already _have_ a place to signal scope. It's the
openid.oauth.scope parameter. If you don't want to put consumer keys there,
let consumers put some other encoding of the scope there. If you're an OP
where scope isn't really decided at authorization time (but later, when we
know the real consumer key of the consumer), then this will just be a hint
for you to get the UI right. But that's no different from putting the
consumer key into the association request - that's only a hint, too.

So we get the same guarantees with less parameters if we stick with the
proposal.

Right? :-)

Dirk.



On Thu, Nov 13, 2008 at 8:32 PM, Breno de Medeiros <[EMAIL PROTECTED]> wrote:

> I changed my mind on this one.
>
> A. The fact that scopes are not standardized in OAuth today does not
> mean that in the future *some* scopes (e.g., related to portable
> contacts) may be standardized.
>
> B. The consumer key is an intrinsic identifier of the party requesting
> association and probably should be included, with the realm, in the
> association request (if available).
>
> There is no need, however, to include any additional information in
> the authentication request. The consumer key can be bound to the
> association handle.
>
>
> On Thu, Nov 13, 2008 at 6:43 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> > In the future, we might update our OAuth service to allow developers to
> pass
> > us the scope dynamically, rather than binding the scope to the CK.
> However,
> > we'd still probably require developers to agree to a TOS in order to get
> a
> > CK/CS.
> >
> > I'm concerned about having to tell developers to pass the CK via the
> scope
> > parameter for the first revision, and then later telling them that scope
> > parameter actually means the scope. I'd like to have one parameter
> (possibly
> > optional) that means CK, and another parameter (also optional) that means
> > Scope. Overloading a single parameter can get really messy in the long
> run.
> >
> > Allen
> >
> >
> >
> >
> >
> >
> >
> > Breno de Medeiros wrote:
> >>
> >> Ok, but what is wrong for you to instruct the developers to insert the
> >> consumer_key in the scope parameter, and they bind it to the approved
> >> request token?
> >>
> >
> >
>
>
>
> --
> --Breno
>
> +1 (650) 214-1007 desk
> +1 (408) 212-0135 (Grand Central)
> MTV-41-3 : 383-A
> PST (GMT-8) / PDT(GMT-7)
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Breno de Medeiros
I changed my mind on this one.

A. The fact that scopes are not standardized in OAuth today does not
mean that in the future *some* scopes (e.g., related to portable
contacts) may be standardized.

B. The consumer key is an intrinsic identifier of the party requesting
association and probably should be included, with the realm, in the
association request (if available).

There is no need, however, to include any additional information in
the authentication request. The consumer key can be bound to the
association handle.


On Thu, Nov 13, 2008 at 6:43 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> In the future, we might update our OAuth service to allow developers to pass
> us the scope dynamically, rather than binding the scope to the CK. However,
> we'd still probably require developers to agree to a TOS in order to get a
> CK/CS.
>
> I'm concerned about having to tell developers to pass the CK via the scope
> parameter for the first revision, and then later telling them that scope
> parameter actually means the scope. I'd like to have one parameter (possibly
> optional) that means CK, and another parameter (also optional) that means
> Scope. Overloading a single parameter can get really messy in the long run.
>
> Allen
>
>
>
>
>
>
>
> Breno de Medeiros wrote:
>>
>> Ok, but what is wrong for you to instruct the developers to insert the
>> consumer_key in the scope parameter, and they bind it to the approved
>> request token?
>>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Allen Tom
In the future, we might update our OAuth service to allow developers to 
pass us the scope dynamically, rather than binding the scope to the CK. 
However, we'd still probably require developers to agree to a TOS in 
order to get a CK/CS.

I'm concerned about having to tell developers to pass the CK via the 
scope parameter for the first revision, and then later telling them that 
scope parameter actually means the scope. I'd like to have one parameter 
(possibly optional) that means CK, and another parameter (also optional) 
that means Scope. Overloading a single parameter can get really messy in 
the long run.

Allen







Breno de Medeiros wrote:
> Ok, but what is wrong for you to instruct the developers to insert the
> consumer_key in the scope parameter, and they bind it to the approved
> request token?
>   

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Breno de Medeiros
On Thu, Nov 13, 2008 at 5:58 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
> Adding OAuth signature methods, including RSA-SHA1, to OpenID 2.1 is
> supposed to happen. It is probably not a good idea to return RSA keys via
> association requests for unregistered consumers though.

Ok, but what is wrong for you to instruct the developers to insert the
consumer_key in the scope parameter, and they bind it to the approved
request token?

Since each OAuth SP has defined scope differently, they will have to
look it up what to put in the scope anyway.

>
> Allen
>
>
> Breno de Medeiros wrote:
>
> 2008/11/13 Allen Tom <[EMAIL PROTECTED]>:
>
>
> In the registered consumer case, why not just do:
>
> openid.assoc_handle=consumer_key
> openid.mac_key=consumer_secret
>
>
> This implies that the consumer key is HMAC-SHA1. What if it is RSA?
>
>
>
> ?
>
> In the unregistered consumer case, the OpenID association request could be
> extended to hand out Consumer keys, which are then used as the association
> handle. The scopes and realm could be passed to the association request as
> well.
>
>
> Allen
>
>
>
> Dirk Balfanz wrote:
>
> Yes, I can see how that would happen.
>
> So how about for OPs who tie scope to Consumer Keys, their
> openid.oauth.scope syntax would look something like this:
>
> openid.oauth.scope=consumer_key:scope1,scope2,scope3
>
> Or, if there is a one-to-one mapping from consumer_key to scope, simply like
> this:
>
> openid.oauth.scope=consumer_key
>
> Dirk.
>
> On Thu, Nov 13, 2008 at 2:04 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:
>
>
> Certainly but the consumer context you display to the user is falsely
> represented based solely on the realm in that circumstance.
>
> Sent from a mobile device.
> On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>
>
> On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>
>
> Dirk Balfanz wrote:
>
>
> I don't think this is true - I believe the realm is sufficient. Let me
> try and explain. (We'll assume registered consumers.) On the approval page,
> we need to identify the consumer. In its current form, the spec basically
> assumes that you're gonna use the realm for that.
>
>
> You're assuming that a realm has only one CK. A site might have multiple
> consumer keys, with different scopes attached to them...
>
>
> Actually, I wasn't assuming that. At access token request time, you follow
> the map from consumer-key to realm (that's the direction you can do, right)?
> If that's a many-to-one map then this will give you one realm. Then you
> check whether that's the realm that the request token was issued to.
>
> The one thing you're losing is that you can't, at approval time, figure
> out whether that realm is requesting a scope that they have access to. So a
> realm could ask for a certain scope in their auth request, the user approves
> it, and then at access-token-request time, you won't issue the token b/c
> they're using a CK that doesn't have enough privileges. It's still secure,
> but gives you a crappy user experience if the consumer mixes up their CKs.
>
> Wait - I think I have an idea: what if the Yahoo-specific way of
> requesting the scope is to include the CK into the openid.oauth.scope
> parameter? That way, you can at approval time make sure that they are
> requesting a scope that they are actually authorized to pick up. This
> wouldn't be for security purposes - just as a way to make sure the user
> experience isn't surprising.
>
> Dirk.
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>
>
>
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Allen Tom
Adding OAuth signature methods, including RSA-SHA1, to OpenID 2.1 is 
supposed to happen. It is probably not a good idea to return RSA keys 
via association requests for unregistered consumers though.


Allen


Breno de Medeiros wrote:

2008/11/13 Allen Tom <[EMAIL PROTECTED]>:
  

In the registered consumer case, why not just do:

openid.assoc_handle=consumer_key
openid.mac_key=consumer_secret



This implies that the consumer key is HMAC-SHA1. What if it is RSA?

  

?

In the unregistered consumer case, the OpenID association request could be
extended to hand out Consumer keys, which are then used as the association
handle. The scopes and realm could be passed to the association request as
well.


Allen



Dirk Balfanz wrote:

Yes, I can see how that would happen.

So how about for OPs who tie scope to Consumer Keys, their
openid.oauth.scope syntax would look something like this:

openid.oauth.scope=consumer_key:scope1,scope2,scope3

Or, if there is a one-to-one mapping from consumer_key to scope, simply like
this:

openid.oauth.scope=consumer_key

Dirk.

On Thu, Nov 13, 2008 at 2:04 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:


Certainly but the consumer context you display to the user is falsely
represented based solely on the realm in that circumstance.

Sent from a mobile device.
On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:



On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
  

Dirk Balfanz wrote:


I don't think this is true - I believe the realm is sufficient. Let me
try and explain. (We'll assume registered consumers.) On the approval page,
we need to identify the consumer. In its current form, the spec basically
assumes that you're gonna use the realm for that.
  

You're assuming that a realm has only one CK. A site might have multiple
consumer keys, with different scopes attached to them...


Actually, I wasn't assuming that. At access token request time, you follow
the map from consumer-key to realm (that's the direction you can do, right)?
If that's a many-to-one map then this will give you one realm. Then you
check whether that's the realm that the request token was issued to.

The one thing you're losing is that you can't, at approval time, figure
out whether that realm is requesting a scope that they have access to. So a
realm could ask for a certain scope in their auth request, the user approves
it, and then at access-token-request time, you won't issue the token b/c
they're using a CK that doesn't have enough privileges. It's still secure,
but gives you a crappy user experience if the consumer mixes up their CKs.

Wait - I think I have an idea: what if the Yahoo-specific way of
requesting the scope is to include the CK into the openid.oauth.scope
parameter? That way, you can at approval time make sure that they are
requesting a scope that they are actually authorized to pick up. This
wouldn't be for security purposes - just as a way to make sure the user
experience isn't surprising.

Dirk.

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs
  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs







  


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Breno de Medeiros
2008/11/13 Allen Tom <[EMAIL PROTECTED]>:
> In the registered consumer case, why not just do:
>
> openid.assoc_handle=consumer_key
> openid.mac_key=consumer_secret

This implies that the consumer key is HMAC-SHA1. What if it is RSA?

>
> ?
>
> In the unregistered consumer case, the OpenID association request could be
> extended to hand out Consumer keys, which are then used as the association
> handle. The scopes and realm could be passed to the association request as
> well.
>
>
> Allen
>
>
>
> Dirk Balfanz wrote:
>
> Yes, I can see how that would happen.
>
> So how about for OPs who tie scope to Consumer Keys, their
> openid.oauth.scope syntax would look something like this:
>
> openid.oauth.scope=consumer_key:scope1,scope2,scope3
>
> Or, if there is a one-to-one mapping from consumer_key to scope, simply like
> this:
>
> openid.oauth.scope=consumer_key
>
> Dirk.
>
> On Thu, Nov 13, 2008 at 2:04 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:
>>
>> Certainly but the consumer context you display to the user is falsely
>> represented based solely on the realm in that circumstance.
>>
>> Sent from a mobile device.
>> On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>> On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
>>>
>>> Dirk Balfanz wrote:

 I don't think this is true - I believe the realm is sufficient. Let me
 try and explain. (We'll assume registered consumers.) On the approval page,
 we need to identify the consumer. In its current form, the spec basically
 assumes that you're gonna use the realm for that.
>>>
>>> You're assuming that a realm has only one CK. A site might have multiple
>>> consumer keys, with different scopes attached to them...
>>
>> Actually, I wasn't assuming that. At access token request time, you follow
>> the map from consumer-key to realm (that's the direction you can do, right)?
>> If that's a many-to-one map then this will give you one realm. Then you
>> check whether that's the realm that the request token was issued to.
>>
>> The one thing you're losing is that you can't, at approval time, figure
>> out whether that realm is requesting a scope that they have access to. So a
>> realm could ask for a certain scope in their auth request, the user approves
>> it, and then at access-token-request time, you won't issue the token b/c
>> they're using a CK that doesn't have enough privileges. It's still secure,
>> but gives you a crappy user experience if the consumer mixes up their CKs.
>>
>> Wait - I think I have an idea: what if the Yahoo-specific way of
>> requesting the scope is to include the CK into the openid.oauth.scope
>> parameter? That way, you can at approval time make sure that they are
>> requesting a scope that they are actually authorized to pick up. This
>> wouldn't be for security purposes - just as a way to make sure the user
>> experience isn't surprising.
>>
>> Dirk.
>>
>> ___
>> specs mailing list
>> specs@openid.net
>> http://openid.net/mailman/listinfo/specs
>
>
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>



-- 
--Breno

+1 (650) 214-1007 desk
+1 (408) 212-0135 (Grand Central)
MTV-41-3 : 383-A
PST (GMT-8) / PDT(GMT-7)
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Allen Tom

In the registered consumer case, why not just do:

openid.assoc_handle=consumer_key
openid.mac_key=consumer_secret

?

In the unregistered consumer case, the OpenID association request could 
be extended to hand out Consumer keys, which are then used as the 
association handle. The scopes and realm could be passed to the 
association request as well.



Allen



Dirk Balfanz wrote:

Yes, I can see how that would happen.

So how about for OPs who tie scope to Consumer Keys, their 
openid.oauth.scope syntax would look something like this:


openid.oauth.scope=consumer_key:scope1,scope2,scope3

Or, if there is a one-to-one mapping from consumer_key to scope, 
simply like this:


openid.oauth.scope=consumer_key

Dirk.

On Thu, Nov 13, 2008 at 2:04 PM, Darren Bounds <[EMAIL PROTECTED] 
> wrote:


Certainly but the consumer context you display to the user is
falsely represented based solely on the realm in that circumstance.


Sent from a mobile device.

On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]
> wrote:




On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]
> wrote:

Dirk Balfanz wrote:


I don't think this is true - I believe the realm is
sufficient. Let me try and explain. (We'll assume
registered consumers.) On the approval page, we need to
identify the consumer. In its current form, the spec
basically assumes that you're gonna use the realm for that.


You're assuming that a realm has only one CK. A site might
have multiple consumer keys, with different scopes attached
to them...


Actually, I wasn't assuming that. At access token request time,
you follow the map from consumer-key to realm (that's the
direction you can do, right)? If that's a many-to-one map then
this will give you one realm. Then you check whether that's the
realm that the request token was issued to.

The one thing you're losing is that you can't, at approval time,
figure out whether that realm is requesting a scope that they
have access to. So a realm could ask for a certain scope in their
auth request, the user approves it, and then at
access-token-request time, you won't issue the token b/c they're
using a CK that doesn't have enough privileges. It's still
secure, but gives you a crappy user experience if the consumer
mixes up their CKs.

Wait - I think I have an idea: what if the Yahoo-specific way of
requesting the scope is to include the CK into the
openid.oauth.scope parameter? That way, you can at approval time
make sure that they are requesting a scope that they are actually
authorized to pick up. This wouldn't be for security purposes -
just as a way to make sure the user experience isn't surprising.

Dirk.

___
specs mailing list
specs@openid.net 
http://openid.net/mailman/listinfo/specs





___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Dirk Balfanz
Yes, I can see how that would happen.

So how about for OPs who tie scope to Consumer Keys, their
openid.oauth.scope syntax would look something like this:

openid.oauth.scope=consumer_key:scope1,scope2,scope3

Or, if there is a one-to-one mapping from consumer_key to scope, simply like
this:

openid.oauth.scope=consumer_key

Dirk.

On Thu, Nov 13, 2008 at 2:04 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:

> Certainly but the consumer context you display to the user is falsely
> represented based solely on the realm in that circumstance.
>
> Sent from a mobile device.
>
> On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>
>
> On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom < <[EMAIL PROTECTED]>
> [EMAIL PROTECTED]> wrote:
>
>> Dirk Balfanz wrote:
>>
>>>
>>> I don't think this is true - I believe the realm is sufficient. Let me
>>> try and explain. (We'll assume registered consumers.) On the approval page,
>>> we need to identify the consumer. In its current form, the spec basically
>>> assumes that you're gonna use the realm for that.
>>>
>>
>> You're assuming that a realm has only one CK. A site might have multiple
>> consumer keys, with different scopes attached to them...
>>
>
> Actually, I wasn't assuming that. At access token request time, you follow
> the map from consumer-key to realm (that's the direction you can do, right)?
> If that's a many-to-one map then this will give you one realm. Then you
> check whether that's the realm that the request token was issued to.
>
> The one thing you're losing is that you can't, at approval time, figure out
> whether that realm is requesting a scope that they have access to. So a
> realm could ask for a certain scope in their auth request, the user approves
> it, and then at access-token-request time, you won't issue the token b/c
> they're using a CK that doesn't have enough privileges. It's still secure,
> but gives you a crappy user experience if the consumer mixes up their CKs.
>
> Wait - I think I have an idea: what if the Yahoo-specific way of requesting
> the scope is to include the CK into the openid.oauth.scope parameter? That
> way, you can at approval time make sure that they are requesting a scope
> that they are actually authorized to pick up. This wouldn't be for security
> purposes - just as a way to make sure the user experience isn't surprising.
>
> Dirk.
>
> ___
> specs mailing list
> specs@openid.net
> http://openid.net/mailman/listinfo/specs
>
>
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Darren Bounds
Certainly but the consumer context you display to the user is falsely  
represented based solely on the realm in that circumstance.


Sent from a mobile device.

On Nov 13, 2008, at 4:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:




On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]> wrote:
Dirk Balfanz wrote:

I don't think this is true - I believe the realm is sufficient. Let  
me try and explain. (We'll assume registered consumers.) On the  
approval page, we need to identify the consumer. In its current  
form, the spec basically assumes that you're gonna use the realm for  
that.


You're assuming that a realm has only one CK. A site might have  
multiple consumer keys, with different scopes attached to them...


Actually, I wasn't assuming that. At access token request time, you  
follow the map from consumer-key to realm (that's the direction you  
can do, right)? If that's a many-to-one map then this will give you  
one realm. Then you check whether that's the realm that the request  
token was issued to.


The one thing you're losing is that you can't, at approval time,  
figure out whether that realm is requesting a scope that they have  
access to. So a realm could ask for a certain scope in their auth  
request, the user approves it, and then at access-token-request  
time, you won't issue the token b/c they're using a CK that doesn't  
have enough privileges. It's still secure, but gives you a crappy  
user experience if the consumer mixes up their CKs.


Wait - I think I have an idea: what if the Yahoo-specific way of  
requesting the scope is to include the CK into the  
openid.oauth.scope parameter? That way, you can at approval time  
make sure that they are requesting a scope that they are actually  
authorized to pick up. This wouldn't be for security purposes - just  
as a way to make sure the user experience isn't surprising.


Dirk.

___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Dirk Balfanz
On Thu, Nov 13, 2008 at 1:58 PM, Darren Bounds <[EMAIL PROTECTED]> wrote:

> I think so. What about cases where two descrete applications/consumers
> share a realm?
>

You think it makes sense, or that I'm missing something? :-) Anyway, are
those two applications that have nothing to do with each other? If so, then
they're probably not going to share a realm. After all, which application
are we logging the user into?

If it's the case that Allen is bringing up, and this is really the same
application just using different consumer keys for different purposes, then
I think we're fine - a mapping from consumer key to (one) realm should
suffice.

Dirk.


>
> Sent from a mobile device.
>
> On Nov 13, 2008, at 3:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:
>
>
>
> On Thu, Nov 13, 2008 at 12:46 PM, Allen Tom < <[EMAIL PROTECTED]>
> [EMAIL PROTECTED]> wrote:
>
>>  Hi Yariv,
>>
>> In the registered consumer case, the SP will need the Consumer Key to show
>> the Approval page. Previous versions of the spec had the Request Token in
>> the OpenID Authentication request, which allowed the SP to derive the
>> Consumer Key from the Request Token. At the IIW, we had discussed somehow
>> tying the Association Handle to the Consumer Key.
>>
>> Regardless of the solution, the SP will need to be know the Consumer Key
>> in order to properly identify the OAuth Consumer when displaying the
>> Approval page. The OpenID Realm is not quite sufficient, at least for SPs
>> which require consumers to pre-register for a CK.
>>
>
> I don't think this is true - I believe the realm is sufficient. Let me try
> and explain. (We'll assume registered consumers.) On the approval page, we
> need to identify the consumer. In its current form, the spec basically
> assumes that you're gonna use the realm for that.
>
> Let's assume that The Bad Guy somehow managed to sneak a misleading realm
> into a request, i.e. the user sees the realm on the login page and clicks
> "approve" when he wouldn't have approved had he known the real identity of
> The Bad Guy.
>
> The OP embeds, in the request token, the realm to which the request token
> was issued.
>
> Later, when The Bad Guy tries to exchange the request token for an access
> token, it won't work, b/c The Bad Guy only has access to his own consumer
> secret, which doesn't match the realm embedded in the request token.
>
> So we _do_ have a binding from the request token to the consumer key, it's
> just enforced later, not at approval time.
>
> Does this make sense, or am I missing something?
>
> Dirk.
>
>
>
>>
>> One possible optimization would be to just use the Consumer Key as the
>> OpenID Association Handle, and Consumer Secret as the OpenID Association.
>> The Consumer can just sign the OpenID Auth request using its CK/CS and the
>> OP can return a pre-approved response token in the OpenID assertion. The
>> Consumer can then exchange the response token for the OAuth Access Token/
>> ATS.
>>
>> Thoughts?
>> Allen
>>
>>
>>
>> Yariv Adan wrote:
>>
>> Following the IIW session on this topic, we updated the spec in
>> <http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html>
>> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.htmlto
>>  address the issues that were raised. Especially, optimizing on how OAuth
>> request token is handled, allowed to remove one full roundtrip!
>> Would appreciate any feedback on the updated suggestion.
>>
>> Thanks
>>
>> On Mon, Nov 3, 2008 at 12:00 PM, < <[EMAIL PROTECTED]>
>> [EMAIL PROTECTED]> wrote:
>>
>>> Send specs mailing list submissions to
>>> specs@openid.net
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>> <http://openid.net/mailman/listinfo/specs>
>>> http://openid.net/mailman/listinfo/specs
>>> or, via email, send a message with subject or body 'help' to
>>> <[EMAIL PROTECTED]>[EMAIL PROTECTED]
>>>
>>> You can reach the person managing the list at
>>> <[EMAIL PROTECTED]>[EMAIL PROTECTED]
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of specs digest..."
>>>
>>>
>>> Today's Topics:
>>>
>>>   1. Proposal to create the OpenID OAuth Hybrid Working Group
>>>  (Yariv Adan)
>>&g

Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Dirk Balfanz
On Thu, Nov 13, 2008 at 1:45 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

> Dirk Balfanz wrote:
>
>>
>> I don't think this is true - I believe the realm is sufficient. Let me try
>> and explain. (We'll assume registered consumers.) On the approval page, we
>> need to identify the consumer. In its current form, the spec basically
>> assumes that you're gonna use the realm for that.
>>
>
> You're assuming that a realm has only one CK. A site might have multiple
> consumer keys, with different scopes attached to them...
>

Actually, I wasn't assuming that. At access token request time, you follow
the map from consumer-key to realm (that's the direction you can do, right)?
If that's a many-to-one map then this will give you one realm. Then you
check whether that's the realm that the request token was issued to.

The one thing you're losing is that you can't, at approval time, figure out
whether that realm is requesting a scope that they have access to. So a
realm could ask for a certain scope in their auth request, the user approves
it, and then at access-token-request time, you won't issue the token b/c
they're using a CK that doesn't have enough privileges. It's still secure,
but gives you a crappy user experience if the consumer mixes up their CKs.

Wait - I think I have an idea: what if the Yahoo-specific way of requesting
the scope is to include the CK into the openid.oauth.scope parameter? That
way, you can at approval time make sure that they are requesting a scope
that they are actually authorized to pick up. This wouldn't be for security
purposes - just as a way to make sure the user experience isn't surprising.

Dirk.
___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Darren Bounds
I think so. What about cases where two descrete applications/consumers  
share a realm?


Sent from a mobile device.

On Nov 13, 2008, at 3:58 PM, Dirk Balfanz <[EMAIL PROTECTED]> wrote:




On Thu, Nov 13, 2008 at 12:46 PM, Allen Tom <[EMAIL PROTECTED]>  
wrote:

Hi Yariv,

In the registered consumer case, the SP will need the Consumer Key  
to show the Approval page. Previous versions of the spec had the  
Request Token in the OpenID Authentication request, which allowed  
the SP to derive the Consumer Key from the Request Token. At the  
IIW, we had discussed somehow tying the Association Handle to the  
Consumer Key.


Regardless of the solution, the SP will need to be know the Consumer  
Key in order to properly identify the OAuth Consumer when displaying  
the Approval page. The OpenID Realm is not quite sufficient, at  
least for SPs which require consumers to pre-register for a CK.


I don't think this is true - I believe the realm is sufficient. Let  
me try and explain. (We'll assume registered consumers.) On the  
approval page, we need to identify the consumer. In its current  
form, the spec basically assumes that you're gonna use the realm for  
that.


Let's assume that The Bad Guy somehow managed to sneak a misleading  
realm into a request, i.e. the user sees the realm on the login page  
and clicks "approve" when he wouldn't have approved had he known the  
real identity of The Bad Guy.


The OP embeds, in the request token, the realm to which the request  
token was issued.


Later, when The Bad Guy tries to exchange the request token for an  
access token, it won't work, b/c The Bad Guy only has access to his  
own consumer secret, which doesn't match the realm embedded in the  
request token.


So we _do_ have a binding from the request token to the consumer  
key, it's just enforced later, not at approval time.


Does this make sense, or am I missing something?

Dirk.



One possible optimization would be to just use the Consumer Key as  
the OpenID Association Handle, and Consumer Secret as the OpenID  
Association. The Consumer can just sign the OpenID Auth request  
using its CK/CS and the OP can return a pre-approved response token  
in the OpenID assertion. The Consumer can then exchange the response  
token for the OAuth Access Token/ ATS.


Thoughts?
Allen



Yariv Adan wrote:


Following the IIW session on this topic, we updated the spec in http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html 
 to address the issues that were raised. Especially, optimizing on  
how OAuth request token is handled, allowed to remove one full  
roundtrip!

Would appreciate any feedback on the updated suggestion.

Thanks

On Mon, Nov 3, 2008 at 12:00 PM, <[EMAIL PROTECTED]> wrote:
Send specs mailing list submissions to
   specs@openid.net

To subscribe or unsubscribe via the World Wide Web, visit
   http://openid.net/mailman/listinfo/specs
or, via email, send a message with subject or body 'help' to
   [EMAIL PROTECTED]

You can reach the person managing the list at
   [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of specs digest..."


Today's Topics:

  1. Proposal to create the OpenID OAuth Hybrid Working Group
 (Yariv Adan)


--- 
---


Message: 1
Date: Mon, 3 Nov 2008 15:30:57 +0100
From: Yariv Adan <[EMAIL PROTECTED]>
Subject: Proposal to create the OpenID OAuth Hybrid Working Group
To: specs@openid.net
Message-ID:
   <[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"

 In accordance with the OpenID Foundation IPR policies and  
procedures<
http://openid.net/foundation/intellectual-property/ > this note  
proposes the

formation of a new working group chartered to produce an OpenID
specification.
As per Section 4.1 of the Policies, the specifics of the proposed  
working

group are:

Background Information:
OpenID has always been focused on how to enable user-authentication  
within

the browser.  Over the last year, OAuth has been developed to allow
authorization either from within a browser, desktop software, or  
mobile

devices.  Obviously there has been interest in using OpenID and OAuth
together allowing a user to share their identity as well as grant a  
Relying
Party access to an OAuth protected resource in a single step.  A  
small group
of people have been working on developing an extension to OpenID  
which makes

this possible in a collaborative fashion within
http://code.google.com/p/step2/.  This small project includes a  
draft spec
and Open Source implementations which the proposers would like to  
finalize

within the OpenID Foundation.


Working Group Name:
OpenID OAuth Hybrid Working Group


Purpose:
Produce a standard OpenID extension to the Open

Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Allen Tom
Dirk Balfanz wrote:
>
> I don't think this is true - I believe the realm is sufficient. Let me 
> try and explain. (We'll assume registered consumers.) On the approval 
> page, we need to identify the consumer. In its current form, the spec 
> basically assumes that you're gonna use the realm for that.

You're assuming that a realm has only one CK. A site might have multiple 
consumer keys, with different scopes attached to them...

Allen


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


Re: OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Dirk Balfanz
On Thu, Nov 13, 2008 at 12:46 PM, Allen Tom <[EMAIL PROTECTED]> wrote:

>  Hi Yariv,
>
> In the registered consumer case, the SP will need the Consumer Key to show
> the Approval page. Previous versions of the spec had the Request Token in
> the OpenID Authentication request, which allowed the SP to derive the
> Consumer Key from the Request Token. At the IIW, we had discussed somehow
> tying the Association Handle to the Consumer Key.
>
> Regardless of the solution, the SP will need to be know the Consumer Key in
> order to properly identify the OAuth Consumer when displaying the Approval
> page. The OpenID Realm is not quite sufficient, at least for SPs which
> require consumers to pre-register for a CK.
>

I don't think this is true - I believe the realm is sufficient. Let me try
and explain. (We'll assume registered consumers.) On the approval page, we
need to identify the consumer. In its current form, the spec basically
assumes that you're gonna use the realm for that.

Let's assume that The Bad Guy somehow managed to sneak a misleading realm
into a request, i.e. the user sees the realm on the login page and clicks
"approve" when he wouldn't have approved had he known the real identity of
The Bad Guy.

The OP embeds, in the request token, the realm to which the request token
was issued.

Later, when The Bad Guy tries to exchange the request token for an access
token, it won't work, b/c The Bad Guy only has access to his own consumer
secret, which doesn't match the realm embedded in the request token.

So we _do_ have a binding from the request token to the consumer key, it's
just enforced later, not at approval time.

Does this make sense, or am I missing something?

Dirk.



>
> One possible optimization would be to just use the Consumer Key as the
> OpenID Association Handle, and Consumer Secret as the OpenID Association.
> The Consumer can just sign the OpenID Auth request using its CK/CS and the
> OP can return a pre-approved response token in the OpenID assertion. The
> Consumer can then exchange the response token for the OAuth Access Token/
> ATS.
>
> Thoughts?
> Allen
>
>
>
> Yariv Adan wrote:
>
> Following the IIW session on this topic, we updated the spec in
> http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.htmlto
>  address the issues that were raised. Especially, optimizing on how OAuth
> request token is handled, allowed to remove one full roundtrip!
> Would appreciate any feedback on the updated suggestion.
>
> Thanks
>
> On Mon, Nov 3, 2008 at 12:00 PM, <[EMAIL PROTECTED]> wrote:
>
>> Send specs mailing list submissions to
>>specs@openid.net
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>http://openid.net/mailman/listinfo/specs
>> or, via email, send a message with subject or body 'help' to
>>[EMAIL PROTECTED]
>>
>> You can reach the person managing the list at
>>[EMAIL PROTECTED]
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of specs digest..."
>>
>>
>> Today's Topics:
>>
>>   1. Proposal to create the OpenID OAuth Hybrid Working Group
>>  (Yariv Adan)
>>
>>
>> --
>>
>> Message: 1
>> Date: Mon, 3 Nov 2008 15:30:57 +0100
>> From: Yariv Adan <[EMAIL PROTECTED]>
>> Subject: Proposal to create the OpenID OAuth Hybrid Working Group
>> To: specs@openid.net
>> Message-ID:
>><[EMAIL PROTECTED]>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>>  In accordance with the OpenID Foundation IPR policies and procedures<
>> http://openid.net/foundation/intellectual-property/ > this note proposes
>> the
>> formation of a new working group chartered to produce an OpenID
>> specification.
>> As per Section 4.1 of the Policies, the specifics of the proposed working
>> group are:
>>
>> Background Information:
>> OpenID has always been focused on how to enable user-authentication within
>> the browser.  Over the last year, OAuth has been developed to allow
>> authorization either from within a browser, desktop software, or mobile
>> devices.  Obviously there has been interest in using OpenID and OAuth
>> together allowing a user to share their identity as well as grant a
>> Relying
>> Party access to an OAuth protected resource in a single step.  A small
>> group
>> of people have been working on developing an extension to OpenID which
>> makes
>> 

OpenID/Oauth hybrid [was Re: specs Digest, Vol 27, Issue 3]

2008-11-13 Thread Allen Tom

Hi Yariv,

In the registered consumer case, the SP will need the Consumer Key to 
show the Approval page. Previous versions of the spec had the Request 
Token in the OpenID Authentication request, which allowed the SP to 
derive the Consumer Key from the Request Token. At the IIW, we had 
discussed somehow tying the Association Handle to the Consumer Key.


Regardless of the solution, the SP will need to be know the Consumer Key 
in order to properly identify the OAuth Consumer when displaying the 
Approval page. The OpenID Realm is not quite sufficient, at least for 
SPs which require consumers to pre-register for a CK.


One possible optimization would be to just use the Consumer Key as the 
OpenID Association Handle, and Consumer Secret as the OpenID 
Association. The Consumer can just sign the OpenID Auth request using 
its CK/CS and the OP can return a pre-approved response token in the 
OpenID assertion. The Consumer can then exchange the response token for 
the OAuth Access Token/ ATS.


Thoughts?
Allen



Yariv Adan wrote:
Following the IIW session on this topic, we updated the spec in 
http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html 
to address the issues that were raised. Especially, optimizing on how 
OAuth request token is handled, allowed to remove one full roundtrip!

Would appreciate any feedback on the updated suggestion.

Thanks

On Mon, Nov 3, 2008 at 12:00 PM, <[EMAIL PROTECTED] 
<mailto:[EMAIL PROTECTED]>> wrote:


Send specs mailing list submissions to
   specs@openid.net <mailto:specs@openid.net>

To subscribe or unsubscribe via the World Wide Web, visit
   http://openid.net/mailman/listinfo/specs
or, via email, send a message with subject or body 'help' to
   [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

You can reach the person managing the list at
   [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

When replying, please edit your Subject line so it is more specific
than "Re: Contents of specs digest..."


    Today's Topics:

  1. Proposal to create the OpenID OAuth Hybrid Working Group
 (Yariv Adan)


--

Message: 1
Date: Mon, 3 Nov 2008 15:30:57 +0100
From: Yariv Adan <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
Subject: Proposal to create the OpenID OAuth Hybrid Working Group
To: specs@openid.net <mailto:specs@openid.net>
Message-ID:
 
 <[EMAIL PROTECTED]

<mailto:[EMAIL PROTECTED]>>
Content-Type: text/plain; charset="iso-8859-1"

 In accordance with the OpenID Foundation IPR policies and procedures<
http://openid.net/foundation/intellectual-property/ > this note
proposes the
formation of a new working group chartered to produce an OpenID
specification.
As per Section 4.1 of the Policies, the specifics of the proposed
working
group are:

Background Information:
OpenID has always been focused on how to enable
user-authentication within
the browser.  Over the last year, OAuth has been developed to allow
authorization either from within a browser, desktop software, or
mobile
devices.  Obviously there has been interest in using OpenID and OAuth
together allowing a user to share their identity as well as grant
a Relying
Party access to an OAuth protected resource in a single step.  A
small group
of people have been working on developing an extension to OpenID
which makes
this possible in a collaborative fashion within
http://code.google.com/p/step2/.  This small project includes a
draft spec
and Open Source implementations which the proposers would like to
finalize
within the OpenID Foundation.


Working Group Name:
OpenID OAuth Hybrid Working Group


Purpose:
Produce a standard OpenID extension to the OpenID Authentication
protocol
that provides a mechanism to embed an OAuth approval request into
an OpenID
authentication request to permit combined user approval. The extension
addresses the use case where the OpenID Provider and OAuth Service
Provider
are the same service. To provide good user experience, it is
important to
present a combined authentication and authorization screen for the two
protocols.


Scope:
Standardize the draft Hybrid Protocol (

http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html)
as an official OpenID Extension describing how to combine an OpenID
authentication request with the approval of an OAuth request token.


Anticipated Contributions:
Draft specification referenced above and various text
contributions as more
developers implement it.


Proposed List of Specifications:
Op

Re: Proposal to create the OpenID OAuth Hybrid Working Group

2008-11-08 Thread David Recordon
I see this as being really needed and quite a bunch of work has  
already gone into the doc.  I'm wondering if it would be better to  
write a Scope which describes the work and list the current draft as  
an Anticipated Contribution rather than just saw that the Scope is to  
standardize that document.


Cheers,
--David

On Nov 3, 2008, at 2:33 AM, Yariv Adan wrote:

 In accordance with the OpenID Foundation IPR policies and  
procedures<http://openid.net/foundation/intellectual-property/ >  
this note proposes the formation of a new working group chartered to  
produce an OpenID specification.


As per Section 4.1 of the Policies, the specifics of the proposed  
working group are:


Background Information:
OpenID has always been focused on how to enable user-authentication  
within the browser.  Over the last year, OAuth has been developed to  
allow authorization either from within a browser, desktop software,  
or mobile devices.  Obviously there has been interest in using  
OpenID and OAuth together allowing a user to share their identity as  
well as grant a Relying Party access to an OAuth protected resource  
in a single step.  A small group of people have been working on  
developing an extension to OpenID which makes this possible in a  
collaborative fashion withinhttp://code.google.com/p/step2/.  This  
small project includes a draft spec and Open Source implementations  
which the proposers would like to finalize within the OpenID  
Foundation.



Working Group Name:
OpenID OAuth Hybrid Working Group


Purpose:
Produce a standard OpenID extension to the OpenID Authentication  
protocol that provides a mechanism to embed an OAuth approval  
request into an OpenID authentication request to permit combined  
user approval. The extension addresses the use case where the OpenID  
Provider and OAuth Service Provider are the same service. To provide  
good user experience, it is important to present a combined  
authentication and authorization screen for the two protocols.



Scope:
Standardize the draft Hybrid Protocol (http://step2.googlecode.com/svn/spec/openid_oauth_extension/drafts/0/openid_oauth_extension.html 
) as an official OpenID Extension describing how to combine an  
OpenID authentication request with the approval of an OAuth request  
token.



Anticipated Contributions:
Draft specification referenced above and various text contributions  
as more developers implement it.



Proposed List of Specifications:
OpenID OAuth Extension 1.0. Spec completion by Q4 2008.


Anticipated audience or users of the work:
 - OpenID Providers and Relying Parties
 - OAuth Consumers and Service Providers
 - Implementers of OpenID Providers and Relying Parties


Language in which the WG will conduct business:
English.


Method of work:
E-mail discussions on the working group mailing list and working  
group conference calls.



Basis for determining when the work of the WG is completed:
The work will be completed once it is apparent that maximal  
consensus on the protocol proposal has been achieved within the  
working group, consistent with the purpose and scope.



Proposers:
 - Ben Laurie, [EMAIL PROTECTED], Google
 - Breno de Medeiros, [EMAIL PROTECTED], Google
 - David Recordon, [EMAIL PROTECTED], Six Apart
 - Dirk Balfanz, [EMAIL PROTECTED], Google
 - Joseph Smarr, [EMAIL PROTECTED], Plaxo
 - Yariv Adan, [EMAIL PROTECTED], Google
 - Allen Tom, [EMAIL PROTECTED] , Yahoo
 - Josh Hoyt, [EMAIL PROTECTED] , JanRain


Initial Editors:
 - Dirk Balfanz, [EMAIL PROTECTED], Google
 - Breno de Medeiros, [EMAIL PROTECTED], Google

--
Yariv Adan | Product Manager
Google Switzerland GmbH | Identifikationsnummer: CH-020.4.028.116-1
This e-mail is confidential. If you are not the right addressee  
please do not forward it, please inform the sender, and please erase  
this e-mail including any attachments. Thanks.


___
specs mailing list
specs@openid.net
http://openid.net/mailman/listinfo/specs


  1   2   >