On Fri, Apr 9, 2010 at 12:32 AM, Eran Hammer-Lahav <[email protected]>wrote:
> > > > On 4/8/10 11:11 PM, "Evan Gilbert" <[email protected]> wrote: > > >> > >> > >>>> 2. Section 2.1: "The authorization endpoint advertised by the server > >>>> MUST NOT include a query or fragment components as defined by > >>>> [RFC3986] section 3." Why do we disallow query parameters? If we want > >>>> to enforce strict matching of callback URLs maybe we should just > >>>> demand that. > >>> > >>> I don't like having both custom query and a state parameter. If servers > have > >>> to accommodate custom queries, then we might as well drop the special > state > >>> parameter since clients can just make up whatever they want. I opted to > use > >>> the state parameter because it makes pre-registering URIs easier, and > it > >>> doesn't cause parameter namepsace conflicts (which is still an open > issue). > >> > >> I think I got mixed up a bit. The authorization server endpoints > >> should be allowed to have query parameters. No state is passed through > >> these, and also no matching done against them. > >> > >> Registered callback URLs for clients should also be allowed to have > >> query parameters. If strict matching is enforced, at least for the > >> query part, then no state that can be passed, so they have to use the > >> state parameter. Parameter namespace can be an issue, one more reason > >> to keep the prefix :-) > > > > +1 on callback URLs and authorization server being allowed to have query > > parameters. > > Nothing in the spec prevents the authorization endpoint from including > extensions. Right now the spec is silent on how extensions work which means > the server developer has to be careful in adding new parameters and should > probably prefix them with their company name or some other prefix to ensure > they will not conflict with the core parameters and standard extensions. I > also rather make it less appealing to extend the authorization endpoint > because each such custom extension (not published as a standard) reduces > interoperability. > > Callback URIs support client state which accomplishes *exactly* the same > thing, but with full and trivial client support. So the feature is there, > now we are just arguing over style. > > Callback URLs might be a page on an existing web site, and we will be > limiting > > the usefulness of the Web & User-Agent profile if we disallow these pages > to > > have query parameters. > > Its trivial to add an endpoint that takes a callback and redirects it > internally to the existing endpoint. > Not trivial to do this. That callback adds latency and more importantly requires all clients do the proper redirect URL enforcement. Proper redirect enforcement is an essential security characteristic, and a small bug in URL parsing means that you've created an open redirector (for example, checking that the URL prefix is "http://www.mysite.com" would be a bug, because attackers could use "http://www.mysite.com:[email protected]/". What is the benefit we get from the restriction on callback URL parameters? It's not clear to me why we want this restriction in the first place. > > > Authorization server is probably less necessary, but don't see any good > reason > > to restrict. > > Its not. > > EHL > >
_______________________________________________ OAuth mailing list [email protected] https://www.ietf.org/mailman/listinfo/oauth
