[Openid-specs-ab] Comments on the OpenID Connect Standard spec 1.0 draft 4

George Fletcher gffletch at aol.com
Tue Sep 20 01:37:06 UTC 2011


* Section 4.1.1

I assume that scope could include other values that are out-of-scope for 
this specification but are needed by the client and "authorizable" by 
the AS. For example, the client wants an access token that identifies 
the user and has "chat-service" authorization.


* Section 4.1.1.2

The second paragraph says that parameters specified in the "OpenID 
Request Object" take precedence over query parameters. Yet the 
non-normative example, shows the same parameter in both the query string 
and the OpenID Request Object. Given that the Request Object takes 
precedence, isn't just the request object enough? So the last example in 
section 4.1.1.2 could be...

https://server.example.com/authorize?request=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNwb25zZV90eXBlIjoiY29kZSBpZF90b2tlbiIsImNsaWVudF9pZCI6InM2QmhkUmtx 
dDMiLCJyZWRpcmVjdF91cmkiOiJodHRwczpcL1wvY2xpZW50LmV4YW1wbGUuY29tXC9jYiIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUiLCJzd 
GF0ZSI6ImFmMGlmanNsZGtqIiwidXNlcmluZm8iOnsiY2xhaW1zIjp7Im5hbWUiOm51bGwsIm5pY2tuYW1lIjp7Im9wdGlvbmFsIjp0cnVlfS 
wiZW1haWwiOm51bGwsInZlcmlmaWVkIjpudWxsLCJwaWN0dXJlIjp7Im9wdGlvbmFsIjp0cnVlfX0sImZvcm1hdCI6InNpZ25lZCJ9LCJpZF9 
0b2tlbiI6eyJtYXhfYWdlIjo4NjQwMCwiaXNvMjkxMTUiOiIyIn19.2OiqRgrbrHkA1FZ5p_7bc_RSdTbH-wo_Agk-ZRpD3wY


* Section 4.1.1.2.1

The second paragraph requires the client to send the request to the 
Authorization Server as an HTTP POST if the AS supports the HTTP POST 
method. Does this imply that the client is required to use HTTP POST 
redirects to redirect the user's browser to the AS? The non-normative 
example uses and HTTP GET redirect.


* Section 4.1.1.3.2

States.. "The Client SHOULD send the request using the HTTP GET method, 
but MAY send it via the HTTP POST if the authorization server supports 
it as defined in..." which seem to be the opposite semantics of section 
4.1.1.2.1. Is this intentional?


* Section 4.1.4.1

This probably isn't an issue, but ensuring the entire URL does not 
exceed 512 bytes, requires both the AS and the Client to work together. 
If the client has a really large state value, and the AS has a large 
code value, the combined length could be greater than 512.


* Section 4.2.5.1  'id_token' description

Section 4.2.1. requires id_token to be present. If it's required for 
this flow, then do we need the "if" clause in the description. NOTE: 
from the phone call today (9/19/2011) it seems that how the client 
requests the id_token may not match what's in this document so this 
might no longer be an issue.


* Section 4.2.5.2

Should the AS return the 'state' parameter since this is an async 
response? In section 4.1.4.2 'state' is returned in the non-normative 
example.


* Section 5.1.1

I think it's confusing that the non-normative example has more 
parameters than are described. I think it would be good to reiterate 
that the client MAY provide client authentication credentials per OAuth2 
section 2.3.1. Note that OAuth2 prefers the use of HTTP Basic 
Authentication for presenting client credentials.


* Section 5.2

Why must the scope include 'openid'? What if the client is trying to 
retrieve a "down-scoped" token where scope is just "chat-service"? Is 
the expectation that the client can use the refresh_token in all the 
normal OAuth2 ways, and this section is just describing the additional 
feature provided by OpenID Connect? If so, it might be helpful to add 
some text to this effect.


* Section 5.2.1

What if the user's session is gone but initially retrieved access_token 
and refresh_token provided "offline access" scope. If the access_token 
is expired and needs to be refreshed via the refresh_token, do I receive 
an empty id_token?


* Section 6.2.1

If the userinfo endpoint is an OAuth2 protected resources, then 
shouldn't errors follow the OAuth2 Bearer token spec which requires a 
WWW-Authenticate HTTP response header with the error details. Note that 
returning JSON in the response does nothing for "Implicit flow" clients 
because they won't even see the data because the browser won't invoke 
the JS because of the HTTP error.


* Section 7.2

What is the purpose of allowing the check session endpoint returning a 
signed or encrypted JWT as the response? If the client can handle signed 
or encrypted JWTs, wouldn't the client for-go the check session endpoint 
and just validate the id_token locally?

Thanks,
George

P.S. I also created a few issues for grammer and typos I found.

-- 
Chief Architect                   AIM:  gffletch
Identity Services Engineering     Work: george.fletcher at teamaol.com
AOL Inc.                          Home: gffletch at aol.com
Mobile: +1-703-462-3494           Blog: http://practicalid.blogspot.com
Office: +1-703-265-2544           Twitter: http://twitter.com/gffletch

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-ab/attachments/20110919/92435664/attachment-0001.html>


More information about the Openid-specs-ab mailing list