Yep, we need to take care of that too. What I'm getting at is that it seems 
like we need a better story about identity and 'immediate' in OAuth which seems 
to be more about the use cases of the OpenID Connect proposal than the OAuth 
core proposal. However, since these use cases are very important to many of the 
participants here in the context of implementing *OAuth* (not OpenID), we 
should provide some support.

What I'm thinking is to take the 'immediate' parameter out, and write a simple 
OAuth identity extension spec where it will be included, as well as the 
requested 'username' parameter (or whatever we decide to call it). It will not 
include any discovery (which is probably going to be another spec), just how to 
establish and verify identity using OAuth once you know where the token 
endpoint is and have client credentials (registered).

But back to my original email, what are the use cases for 'immediate' without 
identity?

As James pointed out, a client can generally use the immediate parameter to offer "a bit of personalization if it can provide it silently".

Having that in mind, I see the following scenarios:

Classical OAuth

A classical OAuth client would probably have its own user management and use OAuth to get access to a end-users resources on other sites. It does not need to know (and probably shall not know) the user's identity on the other sites. The immediate parameter could be used w/o identity in the following situations:

- the client does not want to store refresh tokens and tries to aquire an access token after login - the authz server does not issue refresh tokens, but stores end-user authorizations and issues access tokens based on it - the client is authorized automatically by a security policy (company internal applications)

OpenID Connect

In this context, the OAuth services is used to obatin the end-user's identity. So how should the client know the identity upfront? This would be comparable to an OpenID RP knowing the user id before issuing the authentication request. The immediate parameter works the same way as the openid.mode "checkid_immediate". Typically the client will try to acquire an end-users identity, if already established, in order to (optionally) personalize the site. We do this for several portal sites (w/ our proprietary SSO protocol). If this fails and the end-user enters a protected region of the sites afterwards, user authentication is enforced by ommiting the immediate parameter. Yes, if two users use the same computer, the "wrong" identity could be used here. But that's, from my point of view, a characteristics of single sign on. That's why single sign-on should be accompanied by single logout.

My conclusion: There are several use cases where the client does not need (or is unable) to know the user's identity but could use the immediate mode.

In contrast, I think the username is useful in several situations w/o the immediate mode. For example, if the client already possesses a token for a particular user and wants to acquire another token for another resource of that particular user. The client could ensure the users identity match by passing the username to the authorization flow.

regards,
Torsten.


EHL


-----Original Message-----
From: Torsten Lodderstedt [mailto:tors...@lodderstedt.net]
Sent: Sunday, May 23, 2010 2:38 AM
To: Eran Hammer-Lahav
Cc: OAuth WG (oauth@ietf.org)
Subject: Re: [OAUTH-WG] 'immediate' without identity

Are there use cases for the 'immediate' parameter where a companion
parameter for identity (e.g. 'username') is not needed or required? The
purpose of the 'immediate' parameter is for the authorization server to
authenticate the end user via some automatic means (usually a cookie) and
check if an access token was already issued for that end user / client
identifier combination.
This parameter is only useful when the client is already familiar with the
end user (not the first time it seeks authorization), in which case, it should
pass that information along to make sure the same user is logged into the
authorization server.
If all the use cases require both, we should include both and make one
required if the other is present.
EHL
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

How does the client determine the end-user's identity (at the AS) in the
initial authorization transaction? Will you introduce a respective response
parameter?

regards,
Torsten.


_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to