Re: [Ace] [EXTERNAL] Francesca Palombini's Discuss on draft-ietf-ace-oauth-authz-38: (with DISCUSS and COMMENT)

Cigdem Sengul <cigdem.sengul@gmail.com> Thu, 25 March 2021 14:10 UTC

Return-Path: <cigdem.sengul@gmail.com>
X-Original-To: ace@ietfa.amsl.com
Delivered-To: ace@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69BC53A2379; Thu, 25 Mar 2021 07:10:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3XpPt4nQ_L12; Thu, 25 Mar 2021 07:10:08 -0700 (PDT)
Received: from mail-ua1-x934.google.com (mail-ua1-x934.google.com [IPv6:2607:f8b0:4864:20::934]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E7E23A2376; Thu, 25 Mar 2021 07:10:07 -0700 (PDT)
Received: by mail-ua1-x934.google.com with SMTP id j19so550532uax.2; Thu, 25 Mar 2021 07:10:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2j3BMFdOwVl3BIjo5yASsdbMG0sDA5SFap0sdT/YupQ=; b=jgo0XC+f40p2O8gjyxrbG66wRv0RUaUwwZoRwmJTx81bnxVs/mmXoyleiMF3p62qZ6 A4f1A9sZeVRD+EjVWSOq7dRYDKwTzZbI39EdUSZSbOTG9XHtdWx9Gm5XN0MvqwhxrKy8 YI+B86qWRRki1WRPmUEQEEHlDjQ2WD1JHg5OTSY2Gqo+Pwn8OyTm8yqhtGE8pZvYz8od EDKr7uhbz3Lxbm4B3rEkDnxSGlUqTmJHQ5JR4GwKkgbhQfMT2fi7aTVFG08UPJzF9SZY Pq72dYpEay7PdYjM+Y6Gud/5UubHUvh4xZm+7lUTQKIPJwRqxvtd//dz9IHotbaFNHCk 4aoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2j3BMFdOwVl3BIjo5yASsdbMG0sDA5SFap0sdT/YupQ=; b=uL2XoFPDKF9EHjKij3+zBSXzGLtWLduw5QVRZLgU8YG0l4cWSvP3wUYEzuKrvjPWDR 5+afcC31DFLz7SR+wnom+EAbIC3p84uR4TIXo8ZJ0McpoW8y/s97HNYu78UlJ/HrAnv7 5rZIizbuduSqgrykdMlqMKwqyGcTIhJA3GqZ+uBar5i2uYRfEcPGVeke9OuedB6ExO4p RkUNNE04IlknRfec+RHvXzqe1C4dVX22Lx8QSAHHX8RmTTgHjf+Ju50RxLHgNXH1pmnQ 9vDHpzyiDRD0KfW6Q/86WmmI0ES9sSYKnxN+UUsvEqMm2NZ2s3+3Z2v1T3NPiyB/XNUk IJqw==
X-Gm-Message-State: AOAM530Rmqovh5urNYNOYo8WBZVM2yhAgRH2/hkeEzXYQ1f8p8sgUc96 uFnZxdqclQDOLHPM/dMjmKWuiy21alkpXkbY8RM=
X-Google-Smtp-Source: ABdhPJz2TMkmFcAGho2hRey9pTS8BWbjGK+Knpu/lswwudFCQlrgDoPlKsfDAB7CRTlpbPgSBcK2Y/VtWTJ0UjjWNhA=
X-Received: by 2002:a9f:3230:: with SMTP id x45mr4847484uad.23.1616681405821; Thu, 25 Mar 2021 07:10:05 -0700 (PDT)
MIME-Version: 1.0
References: <161659738410.3239.3955409176349739508@ietfa.amsl.com> <fd47667ea52e432e947a35a886157865@combitech.se> <C4B30675-2945-4295-A24A-803219F04C08@ericsson.com>
In-Reply-To: <C4B30675-2945-4295-A24A-803219F04C08@ericsson.com>
From: Cigdem Sengul <cigdem.sengul@gmail.com>
Date: Thu, 25 Mar 2021 14:09:54 +0000
Message-ID: <CAA7SwCMYiSDc5nyG_7en7VqQtZq+0T4bobbbh8MwOVodMMr5qw@mail.gmail.com>
To: Francesca Palombini <francesca.palombini=40ericsson.com@dmarc.ietf.org>
Cc: Seitz Ludwig <ludwig.seitz@combitech.se>, The IESG <iesg@ietf.org>, "art-ads@ietf.org" <art-ads@ietf.org>, "ace-chairs@ietf.org" <ace-chairs@ietf.org>, "draft-ietf-ace-oauth-authz@ietf.org" <draft-ietf-ace-oauth-authz@ietf.org>, "ace@ietf.org" <ace@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000e8b86505be5cf8fa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/_Ew_S6tk93wkeG1Q-bT87gyOoBs>
Subject: Re: [Ace] [EXTERNAL] Francesca Palombini's Discuss on draft-ietf-ace-oauth-authz-38: (with DISCUSS and COMMENT)
X-BeenThere: ace@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <ace.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ace>, <mailto:ace-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace/>
List-Post: <mailto:ace@ietf.org>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ace>, <mailto:ace-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Mar 2021 14:10:15 -0000

Hello,
I would like to add my two cents to this as the MQTT-TLS profile does use
HTTP/JSON for client-AS and rs-AS communication as similar already was
supported in MQTT implementations between an MQTT broker and external
servers (e.g., via auth plug-ins).

For points like 13: Making CBOR mandatory would break how it is implemented
for MQTT-TLS, which implements the AS creation hints as a User Property
inside an MQTT message.
"The User Property is a UTF-8 string pair, composed of a name and a value.
The name of the User Property MUST be set to
   "ace_as_hint".  The value of the user property is a UTF-8 encoded
   JSON string containing the mandatory "AS" parameter, and the optional
   parameters "audience", "kid", "cnonce", and "scope" as defined in
   Section 5.1.2 of the ACE framework"

Kind regards,
--Cigdem



On Thu, Mar 25, 2021 at 1:53 PM Francesca Palombini <francesca.palombini=
40ericsson.com@dmarc.ietf.org> wrote:

> Ludwig,
>
> Thank you for the quick reply, and for the useful background information.
>
> As I said, I think this document is important and should move forward
> asap, and it can do so without changing the main assumptions, with some
> additional clarifications in the text about CBOR vs "other" when HTTP is
> used (which in my opinions are necessary - see points 1, 8, 10, 11, 13, 15,
> 17, 22, 23, 26, 28).
>
> What I wanted to highlight is that it would simplify the document a lot to
> just remove this flexibility, for which I don't understand the motivation,
> and say "CBOR is mandatory" even when HTTP is used. The flexibility could
> be added in a future document if needed. However, I understand that there
> is history in the working group, and I will step back and remove my DISCUSS
> if I am in the rough. Note however that in terms of work on the document I
> suspect that keeping this flexibility will require more work, not less.
>
> Looking forward to discussing this with Ben during the telechat.
> Francesca
>
> On 25/03/2021, 08:50, "iesg on behalf of Seitz Ludwig" <
> iesg-bounces@ietf.org on behalf of ludwig.seitz@combitech.se> wrote:
>
>     Hello Francesca,
>
>     Thank you for your review. I will address your detailed comments
> separately, with regards to your DISCUSS:
>
>     The option to allow both HTTP and JSON for any leg of the
> communication (client-AS, rs-AS, client-rs) was the result of long
> discussions in the WG. If I recall correctly the intent was to allow legacy
> OAuth 2.0 equipment (i.e. not supporting ACE) to be used in ACE
> interactions on those legs of the communication where no constrained
> devices are involved.
>     I am reluctant to reopen these discussions at this point in time, and
> I suspect doing the necessary analysis to provide in-depth considerations
> on the choices between HTTP/CoAP and JSON/CBOR will significantly delay the
> progress of this document.
>
>     @ace-chairs: What is your suggestion on how to best handle this?
>     (Please note that I am unable to commit significant amounts of time to
> this work in the foreseeable future)
>
>     Regards,
>
>     Ludwig
>
>
>     > -----Original Message-----
>     > From: Ace <ace-bounces@ietf.org> On Behalf Of Francesca Palombini
> via
>     > Datatracker
>     > Sent: den 24 mars 2021 15:50
>     > To: The IESG <iesg@ietf.org>
>     > Cc: art-ads@ietf.org; ace-chairs@ietf.org; draft-ietf-ace-oauth-
>     > authz@ietf.org; ace@ietf.org
>     > Subject: [EXTERNAL] [Ace] Francesca Palombini's Discuss on
> draft-ietf-ace-
>     > oauth-authz-38: (with DISCUSS and COMMENT)
>     >
>     > Francesca Palombini has entered the following ballot position for
>     > draft-ietf-ace-oauth-authz-38: Discuss
>     >
>     > When responding, please keep the subject line intact and reply to
> all email
>     > addresses included in the To and CC lines. (Feel free to cut this
> introductory
>     > paragraph, however.)
>     >
>     >
>     > Please refer to
> https://www.ietf.org/iesg/statement/discuss-criteria.html
>     > for more information about IESG DISCUSS and COMMENT positions.
>     >
>     >
>     > The document, along with other ballot positions, can be found here:
>     > https://datatracker.ietf.org/doc/draft-ietf-ace-oauth-authz/
>     >
>     >
>     >
>     >
> ----------------------------------------------------------------------
>     > DISCUSS:
>     >
> ----------------------------------------------------------------------
>     >
>     > Thank you for this document. I think this is an important document
> which
>     > should move forward, but I would like to discuss some points before
> it does
>     > so. These might result in simple clarifications, or might require
> more
>     > discussion, but I do hope they help improve the document.
>     >
>     > General comments:
>     >
>     > I found confusing to understand how optional or mandatory is the use
> of
>     > CBOR for profiles of this specification compared to the transport
> used. I
>     > understand the need for flexibility, but maybe it should be
> clarified the
>     > implication of using CoAP (is CBOR mandatory then?) vs HTTP (is CBOR
> always
>     > permitted? How is the encoding in that case? Is the same media type
>     > application/ace+cbor used in that case?). Note also that while
> requests
>     > include the content type to use, both in case HTTP or CoAP+CBOR are
> used,
>     > the response don't seem to include this information.
>     >
>     > I would like it to be clarified what requirements (or even just
>     > recommendations) are there to use CoAP vs HTTP for different legs of
> the
>     > exchange - not necessarily remove the flexibility but to clarify for
>     > implementers what can be done and what would be the reasoning to do
>     > that: for example if both endpoints support HTTP with the AS, most
> likely you
>     > can have HTTP between C and RS, so does it really make sense to run
> this
>     > instead of OAuth 2.0? Right now all is permitted, but does it all
> make sense? I
>     > feel like this type of considerations are missing. As a note - I am
> not sure
>     > what allowing a different encoding than CBOR for any leg of the
> exchange
>     > adds to the specification - it makes things more confusing, and if
> needed it
>     > could be specified in another document.
>     >
>     > While going through and thinking about encodings (assuming we keep
> the
>     > doc as is with regards to allowing more than just CBOR), I wondered
> if it
>     > would be better to define a new media type to use when the ACE
>     > framework is used with HTTP, to differentiate from OAuth 2.0, since
> some of
>     > the endpoints used are the same (/token and /introspect at the AS).
> I am
>     > interested to hear more from my co-AD as well if this would be an OK
> use of
>     > a new media type - I am thinking of the case where AS is supporting
> both
>     > OAuth 2.0 and the Ace framework - or if it is unnecessary, since the
>     > encodings are the same, and the parameters are registered in OAuth
> 2.0
>     > registry.
>     >
>     > More detailed comments below.
>     > Francesca
>     >
>     >
>     >
> ----------------------------------------------------------------------
>     > COMMENT:
>     >
> ----------------------------------------------------------------------
>     >
>     > Detailed comments:
>     >
>     > 1. -----
>     >
>     >    sufficiently compact.  CBOR is a binary encoding designed for
> small
>     >    code and message size, which may be used for encoding of self
>     >    contained tokens, and also for encoding payloads transferred in
>     >    protocol messages.
>     >
>     > FP: "may be used" make it seem as if CBOR is always optional (even
> when
>     > CoAP is used). See points 11. and 13. for examples of text that seem
> to imply
>     > that CBOR is mandatory in some cases.
>     >
>     > 2. -----
>     >
>     >       Refresh tokens are issued to the client by the authorization
>     >       server and are used to obtain a new access token when the
> current
>     >       access token becomes invalid or expires, or to obtain
> additional
>     >
>     > FP: token validity - it is not clear what it means for a token to
> become invalid
>     > (vs expiring). As this is the first time it is mentioned, it should
> be explained
>     > here or referenced.
>     >
>     > 3. -----
>     >
>     >          An asymmetric key pair is generated on the token's recipient
>     >          and the public key is sent to the AS (if it does not already
>     >
>     >           inside the token and sent back to the requesting party.
> The
>     >          consumer of the token can identify the public key from the
>     >
>     >  FP: "token's recipient" and "consumer of the token" - why not talk
> about
>     > client and resource server here? It would fit better with the
> terminology
>     > used  in the rest of the document.
>     >
>     >  4. -----
>     >
>     >     This framework RECOMMENDS the use of CoAP as replacement for HTTP
>     > for
>     >    use in constrained environments.  For communication security this
>     >
>     > FP: This was already stated in the introduction in the following
> sentence:
>     >
>     >    of processing capabilities, available memory, etc.  For web
>     >    applications on constrained nodes, this specification RECOMMENDS
> the
>     >    use of the Constrained Application Protocol (CoAP) [RFC7252] as
>     >    replacement for HTTP.
>     >
>     > Not sure repeating is useful.
>     >
>     > 5. -----
>     >
>     >    OAuth 2.0 (such as [RFC7521] and [RFC8628]).  What grant types
> works
>     >    best depends on the usage scenario and [RFC7744] describes many
>     >    different IoT use cases but there are two preferred grant types,
>     >    namely the Authorization Code Grant (described in Section 4.1 of
>     >
>     > FP: nit: s/works/work . I think "preferred" is probably not the
> right term
>     > here, and should be rephrased or clarified - preferred respect to?
>     >
>     > 6. -----
>     >
>     >       In addition to the response parameters defined by OAuth 2.0 and
>     >       the PoP access token extension, this framework defines
> parameters
>     >       that can be used to inform the client about capabilities of the
>     >       RS, e.g. the profiles the RS supports.  More information about
>     >
>     > FP: I believe this is a leftover from a previous version of the
> document, but
>     > should be "profile" and not "profiles" as the AS is only allowed to
>     > communicate one profile to the client and RS - see for example the
> following
>     > sentences:
>     >
>     >       The Client and the RS mutually authenticate using the security
>     >       protocol specified in the profile (see step B) and the keys
>     >
>     >       The AS informs the client of the selected profile using the
>     >       "ace_profile" parameter in the token response.
>     >
>     > 7. -----
>     >
>     >          (1) the client sends the access token containing, or
>     >          referencing, the authorization information to the RS, that
> may
>     >          be used for subsequent resource requests by the client, and
>     >
>     > FP: s/may/will
>     >
>     > 8. -----
>     >
>     >       While the structure and encoding of the access token varies
>     >       throughout deployments, a standardized format has been defined
>     >       with the JSON Web Token (JWT) [RFC7519] where claims are
> encoded
>     >       as a JSON object.  In [RFC8392], an equivalent format using
> CBOR
>     >       encoding (CWT) has been defined.
>     >
>     > FP: Would it make sense to RECOMMEND the use of JWT when HTTP is
> used?
>     > Or is CWT always RECOMMENDED?
>     >
>     > 9. -----
>     >
>     >    parameters.  When profiles of this framework use CoAP instead, it
> is
>     >    REQUIRED to use of the following alternative instead of Uri-query
>     >    parameters: The sender (client or RS) encodes the parameters of
> its
>     >    request as a CBOR map and submits that map as the payload of the
> POST
>     >    request.
>     >
>     > FP: I think it should be better defined (or at least hinted in this
> paragraph)
>     > the mapping between the CBOR encoded parameters and the Uri-query
>     > parameters:
>     > are they all encoded as CBOR text strings?
>     >
>     > 10. -----
>     >
>     >    Applications that use this media type: The type is used by
>     >    authorization servers, clients and resource servers that support
> the
>     >    ACE framework as specified in [this document].
>     >
>     > FP: I suggest adding "that support the ACE framework with CBOR
> encoding,
>     > as specified ..."
>     >
>     > 11. -----
>     >
>     >    The OAuth 2.0 AS uses a JSON structure in the payload of its
>     >    responses both to client and RS.  If CoAP is used, it is REQUIRED
> to
>     >    use CBOR [RFC8949] instead of JSON.  Depending on the profile, the
>     >    CBOR payload MAY be enclosed in a non-CBOR cryptographic wrapper.
>     >
>     > FP: This sentence seems to add a requirement (when CoAP is used, then
>     > CBOR must be used) only for communication from AS to C or RS. I
> could not
>     > find in the rest of the specification the same type of requirement
> for the
>     > other legs of communication (C to AS, RS to AS, C to RS). Please let
> me know
>     > if I missed it.
>     >
>     > 12. -----
>     >
>     >    the AS authorization is not in scope for this document.  C may,
> e.g.,
>     >    ask it's owner if this AS is authorized for this RS.  C may also
> use
>     >    a mechanism that addresses both problems at once.
>     >
>     > FP: nit - s/it's/its . Also "C may also use ... at once" such as? I
> think it would be
>     > good to give an example here.
>     >
>     > 13. -----
>     >
>     >    valid access token.  The AS Request Creation Hints message is a
> CBOR
>     >    map, with an OPTIONAL element "AS" specifying an absolute URI (see
>     >
>     > FP: another case where CBOR seem mandatory.. Is this the case, even
> if
>     > HTTP or other protocol is used?
>     >
>     > 14. -----
>     >
>     >       MUST discard the access token.  If this was an interaction with
>     >       the authz-info endpoint the RS MUST also respond with an error
>     >       message using a response code equivalent to the CoAP code 4.01
>     >       (Unauthorized).
>     >
>     > FP: This seems to imply that another endpoint could be used to
> receive an
>     > access token. Is that the case, and if so where is this defined?
>     >
>     > 15. -----
>     >
>     > Section 5.8:
>     >
>     >   If HTTPS is used, JSON or CBOR payloads may be supported.  If JSON
>     >    payloads are used, the semantics of Section 4 of the OAuth 2.0
>     >    specification MUST be followed (with additions as described
> below).
>     >
>     > FP: I suggest to point to the specific subsection in OAuth - namely
> 4.1.3 and
>     > 4.1.4
>     >
>     > 16. -----
>     >
>     >    If CBOR is used then these parameters MUST be provided as a CBOR
> map.
>     >
>     > FP: s/as/in . I suggest to reference Figure 12.
>     >
>     > 17. -----
>     >
>     >    the HTTP request entity-body, as defined in section 3.2 of
> [RFC6749].
>     >
>     > FP: Section 3.2 of OAuth 2.0 specifies:
>     >
>     >    The endpoint URI MAY include an
> "application/x-www-form-urlencoded"
>     >    formatted (per Appendix B) query component ([RFC3986] Section
> 3.4),
>     >    which MUST be retained when adding additional query parameters.
> The
>     >    endpoint URI MUST NOT include a fragment component.
>     >
>     > which explicitly specifies that the parameters are transported as
> query
>     > components. I either suggest to change this reference to Appendix B
> of
>     > RFC6749.
>     >
>     > 18. -----
>     >
>     >          "x" : b64'usWxHK2PmfnHKwXPS54m0kTcGJ90UiglWiGahtagnv8'
>     >
>     > FP: noted here since this is the first time it appears, but same
> comment for
>     > the rest of the document. I think it would make more sense to show
>     > examples where CBOR byte strings are used instead of Base64.
>     >
>     > 19. -----
>     >
>     >    Figure 8 summarizes the parameters that can currently be part of
> the
>     >    Access Information.  Future extensions may define additional
>     >    parameters.
>     >
>     > FP: This is useful! Why not having the same type of figure listing
> all
>     > acceptable parameters for the request (section 5.8.1)?
>     >
>     > 20. -----
>     >
>     >    Header: Created (Code=2.01)
>     >    Content-Format: "application/ace+cbor"
>     >    Payload:
>     >    {
>     >      "access_token" : b64'SlAV32hkKG ...
>     >       (remainder of CWT omitted for brevity;
>     >       CWT contains COSE_Key in the "cnf" claim)',
>     >      "ace_profile" : "coap_dtls",
>     >      "expires_in" : "3600",
>     >      "cnf" : {
>     >        "COSE_Key" : {
>     >          "kty" : "Symmetric",
>     >          "kid" : b64'39Gqlw',
>     >          "k" : b64'hJtXhkV8FJG+Onbc6mxCcQh'
>     >        }
>     >      }
>     >    }
>     >
>     >        Figure 9: Example AS response with an access token bound to a
>     >                               symmetric key.
>     >
>     > FP: Section 3.1 states:
>     >
>     >       Symmetric PoP key:
>     >          The AS generates a random symmetric PoP key.  The key is
> either
>     >          stored to be returned on introspection calls or encrypted
> and
>     >          included in the token.  The PoP key is also encrypted for
> the
>     >          token recipient and sent to the recipient together with the
>     >          token.
>     >
>     > But in the example the key is not encrypted.
>     >
>     > 21. -----
>     >
>     >    o  When using CBOR the raw payload before being processed by the
>     >       communication security protocol MUST be encoded as a CBOR map.
>     >
>     > FP: I don't understand "before being processed by the communication
>     > security protocol"
>     >
>     > 22. -----
>     >
>     >    o  The Content-Format (for CoAP-based interactions) or media type
>     >       (for HTTP-based interactions) "application/ace+cbor" MUST be
> used
>     >       for the error response.
>     >
>     > FP: Does this mean that CBOR is always used for errors? However in
> the
>     > same
>     > section:
>     >
>     >    o  The parameters "error", "error_description" and "error_uri"
> MUST
>     >       be abbreviated using the codes specified in Figure 12, when a
> CBOR
>     >       encoding is used.
>     >
>     > "when a CBOR encoding is used" so not always?
>     >
>     > 23. -----
>     >
>     > Sections 5.8.2, 5.8.3, 5.9.1, 5.9.2, 5.9.3, 5.10.1
>     >
>     > FP: I found useful that Section 5.8.1 spelled out the encoding when
> HTTP is
>     > used (See sentence below). I think it would be as useful to have the
> same
>     > type of phrasing in these and following sections (wherever it is
> missing now).
>     > I think in general it is very clear in the document what format the
> message
>     > has when CBOR is used, and it seems that CBOR can be used with HTTP
>     > according to this specification (but not sure it is actually
> recommended, what
>     > are the pros and cons). In some sections (5.8.2, 5.8.3, etc) it is
> left to implicit
>     > references to OAuth 2.0 for the implementers to figure out what the
>     > encoding is (and what media type is used), although modifications
> are added
>     > to it.
>     >
>     >    When HTTP is used as a transport then the client makes a request
> to
>     >    the token endpoint by sending the parameters using the
> "application/
>     >    x-www-form-urlencoded" format with a character encoding of UTF-8
> in
>     >    the HTTP request entity-body, as defined in section 3.2 of
> [RFC6749].
>     >
>     > 24. -----
>     >
>     >       including the error code "unsupported_pop_key" defined in
>     >       Figure 10.
>     >
>     >       including the error code "incompatible_ace_profiles" defined in
>     >       Figure 10.
>     >
>     > FP: nit - these error codes are not "defined" in figure 10.
>     >
>     > 25. -----
>     >
>     >    In this framework the "pop" value for the "token_type" parameter
> is
>     >    the default.  The AS may, however, provide a different value.
>     >
>     > FP: I would change the sentence to:
>     >
>     >    In this framework the "pop" value for the "token_type" parameter
> is
>     >    the default.  The AS may, however, provide a different value from
> those
>     >    registered in [IANA registry].
>     >
>     > 26. -----
>     >
>     >    Clients that want the AS to provide them with the "ace_profile"
>     >    parameter in the access token response can indicate that by
> sending a
>     >    ace_profile parameter with a null value (for CBOR-based
> interactions)
>     >    or an empty string (for JSON based interactions) in the access
> token
>     >    request.
>     >
>     >       Hints Section 5.3.  The parameter is encoded as a byte string
> for
>     >    CBOR-based interactions, and as a string (Base64 encoded binary)
> for
>     >    JSON-based interactions.
>     >
>     > FP: OAuth 2.0 section 4.1.3 says that JSON is not used, the
> parameters are
>     > encoded using "application/x-www-form-urlencoded"
>     >  format in the request entity-body.
>     >
>     > 27. -----
>     >
>     >    The figures of this section uses CBOR diagnostic notation without
> the
>     >
>     > FP: Nit - s/use
>     >
>     > 28. -----
>     >
>     >    A client using this method MUST make a POST request to the
> authz-info
>     >    endpoint at the RS with the access token in the payload.  The RS
>     >
>     > FP: The formatting of the request is unclear - could you clarify
> that it depends
>     > on the access token used, and the media type (or content format)
> needs to
>     > reflect that? I.e. if CWT is used, the media type MUST be
> application/cwt.
>     >
>     > 29. -----
>     >
>     >    o  If token or claim verification fails, the RS MUST discard the
>     >       token and, if this was an interaction with authz-info, return
> an
>     >       error message with a response code equivalent to the CoAP code
>     >
>     > FP: Same comment as before, "if this was an interaction with
> authz-info" -
>     > the alternative needs to be clarified.
>     >
>     > 30. -----
>     >
>     >    Errors may happen during this initial processing stage:
>     >
>     >    o  If token or claim verification fails, the RS MUST discard the
>     >       token and, if this was an interaction with authz-info, return
> an
>     >       error message with a response code equivalent to the CoAP code
>     >       4.01 (Unauthorized).
>     >
>     >       ...
>     >
>     >    Next, the RS MUST verify claims, if present, contained in the
> access
>     >    token.  Errors are returned when claim checks fail, in the order
> of
>     >    priority of this list:
>     >
>     > FP: It seems weird to read first about errors due to claim
> verification, and
>     > then "Next" discuss claim verification - unless this is two
> different claim
>     > verifications, in which case I think this needs to be clarified.
> Also in each
>     > claim:
>     >
>     >       the RS MUST discard the token.  If this was an interaction with
>     >       authz-info, the RS MUST also respond with a response code
>     >       equivalent to the CoAP code 4.01 (Unauthorized).
>     >
>     > Seems like a repeat of the sentence above.
>     >
>     > 31. -----
>     >
>     >    on the authz-info endpoint and on it's children (if any).
>     >
>     > FP: nit - s/it's/its
>     >
>     > 32. -----
>     >
>     >    The POST method SHOULD NOT be allowed on children of the
> authz-info
>     >    endpoint.
>     >
>     > FP: What children? They do not seem to be defined, so I do not
> understand
>     > this sentence.
>     >
>     > 33. -----
>     >
>     >          +  When creating the token, the AS MUST add a 'cti' claim (
> or
>     >             'jti' for JWTs) to the access token.  The value of this
>     >
>     > FP: Since the use of CWT and JWT are only recommended, it might be
> good
>     > to rephrase this as to allow for other access token's encodings too.
>     >
>     > 34. -----
>     >
>     >          +  When creating the token, the AS MUST add a 'cti' claim (
> or
>     >             'jti' for JWTs) to the access token.  The value of this
>     >             claim MUST be created as the binary representation of the
>     >             concatenation of the identifier of the RS with a sequence
>     >             number counting the tokens containing an 'exi' claim,
> issued
>     >             by this AS for the RS.
>     >
>     >          +  The RS MUST store the highest sequence number of an
> expired
>     >             token containing the "exi" claim that it has seen, and
> treat
>     >             tokens with lower sequence numbers as expired.
>     >
>     > FP: A question rather than a comment - I am not sure I understand
> this. An
>     > "exi" value might be higher for a different token (with a lower
> sequence
>     > number), so how does the counter of the tokens help? Wouldn't that
> make
>     > the RS discard a valid token just because it has a lower sequence
> number?
>     >
>     > 35. -----
>     >
>     >    RS.  Therefore, C must not communicate with an AS if it cannot
>     >    determine that this AS has the authority to issue access tokens
> for
>     >    this RS.  Otherwise, a compromised RS may use this to perform a
>     >
>     > FP: How is C supposed to determine that? Doesn't this sentence make
> the
>     > whole AS Creation Hints response useless - either the client already
> knows,
>     > or it doesn't and it must not communicate with it regardless of RS
> says?
>     >
>     > 36. -----
>     >
>     >    compromised.  In order to prevent this, an RS may use the
> nonce-based
>     >    mechanism defined in Section 5.3 to ensure freshness of an Access
>     >
>     > FP: please mention "cnonce" to make it easier to find.
>     >
>     > 37. -----
>     >
>     >    There may be use cases were different profiles of this framework
> are
>     >    combined.  For example, an MQTT-TLS profile is used between the
>     >    client and the RS in combination with a CoAP-DTLS profile for
>     >    interactions between the client and the AS.  The security of a
>     >    profile MUST NOT depend on the assumption that the profile is used
>     >    for all the different types of interactions in this framework.
>     >
>     > FP: This seems strange - maybe I just don't understand how this is
> supposed
>     > to work, but each profile defines exactly at least C - RS
> communication and
>     > security, if several are combined, it seems that at least the C-RS
> would
>     > conflict.
>     >
>     >
>     >
>     > _______________________________________________
>     > Ace mailing list
>     > Ace@ietf.org
>     > https://www.ietf.org/mailman/listinfo/ace
>
>
> _______________________________________________
> Ace mailing list
> Ace@ietf.org
> https://www.ietf.org/mailman/listinfo/ace
>