Re: [OAUTH-WG] Barry Leiba's No Objection on draft-ietf-oauth-token-exchange-18: (with COMMENT)

Brian Campbell <bcampbell@pingidentity.com> Fri, 19 July 2019 14:13 UTC

Return-Path: <bcampbell@pingidentity.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E23FF1202B4 for <oauth@ietfa.amsl.com>; Fri, 19 Jul 2019 07:13:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pingidentity.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 vdaTxWqVMRlp for <oauth@ietfa.amsl.com>; Fri, 19 Jul 2019 07:13:21 -0700 (PDT)
Received: from mail-io1-xd2f.google.com (mail-io1-xd2f.google.com [IPv6:2607:f8b0:4864:20::d2f]) (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 D3DF71202BE for <oauth@ietf.org>; Fri, 19 Jul 2019 07:13:20 -0700 (PDT)
Received: by mail-io1-xd2f.google.com with SMTP id e20so28352738iob.9 for <oauth@ietf.org>; Fri, 19 Jul 2019 07:13:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pingidentity.com; s=gmail; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=c2gemOuO6cwrplFyUKWHKkSwK72cV4Su3njI0wtIPQU=; b=CkCuDRknVTFvqCQqt2rmJVcl7dF011I/YDO5FR2cT14I+pLkuMd6SR/tHK6Gh9cUvI 4mZfIRRosP+Kpss9ZzsAvPWt1TcpcGLR7QJUX4PtOURHK9HnqlnVjEUE0xyBrVuPznYG uUzC+exZnWoFMnGLP36VIwIDDoLBDaa2oPAGY=
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=c2gemOuO6cwrplFyUKWHKkSwK72cV4Su3njI0wtIPQU=; b=oWOanpqTuJ4iJM9/m5wD3o9It/FQz4Y5jRkxIiOjCA7X0IBbReBf2TqwSd6rnQ9L4V WOrZDVtRyz1I4mu2/1mlqFTi4DFaYSlPWg/KHe+aVOjU0iqbXNyGXgdUSzWSLtg+Tke9 xAUwzHZu4NwwpZbQBNJ0+bqRoF7liFY4EO/tMs8zLpJF/M3+VTNfAiT7OogG6H77vshb NFm84jgLKNKDKFcUjZHagH7APfQyPia3/FM0UaURCHFtFNsNw14uW7+621vRlU4EfM2W VkCQpJ93/CA2KO1dCFoQijVwTFE+Oq6TQ5EDzEetguMZERx+dnxlfglLo1sh2cLWu2Ez aB9Q==
X-Gm-Message-State: APjAAAVnbWW8Q8m8hrrTkzncG0IHxAnsmzS4Gl5wFbk+uhMobZJsCZfm qpJ0Hvr8vCJlnZjP63cgnIcGVFDWuX5Tj/x5kBYZhnNnF+xewwjd7J8tghgHvm8XHFfGPWnbA0g xwgxJ/InkOfYBfA==
X-Google-Smtp-Source: APXvYqyNOrQlP+zdlalrGfXHYit1GHpNQ9gpjQ513p1BuR+11QDBvRBpxYETC+gEPmVX6iAqwLRqob3SEEp1vG7gTng=
X-Received: by 2002:a5d:87c6:: with SMTP id q6mr27807156ios.115.1563545599975; Fri, 19 Jul 2019 07:13:19 -0700 (PDT)
MIME-Version: 1.0
References: <156348397007.8464.8217832087905511031.idtracker@ietfa.amsl.com>
In-Reply-To: <156348397007.8464.8217832087905511031.idtracker@ietfa.amsl.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Fri, 19 Jul 2019 08:12:53 -0600
Message-ID: <CA+k3eCQR_yVZJdw0CmPL0qVCA3S0x5gZAr6_BwvDrZDW0NOPWA@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Cc: The IESG <iesg@ietf.org>, oauth <oauth@ietf.org>, draft-ietf-oauth-token-exchange@ietf.org, oauth-chairs@ietf.org
Content-Type: multipart/alternative; boundary="00000000000013b9b7058e095424"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/pTMXVc6sD8e2SquUs_TdMzTwFwk>
Subject: Re: [OAUTH-WG] Barry Leiba's No Objection on draft-ietf-oauth-token-exchange-18: (with COMMENT)
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 14:13:28 -0000

Barry, thanks for the review, ballot position and comments. Please see
inline below for my replies to the latter.


On Thu, Jul 18, 2019 at 3:06 PM Barry Leiba via Datatracker <
noreply@ietf.org> wrote:

> Barry Leiba has entered the following ballot position for
> draft-ietf-oauth-token-exchange-18: No Objection
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-oauth-token-exchange/
>
>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> I have comments below, a couple of which might have been DISCUSS except
> that
> there have been enough eyes on this and enough DISCUSSes already, and I
> trust
> the authors and responsible AD to do the right thing.


I always endeavor to do the right thing.



>   So I’ve divided the
> comments between “higher importance” and “purely editorial”.
>
> Of higher importance:
>
> — Section 1.1 —
> Given the extensive discussion of impersonation here, what strikes me as
> missing is pointing out that impersonation here is still controlled, that
> “A is
> B” but only to the extent that’s allowed by the token.  First, it might be
> limited by number of instances (one transaction only), by time of day
> (only for
> 10 minutes), and by scope (in regard to B’s address book, but not B’s
> email).
> Second, there is accountability: audit information still shows that the
> token
> authorized acting as B.  Is that not worth clarifying?
>

My initial response was going to be "sure, I'll add some bits in sec 1.1
along those lines to clarify that." However, as I look again at that
section for good opportunities to make such additions, I feel like it is
already said that impersonation is controlled. Notably there are these bits
of text:

"or for A to
   be granted a *limited access credential *to C but that continues to
   identify B as the authorized entity ("impersonation")."

"When principal A impersonates principal B, A is given all the rights
   that B has *within some defined rights context*"

So I think it already says that and I'm gonna have to flip it back and ask
if you have concrete suggestions for changes or additions that would say it
more clearly or more to your liking?




>
> — Section 8.2 —
> RFC 8174 needs to be normative, along with 2119.
>

Of course. Not sure how those got separated in the first place but I'll
move 8174 to normative.



> — Section 2.2.2 —
>
>    If the authorization server is unwilling or unable to issue a token
>    for all the target services indicated by the "resource" or "audience"
>    parameters, the "invalid_target" error code SHOULD be used in the
>    error response.
>
> I always trip when I read “all” in a context like this.  I think you mean
> “any”, because you have “a token”.  You could arguably make it “tokens” and
> leave “all”, but I think changing to “any” is clearer:
>
> NEW
>    If the authorization server is unwilling or unable to issue a token
>    for any target service indicated by the "resource" or "audience"
>    parameters, the "invalid_target" error code SHOULD be used in the
>    error response and no tokens are returned.
> END
>
> The danger with “all” is having a reader interpret the error as only
> occurring
> when the server fails *all* services, and thinking that failing one out of
> three still constitutes success.  I have seen this be an issue often (not
> with
> OAuth, but in general).  If you want to be absolutely clear you could even
> add
> to the end, “A request is successful only when all requested tokens are
> issued.”
>

Will change to try and avoid that potential trip-up.




>
> — Section 5 —
>
>    In addition, both delegation and impersonation introduce unique
>    security issues.  Any time one principal is delegated the rights of
>    another principal, the potential for abuse is a concern.  The use of
>    the "scope" claim is suggested to mitigate potential for such abuse,
>    as it restricts the contexts in which the delegated rights can be
>    exercised.
>
> I’m ambivalent here: is it worth also mentioning limiting the time a token
> is
> valid and possibly make it a one-time-use token?  Or is it that that’s
> adequately covered in the other references and shouldn’t be repeated here?
>
> Also, is it worth referring (not copying) here to the advice in section 2.1
> about the importance of authentication?
>
> — Section 6 —
> Should “TLS” here have a citation and normative reference?
>

I didn't include an explicit reference here because TLS is transitively
referenced by other normative references (including 6749 of which this
whole thing is an extension) and TLS is pretty widely recognized even
without citation.

Or maybe it was just an oversight when I added that particular text.

I'm happy to add a citation here but it does raise the question of what the
most appropriate way to cite TLS is right now - 1.3, 1.2, or the BCP or
some combination thereof?



>
> =====
>
> Purely editorial:
>
> — Section 1 —
>
>    An OAuth resource server, for example, might assume
>    the role of the client during token exchange in order to trade an
>    access token, which it received in a protected resource request, for
>    a new token that is appropriate to include in a call to a backend
>    service.
>
> A suggestion: I think this would work better using a restrictive clause,
> rather
> than a non-restrictive one.
>
> NEW
>    An OAuth resource server, for example, might assume
>    the role of the client during token exchange in order to trade an
>    access token that it received in a protected resource request for
>    a new token that is appropriate to include in a call to a backend
>    service.
> END
>

 Will take the suggestion.




>    The scope of this specification is limited to the definition of a
>    basic request and response protocol for an STS-style token exchange
>
> There should be hyphens in “request-and-reaponse protocol” (compound
> modifier).
>

Okay, request-and-response it will be.



>
> — Sections 4.1 and 4.4 —
>
> Section 4.1 says this:
>    Consequently, non-
>    identity claims (e.g., "exp", "nbf", and "aud") are not meaningful
>    when used within an "act" claim, and therefore must not be used.
>
> Section 4.4 says this:
>    Consequently,
>    claims such as "exp", "nbf", and "aud" are not meaningful when used
>    within a "may_act" claim, and therefore should not be used.
>
> I agree that neither of these should be BCP 14 key words, but I still think
> that being consistent is important, and I urge you to make them the same:
> both
> “must not be used” or both “should not be used” (or perhaps both “are not
> used”).
>

Makes sense, I'll make them the same.  And I think I'll go with “are not
used".

-- 
_CONFIDENTIALITY NOTICE: This email may contain confidential and privileged 
material for the sole use of the intended recipient(s). Any review, use, 
distribution or disclosure by others is strictly prohibited.  If you have 
received this communication in error, please notify the sender immediately 
by e-mail and delete the message and any file attachments from your 
computer. Thank you._