Re: [OAUTH-WG] Adam Roach's No Objection on draft-ietf-oauth-resource-indicators-05: (with COMMENT)

Brian Campbell <bcampbell@pingidentity.com> Wed, 04 September 2019 20:47 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 9621C120047 for <oauth@ietfa.amsl.com>; Wed, 4 Sep 2019 13:47:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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, URIBL_BLOCKED=0.001] autolearn=unavailable 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 udo6AmpZ8wFQ for <oauth@ietfa.amsl.com>; Wed, 4 Sep 2019 13:47:19 -0700 (PDT)
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (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 DFFBD12008B for <oauth@ietf.org>; Wed, 4 Sep 2019 13:47:18 -0700 (PDT)
Received: by mail-io1-xd2a.google.com with SMTP id x4so47347211iog.13 for <oauth@ietf.org>; Wed, 04 Sep 2019 13:47:18 -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=gZ/qzeiys7SbIeaHZu8NRkNUqoHUhKlgQmVtRUSNMfM=; b=AGlPdInfiWKt/r8k8eY2VCd5JpFQLSyGqgMhP0zKyQCPhPZ1/cazOwwWp2TS4aXarF L+1jNqVCV4URohpV+/CxMNmTkiqHr559dxbI0xtlag3PX35FaB6MMq/DUNGWJlGJD89c 6R4L9p71OFZdIjTzQzMcZheypqKAI3aFpu9iQ=
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=gZ/qzeiys7SbIeaHZu8NRkNUqoHUhKlgQmVtRUSNMfM=; b=SC89HgoAX5cweTCAWyubkQO1lHMEm/JKcifrWO5raEXKf6/z3QtD3UtPOAlsu80bjY 4N5BZcnIm9p9fDJt/t/d9rvtBN+H6pxlFyc+MQdEyIlhcz0oiVRuoMe6kf3tm08WQCT4 sunHHkD5jAh8g2V+68dxdCj86Se1nmu4NIK3OVWLITlXuwIXVaS1aYT5d1WSlSuLxbvq zXSpkwmF3JeLZblI7ZWLn8h6Gz0TCuib7eQew3v4t/+zGCxV9wiaazawryXUKEiF5WC4 97xmV83ecCdfnPtMugXulIP02MeCl4Q574f3Fv851zoCxu4P1VAt7xylOKCxhhfGOZmZ nzkw==
X-Gm-Message-State: APjAAAUp3KB0887WgZ4lAwhKfVdNiveuW1TClmeMTzmVoH5XGUWnrFRL N/MKp7q+/lKBXXCiYfhoDb5vpJJIsIIcTt8BTelWz+FVevKLr3EtopiZQOX1CB/k0kDkIaCiWyR AqT+JCE8woePViT6QVlY=
X-Google-Smtp-Source: APXvYqxrwxnyqwI/ey6IeD8cDvEFU4csIaihg4qy8brUmxMyY9mXR3pkfMqGkSy1MAQWXzoNqEfjgc3xryIb+qfKukI=
X-Received: by 2002:a6b:b494:: with SMTP id d142mr1782181iof.156.1567630038027; Wed, 04 Sep 2019 13:47:18 -0700 (PDT)
MIME-Version: 1.0
References: <156757720342.20663.3055037033818226992.idtracker@ietfa.amsl.com>
In-Reply-To: <156757720342.20663.3055037033818226992.idtracker@ietfa.amsl.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Wed, 04 Sep 2019 14:46:26 -0600
Message-ID: <CA+k3eCSH5pkMkqBUmcENSdc3kDB0z3kpZoVGrPdB2hbsXvV8Bg@mail.gmail.com>
To: Adam Roach <adam@nostrum.com>
Cc: The IESG <iesg@ietf.org>, draft-ietf-oauth-resource-indicators@ietf.org, oauth <oauth@ietf.org>, oauth-chairs@ietf.org
Content-Type: multipart/alternative; boundary="0000000000008e73660591c04f7a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/jpUJZh2aAcrXegjeXsBLfel0FdU>
Subject: Re: [OAUTH-WG] Adam Roach's No Objection on draft-ietf-oauth-resource-indicators-05: (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: Wed, 04 Sep 2019 20:47:22 -0000

Thanks Adam, for the review and No Objection ballot.

On Wed, Sep 4, 2019 at 12:07 AM Adam Roach via Datatracker <noreply@ietf.org>
wrote:

> Adam Roach has entered the following ballot position for
> draft-ietf-oauth-resource-indicators-05: No Objection
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Many thanks to everyone who worked on this refinement to OAuth.
> It seems like it will be a significant improvement over today's
> ad-hoc system.
>
> I agree with Barry and Alexey about the need for some language discussing
> the privacy implications of explicitly signaling audience resources to
> OAuth servers.
>

Barry had other nits and was looking for some clarifying hyphenation. While
it was Alexey, Mirja, Alissa and Eric who have expressed the desire to see
some discussion of the privacy implications added. But I digress and the
who doesn't much matter as the need for something seems to have been
clearly established via comment by a few folks. I've been working on some
text towards that end. Honestly, I'm not too thrilled with it - it amounts
to saying that there's already not much privacy in OAuth and explicitly
signaling resources might make the situation only marginally worse - not
sure what else to say but I do plan to put some text along those lines
discussing the privacy implications in for the next revision.


§2:
>
> >  The client SHOULD use the base URI of the API
> >  as the "resource" parameter value unless specific knowledge of the
> >  resource dictates otherwise.  For example, the value
> >  "https://api.example.com/" would be used for a resource that is the
> >  exclusive application on that host, however, if the resource is one
> >  of many applications on that host, something like
> >  "https://api.example.com/app/" would be used as a more specific
> >  value.  Another example, for an API like SCIM [RFC7644] that has
> >  multiple endpoints such as "https://apps.example.com/scim/Users",
> >  "https://apps.example.com/scim/Groups", and
> >  "https://apps.example.com/scim/Schemas" The client would use
> >  "https://apps.example.com/scim/" as the resource so that the issued
> >  access token is valid for all the endpoints of the SCIM API.
>
> This seems pretty intuitive in the examples given. It may be a little
> less clear when applications are indicated by query parameter instead
> of path prefixes. For example, if an endpoint is running two applications
> distinguished thus:
>
> https://example.com/apps/?app=app1
> https://example.com/apps/?app=app2
>
> ...and in a form that allows for additional parameters:
>
> https://example.com/apps/?darkmode=true&version=1.2&app=app2
>
> ...then the notion of the "most specific API" isn't quite as clear.
> Intuitively, I think the idea would be that the resource for app2
> would be <https://example.com/apps/?app=app2>. It may be useful
> to include an example along these lines as an illustration.
>

Yeah, with query parameters lacking the hierarchical semantics that the
path component has, it is much less clear. In fact, an earlier revision of
the draft forbid the query part as I was trying to avoid the ambiguity that
it brings. But there were enough folks with some use case for it that it
made its way back in. While I am sympathetic to the point you're making
here, I'd prefer to not codify the practice any further by way of example
in the document.



§2.2:
>
> >    &resource=https%3A%2F%2Fcontacts.example.com%2Fapp%2F
> ...
> >        "access_token":"eyJhbGciOiJFUzI1NiIsImtpZCI6Ijc3In0.eyJpc3MiOi
> >         JodHRwOi8vYXV0aG9yaXphdGlvbi1zZXJ2ZXIuZXhhbXBsZS5jb20iLCJzdWI
> >         iOiJfX2JfYyIsImV4cCI6MTU4ODQyMDgyNiwic2NvcGUiOiJjb250YWN0cyIs
> >         ImF1ZCI6Imh0dHBzOi8vY29udGFjdHMuZXhhbXBsZS5jb20vIn0.5f4yhqazc
> >         OSlJw4y94KPeWNEFQqj2cfeO8x4hr3YbHtIl3nQXnBMw5wREY5O1YbZED-GfH
> >         UowfmtNaA5EikYAw",
>
> The "aud" value here is "https://contacts.example.com/" rather than the
> "https://contacts.example.com/app/" that I would expect -- that is, I
> would
> expect them to match. Am I misunderstanding the intended relationship
> between
> "resouce" and "aud"?
>

The relationship doesn't necessarily have to be 1-1 (text about that at the
very end of the main sec 2) but I think here I've just messed up the
example a bit. Looking again at series of examples that kinda build on one
another as well as the explanatory text leading up to figures 5 & 6, it
seems that the value of the resource in the request in figure 5 probably
should have also been just "https://contacts.example.com/" without the
extraneous path part. And that would then match up to your expectations of
the aud claim in figure 6. I'll change figure 5 accordingly to fix that.


§3:
>
> >  Some servers may host user content or be multi-tenant.  In order to
> >  avoid attacks that might confuse a client into sending an access
> >  token to a resource that is user controlled or is owned by a
> >  different tenant, it is important to use a specific resource URI
> >  including a path component.
>
> Related to my comment about §2 above, "path component" isn't quite
> sufficient.
> What you want is "including any portion of the URI that identifies the
> resource, such as a path component."
>

Fair point. Will change.

-- 
_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._