> The URI is intended to be a reference not a value. If the client could send a 
> JWT it would just send a request object instead of a request URI in the first 
> place. So the intent is that it’s random, and maybe we should just say that 
> explicitly.

I thought this language was explicitly to allow the use of structured
values for the request_uri? From the introduction:

> but it also allows clients requiring an even
> higher security level, especially cryptographically confirmed non-
> repudiation, to explicitly adopt JWT-based request objects.

----
Aaron Parecki
aaronparecki.com

On Thu, Sep 26, 2019 at 6:49 PM Justin Richer <jric...@mit.edu> wrote:
>
> Aaron, some comments inline.
>
> — Justin
>
> On Sep 26, 2019, at 8:30 AM, Aaron Parecki <aa...@parecki.com> wrote:
>
> Hi Torsten,
>
> I'm very glad to see this draft, I think it's definitely needed in
> this space. Here are some of my thoughts on the draft.
>
> "request_uri": "urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2"
>
>
> Is it acceptable for the AS to return just an opaque string, rather
> than something prefixed with "uri:*"? I don't think anyone would be
> confused about copypasting the exact string from the "request_uri"
> response into the "request_uri" parameter even if it didn't start with
> "urn:". If, for whatever reason, it is required that this value is
> actually a URI, is there some expected namespace to use other than
> "example"? I worry that if all the examples in the spec are just
> "urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2" then developers will end up
> using the text "example" because they don't understand why it's there,
> and then it serves no purpose really.’
>
>
> This field must be a URI, as per JAR:
>
>    request_uri  The absolute URI as defined by RFC3986 [RFC3986] that
>       points to the Request Object (Section 2.1) that holds
>       authorization request parameters stated in section 4 of OAuth 2.0
>       [RFC6749].
>
> Somewhat awkwardly, the JAR spec currently states that the AS has to do an 
> HTTP GET on the request URI, so that will need to be fixed in JAR before it 
> goes forward. I don’t think that was always the case though, and I’m not sure 
> how that changed.
>
> As for the namespace, “example” is ok for an example URN. The problem with 
> URNs is that nobody really understands how to do domain-safe fully compliant 
> URNs. So perhaps we should instead use “urn:fdc:example.com:….” Instead (as 
> per https://tools.ietf.org/html/rfc4198).
>
>
> The pushed authorization request endpoint shall be a RESTful API
>
>
> I would drop the term RESTful and just say "HTTP API", as this
> description is arguably RESTful at best.
>
> Depending on client type and authentication method, the request might
>  also include the "client_id" parameter.
>
>
> I assume this is hinting at the difference between public clients
> sending only the "client_id" parameter and confidential clients
> sending only the HTTP Basic Authorization header which includes both
> the client ID and secret? It would probably be helpful to call out
> these two common examples if I am understanding this correctly,
> otherwise it seems pretty vague.
>
>
> Not quite, those differences are for the token endpoint, and this is 
> capturing things from the authorization endpoint. I don’t quite understand 
> the differentiation listed here either, though.
>
>
> The "request_uri" value MUST be generated using a cryptographically
>  strong pseudorandom algorithm
>
>
> I assume this includes the use of a random number inside of a JWT, in
> case the AS wants to use JWTs as the "request_uri" parameter"? If so,
> it's probably worth spelling that out as it kind of reads like it has
> to be literally a random string at first glance.
>
>
> The URI is intended to be a reference not a value. If the client could send a 
> JWT it would just send a request object instead of a request URI in the first 
> place. So the intent is that it’s random, and maybe we should just say that 
> explicitly.
>
>
> That's all for now, thanks!
>
> ----
> Aaron Parecki
> aaronparecki.com
> @aaronpk
>
> On Sat, Sep 21, 2019 at 1:02 PM Torsten Lodderstedt
> <tors...@lodderstedt.net> wrote:
>
>
> Hi all,
>
> I just published a new draft that Brian Campbell, Dave Tonge, Filip Skokan, 
> Nat Sakimura and I wrote.
>
> https://tools.ietf.org/html/draft-lodderstedt-oauth-par-00
>
> It proposes a new endpoint, called "pushed authorization request endpoint”, 
> that allows the client to push the Authorization Request payload with the AS 
> on a backchannel connection instead of a front channel interaction. The AS 
> provides the client with a request URI (according to draft-ietf-oauth-jwsreq) 
> that the client uses in a subsequent authorization requests to refer to the 
> pushed request data.
>
> We believe this simple mechanism will significantly increase OAuth security 
> and robustness since any application can use it by just sending the 
> parameters in the same encoding as used at the authorisation endpoint over a 
> HTTPS-protected and (for confidential clients) mutually authenticated 
> connection to the AS. It can also be used to push signed and encrypted 
> request objects to the AS, i.e. it provides an interoperable way to use 
> request objects managed at the AS for use cases requiring an even higher 
> security level.
>
> We look forward to getting your feedback.
>
> kind regards,
> Torsten.
>
> Begin forwarded message:
>
> From: internet-dra...@ietf.org
> Subject: New Version Notification for draft-lodderstedt-oauth-par-00.txt
> Date: 21. September 2019 at 12:47:28 CEST
> To: "Nat Sakimura" <n...@sakimura.org>, "Brian Campbell" 
> <bcampb...@pingidentity.com>, "Torsten Lodderstedt" 
> <tors...@lodderstedt.net>, "Dave Tonge" <d...@tonge.org>, "Filip Skokan" 
> <panva...@gmail.com>
>
>
> A new version of I-D, draft-lodderstedt-oauth-par-00.txt
> has been successfully submitted by Torsten Lodderstedt and posted to the
> IETF repository.
>
> Name: draft-lodderstedt-oauth-par
> Revision: 00
> Title: OAuth 2.0 Pushed Authorization Requests
> Document date: 2019-09-21
> Group: Individual Submission
> Pages: 12
> URL:            
> https://www.ietf.org/internet-drafts/draft-lodderstedt-oauth-par-00.txt
> Status:         https://datatracker.ietf.org/doc/draft-lodderstedt-oauth-par/
> Htmlized:       https://tools.ietf.org/html/draft-lodderstedt-oauth-par-00
> Htmlized:       
> https://datatracker.ietf.org/doc/html/draft-lodderstedt-oauth-par
>
>
> Abstract:
>  This document defines the pushed authorization request endpoint,
>  which allows clients to push the payload of an OAuth 2.0
>  authorization request to the authorization server via a direct
>  request and provides them with a request URI that is used as
>  reference to the data in a subsequent authorization request.
>
>
>
>
> Please note that it may take a couple of minutes from the time of submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> The IETF Secretariat
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>

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

Reply via email to