[Openid-specs-ab] Lite Draft 8
jbufu at janrain.com
Thu Aug 18 21:56:20 UTC 2011
On 11-08-18 02:41 PM, Breno de Medeiros wrote:
> There's also a concern with HTTPs support (or lack thereof by some
> clients). An id_token that is used as a session cookie and leaks
> through an unprotected channel can presumably cause less damage than a
> full access_token might.
Which parts of the protocol are not required to use HTTPS?
> Regardless of HTTPs support, it's usually a good idea to treat cookies
> and API access tokens as different beasts for security reasons, and
> the id_token is functionally a session cookie for the client.
The single token would be used one time as an access token for the check
session API/endpoint, and the response from there as the actual cookie
value/session identifier. Would this now be ok?
> On Thu, Aug 18, 2011 at 13:47, John Bradley<ve7jtb at ve7jtb.com> wrote:
>> One of the early design decisions was to not mess with the access tokens people are currently using.
>> I originally wanted to make the access token a JWT so that a single token could be used for both.
>> The arguments against that were breaking existing API and a desire by people who do want to pass scope inside the token to separate the delegated access scopes from the session management info.
>> They didn't want both in the same token.
>> Changing to a single token effects session management and the rest of the specs, that is a huge change.
>> On 2011-08-18, at 3:46 PM, Johnny Bufu wrote:
>>> On 11-08-16 04:31 PM, John Bradley wrote:
>>>> The two tokens have potentially different scopes and lifetimes.
>>>> There are good reasons for separating resource authorization from session authentication.
>>> An OAuth token is, conceptually, an identifier for a grant that the server keeps in its database.
>>> Rather than emitting two different tokens, the server could associate the two grants with a single token, and service it differently based on the endpoint the token is presented at:
>>> - the sorter-lived, one-time use grant for the check session endpoint
>>> - the longer-lived, multiple-use grant for the userinfo endpoint
>>> This single token would be a short identifier, not a heavy(er) JWT, suitable for lite clients.
>>> On 11-08-17 07:35 PM, John Bradley wrote:
>>>> We did discuss using a JWT for the access token so that it could do
>>>> double duty.
>>>> Some people like Sales Force have existing code for there access tokens
>>>> so they don't want to change that.
>>>> Another issue is token size, making the session token carry all of the
>>>> scope information for the user-info and other endpoints may make the
>>>> token too large to be practical.
>>>> It would also be more complicated for the RP to get right, than keeping
>>>> the session and access grant tokens separate.
>>> Full clients wanting a signed JWT for optimization could indicate this in the authorization request. There shouldn't be much of a problem for servers to use the JWT as an identifier / access token for the userinfo grant, but full-clients' life should be made easier by including an equivalent but shorter userinfo access token in the JWT payload.
>>> Thoughts on this proposal? I'd like to find out if I missed anything that would prevent it from covering the use-cases I've seen brought up on the list recently.
More information about the Openid-specs-ab