[OAUTH-WG] MTLS token endoint & discovery

Dominick Baier <dbaier@leastprivilege.com> Sat, 09 February 2019 10:09 UTC

Return-Path: <dbaier@leastprivilege.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 6E85D1311A8 for <oauth@ietfa.amsl.com>; Sat, 9 Feb 2019 02:09:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=leastprivilege-com.20150623.gappssmtp.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 u62otLpR5DLj for <oauth@ietfa.amsl.com>; Sat, 9 Feb 2019 02:09:27 -0800 (PST)
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com [IPv6:2607:f8b0:4864:20::72e]) (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 11D70130F2F for <oauth@ietf.org>; Sat, 9 Feb 2019 02:09:27 -0800 (PST)
Received: by mail-qk1-x72e.google.com with SMTP id o125so3663501qkf.3 for <oauth@ietf.org>; Sat, 09 Feb 2019 02:09:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leastprivilege-com.20150623.gappssmtp.com; s=20150623; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=JreeG75R8iV7VPfEn3QIdXerD1OBbaQFuPg/DhcV8OY=; b=mxFFM/rOQ4FsLEcxoo/1VSz00YUpEWeq7TnoneA+a4lBNioJsdCrLz0HyI6t7OV3Gd QmUGT9gr5KLmUnQVBB10hy4dChMG/rESFp8dqLJsRAeDeUTVki6clw6Lvr58cVheMQJE FxFCKDmr4ddJYKosHxVvMi3O6zF8qsbeAb+PZiE9eFl3kRKxdOaFHrvsT5TDI+Y9NNfq YT478afyjwaF4OLH1Nt+Vcs7QiC825Zn7N+UHVywg/UikNiYEce6ihjwnzFOfNXqyV9L gNY14fwIqDKi0OIHgvzM9TofEXXg0wOpo2buxrPJm+yvfYgKfyfwEIBSZljnab07mb5A LqmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=JreeG75R8iV7VPfEn3QIdXerD1OBbaQFuPg/DhcV8OY=; b=QPCP/y+0rBWGCwrpq2K0TGUYYBML9Sth3f/rxoDeDQ7JZQ3UBXey53NgUHDv15KZDT qFL4+m0O7HC2xpCfAr5vYUC1JHk77v8Eh1ZaYE8CUE053JXSnxavzLQaT7lEIHhTWzFS SF/mfKuX4U5aa3MGy6qgZLqnxKMqixF6bYFzQB81WMzMg78fwRuvqDBouDKWdQSx2LBy X8iIOeTS30H1XIhzi5EklMpY4K9xpw7PFZGLO4cNIYiA3NFVgGwleRo7E1IsPvYBamPw gbT2ikI0bRn7LU24oUJAhkEU42FeqmZ5/Oi6xejd+4W+fej4cnlUbo8PxJzTrc4nneYv 1AUw==
X-Gm-Message-State: AHQUAubvj6osIqf0Mi5RjE6ZT568wO/ZMUS2AeInW10+t3DunPeUAflv K/UCBOGU2olwYPqGOTMStGqtBShPWZ5LpNJQz6tkjpI=
X-Google-Smtp-Source: AHgI3IbH8jYjrBMxMJ3drqNqcc3Aswx0Kf08YN7bP9G27577a2pD5wT2JM4gjJVxH9VOIShDL+laDU/UrL47halo3UY=
X-Received: by 2002:ae9:f113:: with SMTP id k19mr13744686qkg.72.1549706965345; Sat, 09 Feb 2019 02:09:25 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sat, 9 Feb 2019 02:09:24 -0800
From: Dominick Baier <dbaier@leastprivilege.com>
In-Reply-To: <CA+k3eCT+pF_aya_9OWB7e_XsSF1KdYz7ys+KjYX6QVEZi84n_Q@mail.gmail.com>
References: <CA+k3eCTKSFiiTw8--qBS0R2YVQ0MY0eKrMBvBNE4pauSr1rHcA@mail.gmail.com> <6A614742-290D-47E2-B3E9-A4D49DB32DD7@forgerock.com> <CA+k3eCSoNRGrsxeLYd6DEqU+U6TB_aXV2aPUa07Um2X0ZH_ZEw@mail.gmail.com> <548FF68E-7775-4FE0-829F-1E9CC6EA8E3F@alkaline-solutions.com> <1119DDAE-8044-43C9-A6D4-6032B3BB62B8@forgerock.com> <9D007408-3BCC-4165-BCA4-083BD7602E7D@alkaline-solutions.com> <CA+k3eCQi1sz2bDOMEATpN9ZvXd+VJydQXG03WKuLczG5kz2z+Q@mail.gmail.com> <CAP-T6TTD-nLGoPHqJ042SzotLorb2mzoWgLxsausWHhRPZr8xA@mail.gmail.com> <CA+k3eCQtgku68usoCFsTeHVnNOLqWs6NweOgpQKsa7_9=wK7Vw@mail.gmail.com> <99d38517-0e25-789f-83ae-9f33e5620475@aol.com> <CA+k3eCQVL4DeRqHWYu6=xXjBK2RnukQ5RxFzRjGZYr4au8bBkQ@mail.gmail.com> <F5841CEA-BA74-4F17-977A-A78922CDC68C@amazon.com> <CA+k3eCT+mPu0=9TDKtuVqXy=zStEWTS5aVOsc2TuJcYQ2cvE6A@mail.gmail.com> <CC05C965-3308-4449-A1E2-EDA0119BE5D2@amazon.com> <CA+k3eCTXLJuQAjSgskfv95_cqnepmBDSzbidLSZsOS33SkLFEA@mail.gmail.com> <54A2B8BD-2794-45B6-969B-E6155A1B7EBE@amazon.com> <CA+k3eCRCxPnHNDpPugNaETqdogMun259Vzru4QPn0qBVuxckpA@mail.gmail.com> <CA+k3eCSYPR2TSFQc_Unbc-sexN8SFmp7PD4qjUFUo3Ju7hg7fQ@mail.gmail.com> <CA+k3eCT6s+zFsK0E1aXf3jMhJyPOQ=GpgnFYJNH7X13WuAR6qA@mail.gmail.com> <18CD2B6D-5FA9-45B1-9334-EB785F40A6A9@amazon.com> <CA+k3eCT+pF_aya_9OWB7e_XsSF1KdYz7ys+KjYX6QVEZi84n_Q@mail.gmail.com>
MIME-Version: 1.0
Date: Sat, 09 Feb 2019 02:09:24 -0800
Message-ID: <CAO7Ng+tR1OiwbSTokF8KNaP0KM7pyaLwTOUdor-dnGv4Rk4yng@mail.gmail.com>
To: oauth <oauth@ietf.org>, Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002d019d05817345c2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/3xnU0iLsScmABJkNqKL19Vtf66I>
Subject: [OAUTH-WG] MTLS token endoint & discovery
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: Sat, 09 Feb 2019 10:09:31 -0000

We are currently implementing MTLS in IdentityServer.

Our approach will be that we’ll offer a separate token endpoint that
supports client certs. Are you planning on adding an official endpoint name
for discovery? Right now we are using “mtls_token_endpoint”.

Thanks
———
Dominick

On 7. February 2019 at 22:36:55, Brian Campbell (
bcampbell=40pingidentity.com@dmarc.ietf.org) wrote:

Ah yes, that makes sense. Thanks for clarifying. And it is indeed a good
reminder that even a seemingly innocuous change that should be backwards
compatible can break things unexpectedly..





On Thu, Feb 7, 2019 at 8:57 AM Richard Backman, Annabelle <
richanna@amazon.com> wrote:

> The case I’m referencing didn’t specifically involve AS metadata. We had
> clients in the wild that assumed that all the properties in the JSON object
> returned from our userinfo endpoint were scalar strings. This broke when we
> introduced a new property whose value was a JSON object. It was a good
> reminder that even a seemingly innocuous change that should be backwards
> compatible can force more work on clients than we expect.
>
>
>
> --
>
> Annabelle Richard Backman
>
> AWS Identity
>
>
>
>
>
> *From:* Brian Campbell <bcampbell@pingidentity.com>
> *Date:* Wednesday, February 6, 2019 at 11:30 AM
> *To:* "Richard Backman, Annabelle" <richanna=40amazon.com@dmarc.ietf.org>
> *Cc:* "Richard Backman, Annabelle" <richanna@amazon.com>, oauth <
> oauth@ietf.org>
> *Subject:* Re: [OAUTH-WG] [UNVERIFIED SENDER] Re: MTLS and in-browser
> clients using the token endpoint
>
>
>
> And I'm honestly really struggling to see what could have gone wrong with
> or how token_endpoint_auth_methods broke something with the user info
> endpoint. If you have the time and/or it'd be informative to this here
> little discussion, please explain that one a bit more.
>
>
>
> On Wed, Feb 6, 2019 at 12:15 PM Brian Campbell <bcampbell@pingidentity.com>
> wrote:
>
> "far" should have said "fair" in the previous message
>
>
>
>
>
>
>
>
>
>
>
> On Tue, Feb 5, 2019 at 4:35 PM Brian Campbell <bcampbell@pingidentity.com>
> wrote:
>
> It may well be due to my own intellectual shortcomings but these
> issues/questions/confusion-points are not resonating for me as being
> problematic.
>
>
>
> The more general stance of "this isn't needed or worth it in this
> document" (I think that's far?) is being heard though.
>
>
>
>
>
>
>
> On Tue, Feb 5, 2019 at 1:42 PM Richard Backman, Annabelle <richanna=
> 40amazon.com@dmarc.ietf.org> wrote:
>
> (TL;DR: punt AS metadata to a separate draft)
>
> AS points #1-3 are all questions I would have as an implementer:
>
>    1. Section 2 of RFC8414 <https://tools.ietf.org/html/rfc8414#section-2>
>    says token_endpoint “is REQUIRED unless only the implicit grant type is
>    supported.” So what does the mTLS-only AS put here?
>    2. The claims for these other endpoints are OPTIONAL, potentially
>    leading to inconsistency depending on how #1 gets decided.
>    3. The example usage of the token_endpoint_auth_methods property given
>    earlier is incompatible with RFC8414, since some of its contents are only
>    valid for the non-mTLS endpoints, and others are only valid for the mTLS
>    endpoints. Hence this question.
>    4. This introduces a new metadata property that could impact how other
>    specs should extend AS metadata. That needs to be addressed.
>
>
>
> I could go on for client points but you already get the point. Though I’ll
> share that #3 is real and once forced me to roll back an update to the
> Login with Amazon userinfo endpoint…good times. 😃
>
>
>
> I don’t necessarily think an AS metadata property is wrong per se, but
> understand that you’re bolting a layer of flexibility onto a standard that
> wasn’t designed for that, and I don’t think the metadata proposal as it’s
> been discussed here sufficiently deals with the fallout from that. In my
> view this is a complex enough issue and it’s for a nuanced enough use case
> (as far as I can tell from discussion? Please correct me if I’m wrong) that
> we should punt it to a separate draft (e.g., “Authorization Server Metadata
> Extensions for mTLS Hybrids”) and get mTLS out the door.
>
>
>
> --
>
> Annabelle Richard Backman
>
> AWS Identity
>
>
>
>
>
> *From:* OAuth <oauth-bounces@ietf.org> on behalf of Brian Campbell
> <bcampbell=40pingidentity.com@dmarc.ietf.org>
> *Date:* Monday, February 4, 2019 at 5:28 AM
> *To:* "Richard Backman, Annabelle" <richanna=40amazon.com@dmarc.ietf.org>
> *Cc:* oauth <oauth@ietf.org>
> *Subject:* Re: [OAUTH-WG] [UNVERIFIED SENDER] Re: MTLS and in-browser
> clients using the token endpoint
>
>
>
> Those points of confusion strike me as somewhat hypothetical or
> hyperbolic. But your general point is taken and your position of being anti
> additional metadata on this issue is noted.
>
>
>
> All of which leaves me a bit uncertain about how to proceed. There seem to
> be a range of opinions on this point and gauging consensus is proving
> elusive for me. That's confounded by my own opinion on it being somewhat
> fluid.
>
>
>
> And I'd really like to post an update to this draft about a month or two
> ago.
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Fri, Feb 1, 2019 at 5:03 PM Richard Backman, Annabelle <richanna=
> 40amazon.com@dmarc.ietf.org> wrote:
>
> Confusion from the AS’s perspective:
>
>    1. If I only support mTLS, do I need to include both
>    token_endpoint_uri and mtls_endpoints? Should I omit token_endpoint_uri? Or
>    set it to the empty string?
>    2. What if I only support mTLS for the token endpoint, but not
>    revocation or user info?
>    3. How do I specify authentication methods for the mTLS token
>    endpoint? Does token_endpoint_auth_methods apply to both the mTLS and
>    non-mTLS endpoints?
>    4. I’m using the OAuth 2.0 Device Flow. Do I include a mTLS-enabled
>    device_authorization_endpoint under mtls_endpoints?
>
>
>
> Confusion from the client’s perspective:
>
>    1. As far as I know, I’m a public client, and don’t know anything
>    about mTLS, but the IT admins installed client certs in their users’
>    browsers and the AS expects to use that to authenticate me.
>    2. My AS metadata parser crashed because the mTLS-only AS omitted
>    token_endpoint_uri.
>    3. My AS metadata parser crashed because it didn’t expect to encounter
>    a JSON object as a parameter value.
>    4. The mTLS-only AS didn’t provide a value for mtls_endpoints, what do
>    I do?
>    5. I don’t know what that “m” means, but they told me to use HTTPS, so
>    I should use the one with “tls” in its name, right?
>
>
>
> Yes, you can write normative text that answers most of these. But you’ll
> have to clearly cover a lot of similar-but-slightly-different scenarios and
> be very explicit. And implementers will still get it wrong. The metadata
> change introduces opportunities for confusion and failure that do not exist
> now, and forces them on everyone who supports mTLS. In contrast, the 307
> redirect is only required when an AS wants to support both, and is
> unambiguous in its behavior and meaning.
>
>
>
> --
>
> Annabelle Richard Backman
>
> AWS Identity
>
>
>
>
>
> *From:* Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>
> *Date:* Friday, February 1, 2019 at 3:17 PM
> *To:* "Richard Backman, Annabelle" <richanna@amazon.com>
> *Cc:* George Fletcher <gffletch@aol.com>, oauth <oauth@ietf.org>
> *Subject:* [UNVERIFIED SENDER] Re: [OAUTH-WG] MTLS and in-browser clients
> using the token endpoint
>
>
>
> It doesn't seem like that confusing or large of a change to me - if the
> client is doing MTLS and the given endpoint is present in `mtls_endpoints`,
> then it uses that one.  Otherwise it uses the regular endpoint. It gives an
> AS a lot of flexibility in deployment options. I personally think getting a
> 307 approach deployed and working would be more complicated and error
> prone.
>
>
>
> It is a minority use case at the moment but there are forces in play, like
> the push for increased security in general and to have javascript clients
> use the code flow, that suggest it won't be terribly unusual to see an AS
> that wants to support MTLS clients and javascript/spa clients at the same
> time.
>
>
>
> I've personally wavered back and forth in this thread on whether or not to
> add the new metadata (or something like it). With my reasoning each way
> kinda explained somewhere back in the 40 or so messages that make up this
> thread.  But it seems like the rough consensus of the group here is in
> favor of it.
>
>
>
>
>
>
>
>
>
> On Fri, Feb 1, 2019 at 3:18 PM Richard Backman, Annabelle <richanna=
> 40amazon.com@dmarc.ietf.org> wrote:
>
> This strikes me as a very prominent and confusing change to support what
> seems to be a minority use case. I’m getting a headache just thinking about
> the text needed to clarify when the AS should provide `mtls_endpoints` and
> when the client should use that versus using `token_endpoint.` Why is the
> 307 status code insufficient to cover the case where a single AS supports
> both mTLS and non-mTLS?
>
>
>
> --
>
> Annabelle Richard Backman
>
> AWS Identity
>
>
>
>
>
> *From:* OAuth <oauth-bounces@ietf.org> on behalf of Brian Campbell
> <bcampbell=40pingidentity.com@dmarc.ietf.org>
> *Date:* Friday, February 1, 2019 at 1:31 PM
> *To:* George Fletcher <gffletch=40aol.com@dmarc.ietf.org
> <40aol.com@dmarc....ietf.org>>
> *Cc:* oauth <oauth@ietf.org>
> *Subject:* Re: [OAUTH-WG] MTLS and in-browser clients using the token
> endpoint
>
>
>
> Yes, that would work.
>
>
>
> On Fri, Feb 1, 2019 at 2:28 PM George Fletcher <gffletch=
> 40aol.com@dmarc.ietf.org> wrote:
>
> What if the AS wants to ONLY support MTLS connections. Does it not specify
> the optional "mtls_endpoints" and just use the normal metadata values?
>
> On 1/15/19 8:48 AM, Brian Campbell wrote:
>
> It would definitely be optional, apologies if that wasn't made clear. It'd
> be something to the effect of optional for the AS to include and clients
> doing MTLS would use it when present in AS metadata.
>
>
>
> On Tue, Jan 15, 2019 at 2:04 AM Dave Tonge <dave.tonge@momentumft.co.uk>
> wrote:
>
> I'm in favour of the `mtls_endpoints` metadata parameter - although it
> should be optional.
>
>
> *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.*
>
> _______________________________________________
>
> OAuth mailing list
>
> OAuth@ietf.org
>
> https://www.ietf..org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>
>
>
>
> * 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.*
>
>
> * 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.*
>
>
> * 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.*
>
>
> * 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.*
>

* 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.* _______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth