Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing client certificate

Dmitry Telegin <> Fri, 12 November 2021 13:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2BCDE3A0900 for <>; Fri, 12 Nov 2021 05:31:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id BWchej_zDMFD for <>; Fri, 12 Nov 2021 05:31:06 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4864:20::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 84F973A08FE for <>; Fri, 12 Nov 2021 05:31:05 -0800 (PST)
Received: by with SMTP id e11so18504891ljo.13 for <>; Fri, 12 Nov 2021 05:31:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3VP4a8yP9xk/blrdcPGsQY1Vtek5wblRpEy2pP92TmE=; b=XL0K+DYHane1DLpUorJexvOSjFIf11xTUng3Ey47E5tRQqpGTPmoWEPKKJ/4aMSqxW F7OyQadPB+SWUCWS6pmOB1oktNF3Wvp7kL+oEreZ/86i9KJ7wI8vwvGO3merUbeIvzGf RDDFe+ImGWYWu5nfbFGNxYn+t/RtEChT4zeUBxJMoDboSyXL3l9nsTao3zNXSdFK2KOK lLBYRBsQ2UNy6VIVru9301epEoVek37Zw4A9PwgbtkWW8hIKoUyhNcxd06NB7quFhbPC jOPP2lgBHiwDpO9yjsR94DxSOBUu1Pt7TkKNzJk1p3VZqoSj3BzYOauaBOwx7xi0Wi9d 7i0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3VP4a8yP9xk/blrdcPGsQY1Vtek5wblRpEy2pP92TmE=; b=DEXJeiLr47jytiW21HSJZBsYiyJsCmM+k0IiwVH/fPZOu1bzkHXUwkIM86tuuPVtJW V679Xc/P95Wv1jXjrnUb4wKJVfxvy/2W7AweXYjTHDPnGTbUADycJGi5yjVXqSX3oTI1 zlWOnA8TGx9dCeYPzXwwY4lJlts4pi08bplGbqMZKerB5MkPAtRc4JFUlau3z9AkPdTB HIJONu5IBZHLrplBohiSsGOpxqSHNRtnWuugtFD0r2D2Hjvuic7Gi5QoOZgQuhWfwbTX F1w9zkApkIVpIyfm8ZqLNSNdVtzRDpjjnMkQM2CTwWE/PrmJekLT1ZCiwVGxS6cPJXmP dd/g==
X-Gm-Message-State: AOAM530STmbMGeEDLq4jC7C5F9mlN0xqyWmm3mm34nSRzZKyvIv9ULUX 2aDjnrtgX01rHp8Vd0A7kMWjoP0dAINNZr//Z7sIKg==
X-Google-Smtp-Source: ABdhPJz8Vw073Bzjvdf+rjCk/i1VeASS20wQcqwo0iC1/i2EERn/WDMuJFAmCkgWVkSrc4EmMPh2E6DeHklV48kiLOs=
X-Received: by 2002:a05:651c:98c:: with SMTP id b12mr15568666ljq.481.1636723855665; Fri, 12 Nov 2021 05:30:55 -0800 (PST)
MIME-Version: 1.0
References: <> <> <> <> <>
In-Reply-To: <>
From: Dmitry Telegin <>
Date: Fri, 12 Nov 2021 16:30:44 +0300
Message-ID: <>
To: Justin Richer <>
Cc: oauth <>, 乗松隆志 / NORIMATSU,TAKASHI <>
Content-Type: multipart/alternative; boundary="00000000000003517705d097784d"
Archived-At: <>
Subject: Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing client certificate
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 12 Nov 2021 13:31:11 -0000

Just to make sure I understand the process, is it going to be something
like draft-XXXXXX-oauth-mtls-rfc8705-bis ->
draft-ietf-oauth-mtls-rfc8705-bis -> new RFC that will obsolete the current
one? CCing my colleague Takashi Norimatsu who worked on MTLS holder-of-key
for Keycloak, perhaps he has more ideas for improvements.

As for this stance:

> The MTLS draft also re-uses “Bearer” as a token header, which is also a
> mistake in my opinion.

Did you mean the re-use of the "Bearer" scheme for the Authorization header
and WWW-Authenticate challenge? If so, and if we decide to introduce a new
scheme, I think this would imply a new value for the "token_type" token
response attribute as well.

Of particular interest to me is the question whether different binding
mechanisms (DPoP, MTLS) could co-exist, or should they be mutually
exclusive; this deserves a separate thread though.

- Dmitry

On Thu, Nov 11, 2021 at 10:22 AM Justin Richer <> wrote:

> Only if this working group wanted to take up the work of making a new
> revision of the standard, but I haven't seen any indication of desire to do
> that here. One possibility is for you to propose an update as an individual
> draft to the group here.
> -Justin
> ________________________________________
> From: Dmitry Telegin []
> Sent: Wednesday, November 10, 2021 1:34 PM
> To: Justin Richer
> Cc: oauth
> Subject: Re: [OAUTH-WG] RFC 8705 (oauth-mtls): RS error code for missing
> client certificate
> Thanks for the reply. That makes sense.
> Given that MTLS is not a draft but rather a proposed standard (RFC 8705),
> do you think there is a chance the changes you proposed could land in MTLS
> one day?
> On Wed, Nov 10, 2021 at 6:24 PM Justin Richer <<mailto:
>>> wrote:
> This is just my interpretation, but this feels more like invalid token,
> because you’re not presenting all of the material required for the token
> itself. The DPoP draft has added “invalid_dpop_proof” as an error code,
> which I think is even better, but the MTLS draft is missing such an element
> and that is arguably a mistake in the document. The MTLS draft also re-uses
> “Bearer” as a token header, which is also a mistake in my opinion.
> But given the codes available, “invalid_token” seems to fit better because
> you aren’t messing up the request _to the resource_ itself, you’re messing
> up the token presentation.
>  — Justin
> On Nov 10, 2021, at 10:17 AM, Dmitry Telegin <dmitryt=
> wrote:
> Any updates on this one? The missing certificate case looks more like
> "invalid_request" to me:
> invalid_request
>          The request is missing a required parameter, includes an
>          unsupported parameter or parameter value, repeats the same
>          parameter, uses more than one method for including an access
>          token, or is otherwise malformed.  The resource server SHOULD
>          respond with the HTTP 400 (Bad Request) status code.
> On Fri, Sep 24, 2021 at 2:23 AM Dmitry Telegin <
> <>> wrote:
> From the document:
>    The protected resource MUST obtain, from its TLS implementation
>    layer, the client certificate used for mutual TLS and MUST verify
>    that the certificate matches the certificate associated with the
>    access token.  If they do not match, the resource access attempt MUST
>    be rejected with an error, per [RFC6750<
>>], using an HTTP 401 status
>    code and the "invalid_token" error code.
> Should the same error code be used in the case when the resource failed to
> obtain a certificate from the TLS layer? This could happen, for example, if
> the TLS stack has been misconfigured (e.g. verify-client="REQUESTED"
> instead of "REQUIRED" for Undertow), and the user agent provided no
> certificate.
> Thanks,
> Dmitry
> _______________________________________________
> OAuth mailing list