Return-Path: <ajofoluventures@gmail.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 752143A0A1B
 for <oauth@ietfa.amsl.com>; Thu, 12 Mar 2020 07:26:09 -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=ham 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 xcb3xaImpCYB for <oauth@ietfa.amsl.com>;
 Thu, 12 Mar 2020 07:26:05 -0700 (PDT)
Received: from mail-vs1-xe2e.google.com (mail-vs1-xe2e.google.com
 [IPv6:2607:f8b0:4864:20::e2e])
 (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 9F6CF3A0A1C
 for <oauth@ietf.org>; Thu, 12 Mar 2020 07:26:04 -0700 (PDT)
Received: by mail-vs1-xe2e.google.com with SMTP id n6so3800340vsc.3
 for <oauth@ietf.org>; Thu, 12 Mar 2020 07:26:04 -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; 
 bh=qUn7beol69rZxhdEPtPKKOf7eirH/XtgW1+JyKEP4E8=;
 b=nNN+iFkEUBfEpgCefCCD5TqfGWZ5oWu5d2szi6AaJu/G5hKb8CzOfhKNWqz58WZ/Wh
 aB3kWRP9Or4GvxrItEOpu7TIe8ysYTDu7LJLwcPV6JGyqTpqwCTkRyY1ILRlSwBWmGYZ
 AmSZIJ9Ka7OeSeDj27I5JLSyOsMpwd3NIulpxT7LHjdKGp/6q4i7pV9LuIzcGV8sw/dm
 AABuvXgQkX6jpPYYAFp8src1+syqjsaVpzQOyIM36jI0KUcU8QMag0CXDGiLx0O+LGPD
 cfiCzOWnTe0EHcmgUyUEstWq3uuWsCMirMIZhFur1FybqtUAGjv4M6EMZIqA1o2TeDwb xYuQ==
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;
 bh=qUn7beol69rZxhdEPtPKKOf7eirH/XtgW1+JyKEP4E8=;
 b=NkLbTRjDW4l9GGZD4PglTC58xyF3gOn+mmlSGr7BMeli1TaUOZmrfjDtLXPGHIAcNy
 HZYcuq4MPNOJwZWyRi+pZTOplQz39abLZgpLlTULgpYia5Ico2gbp/NJhtsBKIEtot8F
 2ovs22vo1nh3LFf0y57ijf9DDW+thL30WvW1oVUpqHdwxFBw079e2E6waXT9u5j7jb+2
 vKYUkk4SvPtRcaCxss4rXaOp8iruVyrxMNkA9UKQEORQy5Bjp7Vq+7HGJRCNcR0IQcrQ
 sr8rcXkaDpsDyuf+nTBL+srJPbfo8vyk4rjTbGLnTFE6lYMukrLz6NftyHs6sK45jTqu
 R/GA==
X-Gm-Message-State: ANhLgQ0Hn3pzw3dVNz4xs6ZPc5u07EhNCNXGF1VdcEZH2SzDYPZ1UMzb
 EagIa5k01QRwmkaiWAvQ8cLdGs9o0ypcbtw69hgvaw==
X-Google-Smtp-Source: =?utf-8?q?ADFU+vtERIp7/XaBMLGrXOIsQVeK0cllkLukAZGD8dJB?=
 =?utf-8?q?1OdL5yLUYf1r/q+PO4ZqKo+O7TlO8qWPHL+DFfViyWbkgCs=3D?=
X-Received: by 2002:a67:e18c:: with SMTP id e12mr5362182vsl.16.1584023162917; 
 Thu, 12 Mar 2020 07:26:02 -0700 (PDT)
MIME-Version: 1.0
References: <mailman.2252.1583127209.10874.oauth@ietf.org>
In-Reply-To: <mailman.2252.1583127209.10874.oauth@ietf.org>
From: isaac ajonibode <ajofoluventures@gmail.com>
Date: Thu, 12 Mar 2020 15:25:47 +0100
Message-ID:
 <CAChWCXrUKAJgMt-_2ggU0iC2RwgS9=FZWXkH_KHxtY_mwHYbeQ@mail.gmail.com>
To: oauth@ietf.org
Content-Type: multipart/alternative; boundary="000000000000f11a6305a0a92197"
Archived-At:
 <https://mailarchive.ietf.org/arch/msg/oauth/o4T76nu32ivmqdNEJ0CsWLe5qrk>
Subject: Re: [OAUTH-WG] OAuth Digest, Vol 137, Issue 4
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: Thu, 12 Mar 2020 14:26:10 -0000

--000000000000f11a6305a0a92197
Content-Type: text/plain; charset="UTF-8"

Please unsubscribe me from your mailing list

Isaac O.Ajonibode
C.Director CBMC Nigeria
cbmcnigeria2014@gmail.com
www.cbmcint.com/Nigeria
+2347087552127

FOUNDER/CEO
AJOFOLU VENTURES INT'L LTD
ajofoluventures@gmail.com
+2348164286235
2 Corinthians 5:20


On Mon, 2 Mar 2020, 06:33 , <oauth-request@ietf.org> wrote:

> Send OAuth mailing list submissions to
>         oauth@ietf.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://www.ietf.org/mailman/listinfo/oauth
> or, via email, send a message with subject or body 'help' to
>         oauth-request@ietf.org
>
> You can reach the person managing the list at
>         oauth-owner@ietf.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of OAuth digest..."
>
>
> Today's Topics:
>
>    1. Re: Benjamin Kaduk's Discuss on
>       draft-ietf-oauth-jwt-introspection-response-08: (with DISCUSS and
>       COMMENT) (Benjamin Kaduk)
>    2. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh token?
>       (David Waite)
>    3. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh token?
>       (Andrii Deinega)
>    4. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh token?
>       (David Waite)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sun, 1 Mar 2020 17:03:41 -0800
> From: Benjamin Kaduk <kaduk@mit.edu>
> To: Torsten Lodderstedt <torsten@lodderstedt.net>
> Cc: The IESG <iesg@ietf.org>,
>         draft-ietf-oauth-jwt-introspection-response@ietf.org,
>         oauth-chairs@ietf.org, oauth <oauth@ietf.org>, Rifaat Shekh-Yusef
>         <rifaat.ietf@gmail.com>, Roman Danyliw <rdd@cert.org>
> Subject: Re: [OAUTH-WG] Benjamin Kaduk's Discuss on
>         draft-ietf-oauth-jwt-introspection-response-08: (with DISCUSS and
>         COMMENT)
> Message-ID: <20200302010341.GZ98042@kduck.mit.edu>
> Content-Type: text/plain; charset=utf-8
>
> On Fri, Feb 28, 2020 at 03:44:05PM +0100, Torsten Lodderstedt wrote:
> > Hi Ben,
> >
> > > On 25. Feb 2020, at 23:52, Benjamin Kaduk via Datatracker <
> noreply@ietf.org> wrote:
> > >
> > > Benjamin Kaduk has entered the following ballot position for
> > > draft-ietf-oauth-jwt-introspection-response-08: 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-oauth-jwt-introspection-response/
> > >
> > >
> > >
> >
> > This post focuses on clarifying your DISCUSS comments in order to get
> the process moving again.
> >
> > > ----------------------------------------------------------------------
> > > DISCUSS:
> > > ----------------------------------------------------------------------
> > >
> > > Thank you for the updates in the -08; they address the bulk of the
> > > substantive issues!  I have a few points remaining on the -08 text but
> I
> > > think there are more localized issues to resolve.
> > >
> > > Can IANA please confirm that the new allocations in the -08 have
> > > received appropriate Expert (e.g., media type) review?  I see some
> > > updates in the datatracker history relating to the -08 but nothing in
> > > the email archives.
> > >
> > > It looks like we need to register 'active' as a JWT claim?
> >
> > That?s correct. Will add this.
> >
> > >
> > > I don't think the new semantics for "jti" in the introspection response
> > > are compatible with the RFC 7519 definition.  Specifically, we say that
> > > "jti" will be tied to the input access token, but 7519 says that "jti"
> > > has to change when the contents of the JWT change ("MUST be assigned in
> > > a manner that ensures that there is a negligible probability that the
> > > same value will be accidentally assigned to a different data object"),
> > > and we admit at least the possibility of "active" and "iat" changing.
> >
> > I think the key word is ?accidentally?. This spec causes the AS to
> purposefully issue JWTs with the same ?jti? in order to allow replay
> detection with respect to the introspected access token. ?iat? is changed
> in order to give the RS an indication and proof when the introspection
> response was minted by the AS.
>
> I think "accidentally" is just there to emphasize that there's a risk of
> accidental collision when using a random string as an identifier, since "of
> course you wouldn't deliberately reuse a token identifier".  This stance
> seems to supported by "[t]he 'jti' (JWT ID) claim provides a unique
> identifier for the JWT".  It's really hard for me to read that sentence as
> allowing the use of a single identifier for two different JWT values, since
> it then ceases to be a *unique* identifier.
>
> I seem to have forgotten how this replay detection is supposed to work;
> would you mind giving me a pointer and/or refresher?
>
> >
> > ?Active" does not really change, since the introspection response of an
> inactive token is empty except the ?active? element.
>
> I mean, the token artifact still changes.  What am I supposed to interpret
> "the JWT" as meaning if not the actual encoded artifact?
>
> > So I don?t see issues regarding RFC 7519.
> >
> > >
> > > Section 5 says that:
> > >
> > >   If the access token is considered active, it MUST contain the claims
> > >   "iss" and "aud" in order to prevent misuse of the JWT as an ID or
> > >   access token (see Section 8.1).
> > >
> > > But I don't think the predicate is correct -- misuse is still possible
> > > by services that do not check the "active" claim's value.  Shouldn't
> the
> > > "iss"+"aud" requirements be unconditional?
> >
> > Introspection responses for inactive tokens won?t contain any data
> except ?active?:false. I don?t see how they could be misused and therefore
> think the text is ok.
>
> Could you give me a pointer where in the text it says that if "active" is
> false, no other claims are present?  ("active" only appears three times,
> but none of them seem to say this.)
>
> -Ben
>
> > Please let me know whether you agree with my statements. I would then
> quickly publish a new revision (including changes to address your comments).
> >
> > best regards,
> > Torsten.
> >
> > >
> > >
> > > ----------------------------------------------------------------------
> > > COMMENT:
> > > ----------------------------------------------------------------------
> > >
> > > [New comments on the added text in the diff from -07 to -08.]
> > >
> > > Section 3
> > >
> > >   To support encrypted token introspection response JWTs, the
> > >   authorization server MUST also be provided with the respective
> > >   resource server encryption keys and algorithms.
> > >
> > > IIRC, based on some list discussion this text was going to be tweaked
> to
> > > avoid implying that JWE is mandatory.  (Unfortunately, this is the
> > > thread that evolved into "client certs and TLS Terminating Reverse
> > > Proxies", so it's hard to be sure whether I saw any other followups.)
> > >
> > >   The AS MUST restrict the use of client credentials by a RS to the
> > >   calls it requires, e.g. the AS MAY restrict such a client to call the
> > >   token introspection endpoint only.  How the AS implements this
> > >   restriction is beyond the scope of this specification.
> > >
> > > This should probably be clarified a bit more, in the context of "client
> > > credentials tend to be used by privileged, fixed endpoints, and the
> > > default may just be to allow them all access to all endpoints".  Right
> > > now it's not clear what's being restricted (and who "it" is that
> > > requires calls)
> > >
> > > Section 5
> > >
> > >   This specification registers the "application/token-
> > >   introspection+jwt" media type, which is used as value of the "typ"
> > >   header parameter of the JWT to indicate that the payload is a token
> > >   introspection response.
> > >
> > > Do we also want to note that checking 'jti' is not mandatory and so
> this
> > > does not necessarily provide full protection?  (I guess Section 8.1
> > > covers this in more detail.)
> > >
> > >   The value of the "aud" claims MUST identify the resource server
> > >   receiving the token introspection response.
> > >
> > > We may want to dig into this a bit more: should there be any
> > > relationship between this "aud" value and the "client_id" that an RS
> > > might be using (as obtained from dynamic registration)?
> > > Does this value need to be different from the audience that is used in
> > > access tokens for which this RS is the audience?  (Should it be the
> > > same?)  My instincts lean towards "different" but I would like broader
> > > input.
> > >
> > >   exp     The "exp" claim indicates when the access token passed in the
> > >           introspection request will expire.
> > >
> > > On the face of it this seems divergent from RFC 7519's "the expiration
> > > time on or after which the JWT MUST NOT be accepted for processing",
> > > though upon further examination the distinction is not quite so large.
> > > That is, it's in effect saying that the introspection response should
> > > not be accepted for processing after the base token has expired, which
> > > usually makes sense.  There is a bit of a complication, though, in that
> > > the "active" claim implies that we might still have RSes that plan to
> > > use the introspection response after the "exp" date has passed, which
> > > sounds a lot like a DISCUSS-level internal inconsistency.
> > >
> > >   If possible, the AS MUST narrow down the "scope" value to the scopes
> > >   relevant to the particular RS.
> > >
> > > This sounds kind of like a "SHOULD"...
> > >
> > >   The example response header contains the following JSON document:
> > >
> > > I think this is the JOSE header in the HTTP response (body), not the
> > > (HTTP) response header.
> > >
> > > Section 8.1
> > >
> > >   As an alternative approach, such an attack can be prevented like any
> > >   other token substitution attack by restricting the audience of the
> > >
> > > I'd suggest avoiding describing these as "alternatives"; they seem more
> > > like complementary approaches as part of a defense-in-depth solution
> > > (especially since we are basically mandating both of them).
> > >
> > >   "aud" value set to the resource server's identifier.  Any recipient
> > >   of an JWT MUST check these values in order to detect substitution
> > >   attacks.
> > >
> > > This "MUST" might be out of place -- this is a requirement from RFC
> > > 7519, and not an attempt by this document to make new requirements on
> > > the behavior of all JWT consumers (if it was, that would be a DISCUSS
> > > point!).
> > >
> > >   Resource servers MUST additionally apply the countermeasures against
> > >   replay as described in [I-D.ietf-oauth-security-topics], section 3.2.
> > >
> > > In a similar vein, which set of resources servers is this normative
> > > "MUST" intended to be binding upon?
> > >
> > > Section 9
> > >
> > >   In any case, the AS MUST ensure that the scope of the legal basis is
> > >   enforced throughout the whole process.  The AS MUST retain the scope
> > >   of the legal basis with the access token, e.g. in the scope value,
> > >   and the AS MUST determine the data a resource server is allowed to
> > >   receive based on the resource server's identity and suitable token
> > >   data, e.g. the scope value.
> > >
> > > I suspect I'm just being dense, but could you walk me through how the
> > > access token "scope" value can encode the legal basis for data
> transfer?
> > >
> > >
> > >
> >
>
>
>
>
> ------------------------------
>
> Message: 2
> Date: Sun, 1 Mar 2020 20:38:45 -0700
> From: David Waite <david@alkaline-solutions.com>
> To: Andrii Deinega <andrii.deinega@gmail.com>
> Cc: Bill Jung <bjung=40pingidentity.com@dmarc.ietf.org>,
>         oauth@ietf.org
> Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :
>         Refresh token?
> Message-ID:
>         <C0C40A3E-2455-4C86-B504-AB18F31975D9@alkaline-solutions.com>
> Content-Type: text/plain;       charset=us-ascii
>
> I would expect the AS to invalidate the refresh token in this case, which
> would not require a refresh token mode nor necessarily any signaling back
> to the resource.
>
> -DW
>
> > On Mar 1, 2020, at 12:12 AM, Andrii Deinega <andrii.deinega@gmail.com>
> wrote:
> >
> > Hello Bill,
> >
> > I'm just thinking out loud about possible scenarios for a protected
> > resource here... It may decide to revoke a refresh token if a client
> > application tried to use it instead of an access token when the
> > protected resource is paranoid about security. In order to do that an
> > introspection response should include a non-standard parameter which
> > indicates that the requested token is refresh_token.
> >
> > A user of the introspection endpoint should rely only on a value of
> > the active parameter (which is a boolean indicator) of the endpoint
> > response. This applies to both types of tokens. Note, the expiration
> > date, as well as other parameters, are defined as optional in the
> > specification. Both token types can be revoked before the expiration
> > date comes even if this parameter is presented as part of the
> > response. In my opinion, there are a number of reasons why this check
> > (for a refresh token) can be useful on the client application side.
> >
> > --
> > Regards,
> > Andrii
> >
> >
> > On Fri, Feb 28, 2020 at 1:59 AM Bill Jung
> > <bjung=40pingidentity.com@dmarc.ietf.org> wrote:
> >>
> >> Hello, hopefully I am using the right email address.
> >>
> >> Simply put, can this spec be enhanced to clarify "Who can use the
> introspection endpoint for a refresh token? A resource provider or a client
> app or both?"
> >>
> >> RFC7662 clearly mentions that the user of introspection endpoint is a
> 'protected resource' and that makes sense for an access token. If we allow
> this to client apps, it'll give unnecessary token information to them.
> >> However, the spec also mentions that refresh tokens can also be used
> against the endpoint.
> >> In case of refresh tokens, user of the endpoint should be a client app
> because refresh tokens are used by clients to get another access token.
> (Cannot imagine how/why a resource server would introspect a refresh token)
> >>
> >> Is it correct to assume that the endpoint should be allowed to client
> apps if they want to examine refresh token's expiry time? Then the RFC
> should clearly mention it.
> >>
> >> Thanks in advance.
> >>
> >> <Details from the spec>
> >> In https://tools.ietf.org/html/rfc7662
> >> In '1.  Introduction' section says,
> >> "This specification defines a protocol that allows authorized
> >> protected resources to query the authorization server to determine
> >> the set of metadata for a given token that was presented to them by
> >> an OAuth 2.0 client."
> >> Above makes clear that user of the endpoint is a "protected resource".
> >>
> >> And under 'token' in '2.1.  Introspection Request' section says,
> >> "For refresh tokens,
> >> this is the "refresh_token" value returned from the token endpoint
> >> as defined in OAuth 2.0 [RFC6749], Section 5.1."
> >> So looks like a refresh token is allowed for this endpoint.
> >>
> >>
> >> Bill Jung
> >> Manager, Response Engineering
> >> bjung@pingidentity.com
> >> w: +1 604.697.7037
> >> Connect with us:
> >>
> >> 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
> >
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth
>
>
>
> ------------------------------
>
> Message: 3
> Date: Sun, 1 Mar 2020 21:11:40 -0800
> From: Andrii Deinega <andrii.deinega@gmail.com>
> To: David Waite <david@alkaline-solutions.com>
> Cc: Bill Jung <bjung=40pingidentity.com@dmarc.ietf.org>,
>         oauth@ietf.org
> Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :
>         Refresh token?
> Message-ID:
>         <CALkShct=sYSq-HoG=yMiV2BqT8+F=
> gnej+p2GgFD87FV1OQu3w@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> How would the authorization server know who actually uses the
> introspection endpoint assuming that a protected resource and a client
> application use the same credentials (client_id and client_secret)?
>
> Regards,
> Andrii
>
> On Sun, Mar 1, 2020 at 7:38 PM David Waite <david@alkaline-solutions.com>
> wrote:
> >
> > I would expect the AS to invalidate the refresh token in this case,
> which would not require a refresh token mode nor necessarily any signaling
> back to the resource.
> >
> > -DW
> >
> > > On Mar 1, 2020, at 12:12 AM, Andrii Deinega <andrii.deinega@gmail.com>
> wrote:
> > >
> > > Hello Bill,
> > >
> > > I'm just thinking out loud about possible scenarios for a protected
> > > resource here... It may decide to revoke a refresh token if a client
> > > application tried to use it instead of an access token when the
> > > protected resource is paranoid about security. In order to do that an
> > > introspection response should include a non-standard parameter which
> > > indicates that the requested token is refresh_token.
> > >
> > > A user of the introspection endpoint should rely only on a value of
> > > the active parameter (which is a boolean indicator) of the endpoint
> > > response. This applies to both types of tokens. Note, the expiration
> > > date, as well as other parameters, are defined as optional in the
> > > specification. Both token types can be revoked before the expiration
> > > date comes even if this parameter is presented as part of the
> > > response. In my opinion, there are a number of reasons why this check
> > > (for a refresh token) can be useful on the client application side.
> > >
> > > --
> > > Regards,
> > > Andrii
> > >
> > >
> > > On Fri, Feb 28, 2020 at 1:59 AM Bill Jung
> > > <bjung=40pingidentity.com@dmarc.ietf.org> wrote:
> > >>
> > >> Hello, hopefully I am using the right email address.
> > >>
> > >> Simply put, can this spec be enhanced to clarify "Who can use the
> introspection endpoint for a refresh token? A resource provider or a client
> app or both?"
> > >>
> > >> RFC7662 clearly mentions that the user of introspection endpoint is a
> 'protected resource' and that makes sense for an access token. If we allow
> this to client apps, it'll give unnecessary token information to them.
> > >> However, the spec also mentions that refresh tokens can also be used
> against the endpoint.
> > >> In case of refresh tokens, user of the endpoint should be a client
> app because refresh tokens are used by clients to get another access token.
> (Cannot imagine how/why a resource server would introspect a refresh token)
> > >>
> > >> Is it correct to assume that the endpoint should be allowed to client
> apps if they want to examine refresh token's expiry time? Then the RFC
> should clearly mention it.
> > >>
> > >> Thanks in advance.
> > >>
> > >> <Details from the spec>
> > >> In https://tools.ietf.org/html/rfc7662
> > >> In '1.  Introduction' section says,
> > >> "This specification defines a protocol that allows authorized
> > >> protected resources to query the authorization server to determine
> > >> the set of metadata for a given token that was presented to them by
> > >> an OAuth 2.0 client."
> > >> Above makes clear that user of the endpoint is a "protected resource".
> > >>
> > >> And under 'token' in '2.1.  Introspection Request' section says,
> > >> "For refresh tokens,
> > >> this is the "refresh_token" value returned from the token endpoint
> > >> as defined in OAuth 2.0 [RFC6749], Section 5.1."
> > >> So looks like a refresh token is allowed for this endpoint.
> > >>
> > >>
> > >> Bill Jung
> > >> Manager, Response Engineering
> > >> bjung@pingidentity.com
> > >> w: +1 604.697.7037
> > >> Connect with us:
> > >>
> > >> 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
> > >
> > > _______________________________________________
> > > OAuth mailing list
> > > OAuth@ietf.org
> > > https://www.ietf.org/mailman/listinfo/oauth
> >
>
>
>
> ------------------------------
>
> Message: 4
> Date: Sun, 1 Mar 2020 22:33:22 -0700
> From: David Waite <david@alkaline-solutions.com>
> To: Andrii Deinega <andrii.deinega@gmail.com>
> Cc: Bill Jung <bjung=40pingidentity.com@dmarc.ietf.org>,
>         oauth@ietf.org
> Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :
>         Refresh token?
> Message-ID:
>         <D3D1BFB8-CE54-4E48-A8B9-45E01ED2B637@alkaline-solutions.com>
> Content-Type: text/plain;       charset=us-ascii
>
> On Mar 1, 2020, at 10:11 PM, Andrii Deinega <andrii.deinega@gmail.com>
> wrote:
> >
> > How would the authorization server know who actually uses the
> > introspection endpoint assuming that a protected resource and a client
> > application use the same credentials (client_id and client_secret)?
>
> In the external context, you have a client accessing a protected resource
> with an access token. The client should treat the token as opaque, and
> RFC7662 makes no allowances for that client to introspect its tokens.
>
> If you control both the client and protected resource, you may decide to
> short-cut and have them share credentials. However, the client logic still
> should never be introspecting the tokens.
>
> The security considerations also say that you must prove the
> authentication of the protected resource, which I have interpreted to mean
> that access tokens used to authorize the call to the introspection endpoint
> must be issued to a confidential client - public clients cannot protect
> credentials to perform an authentication. You want to limit introspection
> to prevent denial of service and probing attacks, and to limit the amount
> of information on viable attacks conveyed if someone steals a token.
>
> -DW
>
> >
> > Regards,
> > Andrii
> >
> > On Sun, Mar 1, 2020 at 7:38 PM David Waite <david@alkaline-solutions.com>
> wrote:
> >>
> >> I would expect the AS to invalidate the refresh token in this case,
> which would not require a refresh token mode nor necessarily any signaling
> back to the resource.
> >>
> >> -DW
> >>
> >>> On Mar 1, 2020, at 12:12 AM, Andrii Deinega <andrii.deinega@gmail.com>
> wrote:
> >>>
> >>> Hello Bill,
> >>>
> >>> I'm just thinking out loud about possible scenarios for a protected
> >>> resource here... It may decide to revoke a refresh token if a client
> >>> application tried to use it instead of an access token when the
> >>> protected resource is paranoid about security. In order to do that an
> >>> introspection response should include a non-standard parameter which
> >>> indicates that the requested token is refresh_token.
> >>>
> >>> A user of the introspection endpoint should rely only on a value of
> >>> the active parameter (which is a boolean indicator) of the endpoint
> >>> response. This applies to both types of tokens. Note, the expiration
> >>> date, as well as other parameters, are defined as optional in the
> >>> specification. Both token types can be revoked before the expiration
> >>> date comes even if this parameter is presented as part of the
> >>> response. In my opinion, there are a number of reasons why this check
> >>> (for a refresh token) can be useful on the client application side.
> >>>
> >>> --
> >>> Regards,
> >>> Andrii
> >>>
> >>>
> >>> On Fri, Feb 28, 2020 at 1:59 AM Bill Jung
> >>> <bjung=40pingidentity.com@dmarc.ietf.org> wrote:
> >>>>
> >>>> Hello, hopefully I am using the right email address.
> >>>>
> >>>> Simply put, can this spec be enhanced to clarify "Who can use the
> introspection endpoint for a refresh token? A resource provider or a client
> app or both?"
> >>>>
> >>>> RFC7662 clearly mentions that the user of introspection endpoint is a
> 'protected resource' and that makes sense for an access token. If we allow
> this to client apps, it'll give unnecessary token information to them.
> >>>> However, the spec also mentions that refresh tokens can also be used
> against the endpoint.
> >>>> In case of refresh tokens, user of the endpoint should be a client
> app because refresh tokens are used by clients to get another access token.
> (Cannot imagine how/why a resource server would introspect a refresh token)
> >>>>
> >>>> Is it correct to assume that the endpoint should be allowed to client
> apps if they want to examine refresh token's expiry time? Then the RFC
> should clearly mention it.
> >>>>
> >>>> Thanks in advance.
> >>>>
> >>>> <Details from the spec>
> >>>> In https://tools.ietf.org/html/rfc7662
> >>>> In '1.  Introduction' section says,
> >>>> "This specification defines a protocol that allows authorized
> >>>> protected resources to query the authorization server to determine
> >>>> the set of metadata for a given token that was presented to them by
> >>>> an OAuth 2.0 client."
> >>>> Above makes clear that user of the endpoint is a "protected resource".
> >>>>
> >>>> And under 'token' in '2.1.  Introspection Request' section says,
> >>>> "For refresh tokens,
> >>>> this is the "refresh_token" value returned from the token endpoint
> >>>> as defined in OAuth 2.0 [RFC6749], Section 5.1."
> >>>> So looks like a refresh token is allowed for this endpoint.
> >>>>
> >>>>
> >>>> Bill Jung
> >>>> Manager, Response Engineering
> >>>> bjung@pingidentity.com
> >>>> w: +1 604.697.7037
> >>>> Connect with us:
> >>>>
> >>>> 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
> >>>
> >>> _______________________________________________
> >>> OAuth mailing list
> >>> OAuth@ietf.org
> >>> https://www.ietf.org/mailman/listinfo/oauth
> >>
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
> ------------------------------
>
> End of OAuth Digest, Vol 137, Issue 4
> *************************************
>

--000000000000f11a6305a0a92197
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Please unsubscribe=C2=A0me from your mailing list<br><br>=
<div data-smartmail=3D"gmail_signature">Isaac O.Ajonibode<br>C.Director CBM=
C Nigeria <br><a href=3D"mailto:cbmcnigeria2014@gmail.com">cbmcnigeria2014@=
gmail.com</a><br><a href=3D"http://www.cbmcint.com/Nigeria">www.cbmcint.com=
/Nigeria</a> <br>+2347087552127<br><br>FOUNDER/CEO <br>AJOFOLU VENTURES INT=
&#39;L LTD<br><a href=3D"mailto:ajofoluventures@gmail.com">ajofoluventures@=
gmail.com</a> <br>+2348164286235<br>2 Corinthians 5:20<br>=C2=A0=C2=A0=C2=
=A0 </div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gm=
ail_attr">On Mon, 2 Mar 2020, 06:33 , &lt;<a href=3D"mailto:oauth-request@i=
etf.org">oauth-request@ietf.org</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">Send OAuth mailing list submissions to<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth@ietf.org" target=3D"_bl=
ank" rel=3D"noreferrer">oauth@ietf.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"https://www.ietf.org/mailman/listinf=
o/oauth" rel=3D"noreferrer noreferrer" target=3D"_blank">https://www.ietf.o=
rg/mailman/listinfo/oauth</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth-request@ietf.org" targe=
t=3D"_blank" rel=3D"noreferrer">oauth-request@ietf.org</a><br>
<br>
You can reach the person managing the list at<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth-owner@ietf.org" target=
=3D"_blank" rel=3D"noreferrer">oauth-owner@ietf.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of OAuth digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
=C2=A0 =C2=A01. Re: Benjamin Kaduk&#39;s Discuss on<br>
=C2=A0 =C2=A0 =C2=A0 draft-ietf-oauth-jwt-introspection-response-08: (with =
DISCUSS and<br>
=C2=A0 =C2=A0 =C2=A0 COMMENT) (Benjamin Kaduk)<br>
=C2=A0 =C2=A02. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh toke=
n?<br>
=C2=A0 =C2=A0 =C2=A0 (David Waite)<br>
=C2=A0 =C2=A03. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh toke=
n?<br>
=C2=A0 =C2=A0 =C2=A0 (Andrii Deinega)<br>
=C2=A0 =C2=A04. Re: OAuth 2.0 Token Introspection in RFC7662 : Refresh toke=
n?<br>
=C2=A0 =C2=A0 =C2=A0 (David Waite)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Sun, 1 Mar 2020 17:03:41 -0800<br>
From: Benjamin Kaduk &lt;<a href=3D"mailto:kaduk@mit.edu" target=3D"_blank"=
 rel=3D"noreferrer">kaduk@mit.edu</a>&gt;<br>
To: Torsten Lodderstedt &lt;<a href=3D"mailto:torsten@lodderstedt.net" targ=
et=3D"_blank" rel=3D"noreferrer">torsten@lodderstedt.net</a>&gt;<br>
Cc: The IESG &lt;<a href=3D"mailto:iesg@ietf.org" target=3D"_blank" rel=3D"=
noreferrer">iesg@ietf.org</a>&gt;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:draft-ietf-oauth-jwt-introspe=
ction-response@ietf.org" target=3D"_blank" rel=3D"noreferrer">draft-ietf-oa=
uth-jwt-introspection-response@ietf.org</a>,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth-chairs@ietf.org" target=
=3D"_blank" rel=3D"noreferrer">oauth-chairs@ietf.org</a>, oauth &lt;<a href=
=3D"mailto:oauth@ietf.org" target=3D"_blank" rel=3D"noreferrer">oauth@ietf.=
org</a>&gt;, Rifaat Shekh-Yusef<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;<a href=3D"mailto:rifaat.ietf@gmail.com" ta=
rget=3D"_blank" rel=3D"noreferrer">rifaat.ietf@gmail.com</a>&gt;, Roman Dan=
yliw &lt;<a href=3D"mailto:rdd@cert.org" target=3D"_blank" rel=3D"noreferre=
r">rdd@cert.org</a>&gt;<br>
Subject: Re: [OAUTH-WG] Benjamin Kaduk&#39;s Discuss on<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 draft-ietf-oauth-jwt-introspection-response-08:=
 (with DISCUSS and<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 COMMENT)<br>
Message-ID: &lt;<a href=3D"mailto:20200302010341.GZ98042@kduck.mit.edu" tar=
get=3D"_blank" rel=3D"noreferrer">20200302010341.GZ98042@kduck.mit.edu</a>&=
gt;<br>
Content-Type: text/plain; charset=3Dutf-8<br>
<br>
On Fri, Feb 28, 2020 at 03:44:05PM +0100, Torsten Lodderstedt wrote:<br>
&gt; Hi Ben, <br>
&gt; <br>
&gt; &gt; On 25. Feb 2020, at 23:52, Benjamin Kaduk via Datatracker &lt;<a =
href=3D"mailto:noreply@ietf.org" target=3D"_blank" rel=3D"noreferrer">norep=
ly@ietf.org</a>&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt; Benjamin Kaduk has entered the following ballot position for<br>
&gt; &gt; draft-ietf-oauth-jwt-introspection-response-08: Discuss<br>
&gt; &gt; <br>
&gt; &gt; When responding, please keep the subject line intact and reply to=
 all<br>
&gt; &gt; email addresses included in the To and CC lines. (Feel free to cu=
t this<br>
&gt; &gt; introductory paragraph, however.)<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Please refer to <a href=3D"https://www.ietf.org/iesg/statement/di=
scuss-criteria.html" rel=3D"noreferrer noreferrer" target=3D"_blank">https:=
//www.ietf.org/iesg/statement/discuss-criteria.html</a><br>
&gt; &gt; for more information about IESG DISCUSS and COMMENT positions.<br=
>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; The document, along with other ballot positions, can be found her=
e:<br>
&gt; &gt; <a href=3D"https://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-=
introspection-response/" rel=3D"noreferrer noreferrer" target=3D"_blank">ht=
tps://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-introspection-response/=
</a><br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; <br>
&gt; This post focuses on clarifying your DISCUSS comments in order to get =
the process moving again. <br>
&gt; <br>
&gt; &gt; -----------------------------------------------------------------=
-----<br>
&gt; &gt; DISCUSS:<br>
&gt; &gt; -----------------------------------------------------------------=
-----<br>
&gt; &gt; <br>
&gt; &gt; Thank you for the updates in the -08; they address the bulk of th=
e<br>
&gt; &gt; substantive issues!=C2=A0 I have a few points remaining on the -0=
8 text but I<br>
&gt; &gt; think there are more localized issues to resolve.<br>
&gt; &gt; <br>
&gt; &gt; Can IANA please confirm that the new allocations in the -08 have<=
br>
&gt; &gt; received appropriate Expert (e.g., media type) review?=C2=A0 I se=
e some<br>
&gt; &gt; updates in the datatracker history relating to the -08 but nothin=
g in<br>
&gt; &gt; the email archives.<br>
&gt; &gt; <br>
&gt; &gt; It looks like we need to register &#39;active&#39; as a JWT claim=
?<br>
&gt; <br>
&gt; That?s correct. Will add this. <br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; I don&#39;t think the new semantics for &quot;jti&quot; in the in=
trospection response<br>
&gt; &gt; are compatible with the RFC 7519 definition.=C2=A0 Specifically, =
we say that<br>
&gt; &gt; &quot;jti&quot; will be tied to the input access token, but 7519 =
says that &quot;jti&quot;<br>
&gt; &gt; has to change when the contents of the JWT change (&quot;MUST be =
assigned in<br>
&gt; &gt; a manner that ensures that there is a negligible probability that=
 the<br>
&gt; &gt; same value will be accidentally assigned to a different data obje=
ct&quot;),<br>
&gt; &gt; and we admit at least the possibility of &quot;active&quot; and &=
quot;iat&quot; changing.<br>
&gt; <br>
&gt; I think the key word is ?accidentally?. This spec causes the AS to pur=
posefully issue JWTs with the same ?jti? in order to allow replay detection=
 with respect to the introspected access token. ?iat? is changed in order t=
o give the RS an indication and proof when the introspection response was m=
inted by the AS.<br>
<br>
I think &quot;accidentally&quot; is just there to emphasize that there&#39;=
s a risk of<br>
accidental collision when using a random string as an identifier, since &qu=
ot;of<br>
course you wouldn&#39;t deliberately reuse a token identifier&quot;.=C2=A0 =
This stance<br>
seems to supported by &quot;[t]he &#39;jti&#39; (JWT ID) claim provides a u=
nique<br>
identifier for the JWT&quot;.=C2=A0 It&#39;s really hard for me to read tha=
t sentence as<br>
allowing the use of a single identifier for two different JWT values, since=
<br>
it then ceases to be a *unique* identifier.<br>
<br>
I seem to have forgotten how this replay detection is supposed to work;<br>
would you mind giving me a pointer and/or refresher?<br>
<br>
&gt; <br>
&gt; ?Active&quot; does not really change, since the introspection response=
 of an inactive token is empty except the ?active? element. <br>
<br>
I mean, the token artifact still changes.=C2=A0 What am I supposed to inter=
pret<br>
&quot;the JWT&quot; as meaning if not the actual encoded artifact?<br>
<br>
&gt; So I don?t see issues regarding RFC 7519.<br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; Section 5 says that:<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0If the access token is considered active, it MUST con=
tain the claims<br>
&gt; &gt;=C2=A0 =C2=A0&quot;iss&quot; and &quot;aud&quot; in order to preve=
nt misuse of the JWT as an ID or<br>
&gt; &gt;=C2=A0 =C2=A0access token (see Section 8.1).<br>
&gt; &gt; <br>
&gt; &gt; But I don&#39;t think the predicate is correct -- misuse is still=
 possible<br>
&gt; &gt; by services that do not check the &quot;active&quot; claim&#39;s =
value.=C2=A0 Shouldn&#39;t the<br>
&gt; &gt; &quot;iss&quot;+&quot;aud&quot; requirements be unconditional?<br=
>
&gt; <br>
&gt; Introspection responses for inactive tokens won?t contain any data exc=
ept ?active?:false. I don?t see how they could be misused and therefore thi=
nk the text is ok.<br>
<br>
Could you give me a pointer where in the text it says that if &quot;active&=
quot; is<br>
false, no other claims are present?=C2=A0 (&quot;active&quot; only appears =
three times,<br>
but none of them seem to say this.)<br>
<br>
-Ben<br>
<br>
&gt; Please let me know whether you agree with my statements. I would then =
quickly publish a new revision (including changes to address your comments)=
.<br>
&gt; <br>
&gt; best regards,<br>
&gt; Torsten. <br>
&gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; -----------------------------------------------------------------=
-----<br>
&gt; &gt; COMMENT:<br>
&gt; &gt; -----------------------------------------------------------------=
-----<br>
&gt; &gt; <br>
&gt; &gt; [New comments on the added text in the diff from -07 to -08.]<br>
&gt; &gt; <br>
&gt; &gt; Section 3<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0To support encrypted token introspection response JWT=
s, the<br>
&gt; &gt;=C2=A0 =C2=A0authorization server MUST also be provided with the r=
espective<br>
&gt; &gt;=C2=A0 =C2=A0resource server encryption keys and algorithms.<br>
&gt; &gt; <br>
&gt; &gt; IIRC, based on some list discussion this text was going to be twe=
aked to<br>
&gt; &gt; avoid implying that JWE is mandatory.=C2=A0 (Unfortunately, this =
is the<br>
&gt; &gt; thread that evolved into &quot;client certs and TLS Terminating R=
everse<br>
&gt; &gt; Proxies&quot;, so it&#39;s hard to be sure whether I saw any othe=
r followups.)<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0The AS MUST restrict the use of client credentials by=
 a RS to the<br>
&gt; &gt;=C2=A0 =C2=A0calls it requires, e.g. the AS MAY restrict such a cl=
ient to call the<br>
&gt; &gt;=C2=A0 =C2=A0token introspection endpoint only.=C2=A0 How the AS i=
mplements this<br>
&gt; &gt;=C2=A0 =C2=A0restriction is beyond the scope of this specification=
.<br>
&gt; &gt; <br>
&gt; &gt; This should probably be clarified a bit more, in the context of &=
quot;client<br>
&gt; &gt; credentials tend to be used by privileged, fixed endpoints, and t=
he<br>
&gt; &gt; default may just be to allow them all access to all endpoints&quo=
t;.=C2=A0 Right<br>
&gt; &gt; now it&#39;s not clear what&#39;s being restricted (and who &quot=
;it&quot; is that<br>
&gt; &gt; requires calls)<br>
&gt; &gt; <br>
&gt; &gt; Section 5<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0This specification registers the &quot;application/to=
ken-<br>
&gt; &gt;=C2=A0 =C2=A0introspection+jwt&quot; media type, which is used as =
value of the &quot;typ&quot;<br>
&gt; &gt;=C2=A0 =C2=A0header parameter of the JWT to indicate that the payl=
oad is a token<br>
&gt; &gt;=C2=A0 =C2=A0introspection response.<br>
&gt; &gt; <br>
&gt; &gt; Do we also want to note that checking &#39;jti&#39; is not mandat=
ory and so this<br>
&gt; &gt; does not necessarily provide full protection?=C2=A0 (I guess Sect=
ion 8.1<br>
&gt; &gt; covers this in more detail.)<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0The value of the &quot;aud&quot; claims MUST identify=
 the resource server<br>
&gt; &gt;=C2=A0 =C2=A0receiving the token introspection response.<br>
&gt; &gt; <br>
&gt; &gt; We may want to dig into this a bit more: should there be any<br>
&gt; &gt; relationship between this &quot;aud&quot; value and the &quot;cli=
ent_id&quot; that an RS<br>
&gt; &gt; might be using (as obtained from dynamic registration)?<br>
&gt; &gt; Does this value need to be different from the audience that is us=
ed in<br>
&gt; &gt; access tokens for which this RS is the audience?=C2=A0 (Should it=
 be the<br>
&gt; &gt; same?)=C2=A0 My instincts lean towards &quot;different&quot; but =
I would like broader<br>
&gt; &gt; input.<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0exp=C2=A0 =C2=A0 =C2=A0The &quot;exp&quot; claim indi=
cates when the access token passed in the<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0introspection request wil=
l expire.<br>
&gt; &gt; <br>
&gt; &gt; On the face of it this seems divergent from RFC 7519&#39;s &quot;=
the expiration<br>
&gt; &gt; time on or after which the JWT MUST NOT be accepted for processin=
g&quot;,<br>
&gt; &gt; though upon further examination the distinction is not quite so l=
arge.<br>
&gt; &gt; That is, it&#39;s in effect saying that the introspection respons=
e should<br>
&gt; &gt; not be accepted for processing after the base token has expired, =
which<br>
&gt; &gt; usually makes sense.=C2=A0 There is a bit of a complication, thou=
gh, in that<br>
&gt; &gt; the &quot;active&quot; claim implies that we might still have RSe=
s that plan to<br>
&gt; &gt; use the introspection response after the &quot;exp&quot; date has=
 passed, which<br>
&gt; &gt; sounds a lot like a DISCUSS-level internal inconsistency.<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0If possible, the AS MUST narrow down the &quot;scope&=
quot; value to the scopes<br>
&gt; &gt;=C2=A0 =C2=A0relevant to the particular RS.<br>
&gt; &gt; <br>
&gt; &gt; This sounds kind of like a &quot;SHOULD&quot;...<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0The example response header contains the following JS=
ON document:<br>
&gt; &gt; <br>
&gt; &gt; I think this is the JOSE header in the HTTP response (body), not =
the<br>
&gt; &gt; (HTTP) response header.<br>
&gt; &gt; <br>
&gt; &gt; Section 8.1<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0As an alternative approach, such an attack can be pre=
vented like any<br>
&gt; &gt;=C2=A0 =C2=A0other token substitution attack by restricting the au=
dience of the<br>
&gt; &gt; <br>
&gt; &gt; I&#39;d suggest avoiding describing these as &quot;alternatives&q=
uot;; they seem more<br>
&gt; &gt; like complementary approaches as part of a defense-in-depth solut=
ion<br>
&gt; &gt; (especially since we are basically mandating both of them).<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0&quot;aud&quot; value set to the resource server&#39;=
s identifier.=C2=A0 Any recipient<br>
&gt; &gt;=C2=A0 =C2=A0of an JWT MUST check these values in order to detect =
substitution<br>
&gt; &gt;=C2=A0 =C2=A0attacks.<br>
&gt; &gt; <br>
&gt; &gt; This &quot;MUST&quot; might be out of place -- this is a requirem=
ent from RFC<br>
&gt; &gt; 7519, and not an attempt by this document to make new requirement=
s on<br>
&gt; &gt; the behavior of all JWT consumers (if it was, that would be a DIS=
CUSS<br>
&gt; &gt; point!).<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0Resource servers MUST additionally apply the counterm=
easures against<br>
&gt; &gt;=C2=A0 =C2=A0replay as described in [I-D.ietf-oauth-security-topic=
s], section 3.2.<br>
&gt; &gt; <br>
&gt; &gt; In a similar vein, which set of resources servers is this normati=
ve<br>
&gt; &gt; &quot;MUST&quot; intended to be binding upon?<br>
&gt; &gt; <br>
&gt; &gt; Section 9<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0In any case, the AS MUST ensure that the scope of the=
 legal basis is<br>
&gt; &gt;=C2=A0 =C2=A0enforced throughout the whole process.=C2=A0 The AS M=
UST retain the scope<br>
&gt; &gt;=C2=A0 =C2=A0of the legal basis with the access token, e.g. in the=
 scope value,<br>
&gt; &gt;=C2=A0 =C2=A0and the AS MUST determine the data a resource server =
is allowed to<br>
&gt; &gt;=C2=A0 =C2=A0receive based on the resource server&#39;s identity a=
nd suitable token<br>
&gt; &gt;=C2=A0 =C2=A0data, e.g. the scope value.<br>
&gt; &gt; <br>
&gt; &gt; I suspect I&#39;m just being dense, but could you walk me through=
 how the<br>
&gt; &gt; access token &quot;scope&quot; value can encode the legal basis f=
or data transfer?<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; <br>
<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Sun, 1 Mar 2020 20:38:45 -0700<br>
From: David Waite &lt;<a href=3D"mailto:david@alkaline-solutions.com" targe=
t=3D"_blank" rel=3D"noreferrer">david@alkaline-solutions.com</a>&gt;<br>
To: Andrii Deinega &lt;<a href=3D"mailto:andrii.deinega@gmail.com" target=
=3D"_blank" rel=3D"noreferrer">andrii.deinega@gmail.com</a>&gt;<br>
Cc: Bill Jung &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.o=
rg" target=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org<=
/a>&gt;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth@ietf.org" target=3D"_bl=
ank" rel=3D"noreferrer">oauth@ietf.org</a><br>
Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Refresh token?<br>
Message-ID:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;<a href=3D"mailto:C0C40A3E-2455-4C86-B504-A=
B18F31975D9@alkaline-solutions.com" target=3D"_blank" rel=3D"noreferrer">C0=
C40A3E-2455-4C86-B504-AB18F31975D9@alkaline-solutions.com</a>&gt;<br>
Content-Type: text/plain;=C2=A0 =C2=A0 =C2=A0 =C2=A0charset=3Dus-ascii<br>
<br>
I would expect the AS to invalidate the refresh token in this case, which w=
ould not require a refresh token mode nor necessarily any signaling back to=
 the resource.<br>
<br>
-DW<br>
<br>
&gt; On Mar 1, 2020, at 12:12 AM, Andrii Deinega &lt;<a href=3D"mailto:andr=
ii.deinega@gmail.com" target=3D"_blank" rel=3D"noreferrer">andrii.deinega@g=
mail.com</a>&gt; wrote:<br>
&gt; <br>
&gt; Hello Bill,<br>
&gt; <br>
&gt; I&#39;m just thinking out loud about possible scenarios for a protecte=
d<br>
&gt; resource here... It may decide to revoke a refresh token if a client<b=
r>
&gt; application tried to use it instead of an access token when the<br>
&gt; protected resource is paranoid about security. In order to do that an<=
br>
&gt; introspection response should include a non-standard parameter which<b=
r>
&gt; indicates that the requested token is refresh_token.<br>
&gt; <br>
&gt; A user of the introspection endpoint should rely only on a value of<br=
>
&gt; the active parameter (which is a boolean indicator) of the endpoint<br=
>
&gt; response. This applies to both types of tokens. Note, the expiration<b=
r>
&gt; date, as well as other parameters, are defined as optional in the<br>
&gt; specification. Both token types can be revoked before the expiration<b=
r>
&gt; date comes even if this parameter is presented as part of the<br>
&gt; response. In my opinion, there are a number of reasons why this check<=
br>
&gt; (for a refresh token) can be useful on the client application side.<br=
>
&gt; <br>
&gt; --<br>
&gt; Regards,<br>
&gt; Andrii<br>
&gt; <br>
&gt; <br>
&gt; On Fri, Feb 28, 2020 at 1:59 AM Bill Jung<br>
&gt; &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.org" targe=
t=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org</a>&gt; w=
rote:<br>
&gt;&gt; <br>
&gt;&gt; Hello, hopefully I am using the right email address.<br>
&gt;&gt; <br>
&gt;&gt; Simply put, can this spec be enhanced to clarify &quot;Who can use=
 the introspection endpoint for a refresh token? A resource provider or a c=
lient app or both?&quot;<br>
&gt;&gt; <br>
&gt;&gt; RFC7662 clearly mentions that the user of introspection endpoint i=
s a &#39;protected resource&#39; and that makes sense for an access token. =
If we allow this to client apps, it&#39;ll give unnecessary token informati=
on to them.<br>
&gt;&gt; However, the spec also mentions that refresh tokens can also be us=
ed against the endpoint.<br>
&gt;&gt; In case of refresh tokens, user of the endpoint should be a client=
 app because refresh tokens are used by clients to get another access token=
. (Cannot imagine how/why a resource server would introspect a refresh toke=
n)<br>
&gt;&gt; <br>
&gt;&gt; Is it correct to assume that the endpoint should be allowed to cli=
ent apps if they want to examine refresh token&#39;s expiry time? Then the =
RFC should clearly mention it.<br>
&gt;&gt; <br>
&gt;&gt; Thanks in advance.<br>
&gt;&gt; <br>
&gt;&gt; &lt;Details from the spec&gt;<br>
&gt;&gt; In <a href=3D"https://tools.ietf.org/html/rfc7662" rel=3D"noreferr=
er noreferrer" target=3D"_blank">https://tools.ietf.org/html/rfc7662</a><br=
>
&gt;&gt; In &#39;1.=C2=A0 Introduction&#39; section says,<br>
&gt;&gt; &quot;This specification defines a protocol that allows authorized=
<br>
&gt;&gt; protected resources to query the authorization server to determine=
<br>
&gt;&gt; the set of metadata for a given token that was presented to them b=
y<br>
&gt;&gt; an OAuth 2.0 client.&quot;<br>
&gt;&gt; Above makes clear that user of the endpoint is a &quot;protected r=
esource&quot;.<br>
&gt;&gt; <br>
&gt;&gt; And under &#39;token&#39; in &#39;2.1.=C2=A0 Introspection Request=
&#39; section says,<br>
&gt;&gt; &quot;For refresh tokens,<br>
&gt;&gt; this is the &quot;refresh_token&quot; value returned from the toke=
n endpoint<br>
&gt;&gt; as defined in OAuth 2.0 [RFC6749], Section 5.1.&quot;<br>
&gt;&gt; So looks like a refresh token is allowed for this endpoint.<br>
&gt;&gt; <br>
&gt;&gt; <br>
&gt;&gt; Bill Jung<br>
&gt;&gt; Manager, Response Engineering<br>
&gt;&gt; <a href=3D"mailto:bjung@pingidentity.com" target=3D"_blank" rel=3D=
"noreferrer">bjung@pingidentity.com</a><br>
&gt;&gt; w: +1 604.697.7037<br>
&gt;&gt; Connect with us:<br>
&gt;&gt; <br>
&gt;&gt; CONFIDENTIALITY NOTICE: This email may contain confidential and pr=
ivileged material for the sole use of the intended recipient(s). Any review=
, use, distribution or disclosure by others is strictly prohibited..=C2=A0 =
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._______________________________________________<br=
>
&gt;&gt; OAuth mailing list<br>
&gt;&gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"norefer=
rer">OAuth@ietf.org</a><br>
&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D"nor=
eferrer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo=
/oauth</a><br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; OAuth mailing list<br>
&gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"noreferrer"=
>OAuth@ietf.org</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D"norefer=
rer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/oau=
th</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Sun, 1 Mar 2020 21:11:40 -0800<br>
From: Andrii Deinega &lt;<a href=3D"mailto:andrii.deinega@gmail.com" target=
=3D"_blank" rel=3D"noreferrer">andrii.deinega@gmail.com</a>&gt;<br>
To: David Waite &lt;<a href=3D"mailto:david@alkaline-solutions.com" target=
=3D"_blank" rel=3D"noreferrer">david@alkaline-solutions.com</a>&gt;<br>
Cc: Bill Jung &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.o=
rg" target=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org<=
/a>&gt;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth@ietf.org" target=3D"_bl=
ank" rel=3D"noreferrer">oauth@ietf.org</a><br>
Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Refresh token?<br>
Message-ID:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;CALkShct=3DsYSq-HoG=3DyMiV2BqT8+F=3D<a href=
=3D"mailto:gnej%2Bp2GgFD87FV1OQu3w@mail.gmail.com" target=3D"_blank" rel=3D=
"noreferrer">gnej+p2GgFD87FV1OQu3w@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=3D&quot;UTF-8&quot;<br>
<br>
How would the authorization server know who actually uses the<br>
introspection endpoint assuming that a protected resource and a client<br>
application use the same credentials (client_id and client_secret)?<br>
<br>
Regards,<br>
Andrii<br>
<br>
On Sun, Mar 1, 2020 at 7:38 PM David Waite &lt;<a href=3D"mailto:david@alka=
line-solutions.com" target=3D"_blank" rel=3D"noreferrer">david@alkaline-sol=
utions.com</a>&gt; wrote:<br>
&gt;<br>
&gt; I would expect the AS to invalidate the refresh token in this case, wh=
ich would not require a refresh token mode nor necessarily any signaling ba=
ck to the resource.<br>
&gt;<br>
&gt; -DW<br>
&gt;<br>
&gt; &gt; On Mar 1, 2020, at 12:12 AM, Andrii Deinega &lt;<a href=3D"mailto=
:andrii.deinega@gmail.com" target=3D"_blank" rel=3D"noreferrer">andrii.dein=
ega@gmail.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Hello Bill,<br>
&gt; &gt;<br>
&gt; &gt; I&#39;m just thinking out loud about possible scenarios for a pro=
tected<br>
&gt; &gt; resource here... It may decide to revoke a refresh token if a cli=
ent<br>
&gt; &gt; application tried to use it instead of an access token when the<b=
r>
&gt; &gt; protected resource is paranoid about security. In order to do tha=
t an<br>
&gt; &gt; introspection response should include a non-standard parameter wh=
ich<br>
&gt; &gt; indicates that the requested token is refresh_token.<br>
&gt; &gt;<br>
&gt; &gt; A user of the introspection endpoint should rely only on a value =
of<br>
&gt; &gt; the active parameter (which is a boolean indicator) of the endpoi=
nt<br>
&gt; &gt; response. This applies to both types of tokens. Note, the expirat=
ion<br>
&gt; &gt; date, as well as other parameters, are defined as optional in the=
<br>
&gt; &gt; specification. Both token types can be revoked before the expirat=
ion<br>
&gt; &gt; date comes even if this parameter is presented as part of the<br>
&gt; &gt; response. In my opinion, there are a number of reasons why this c=
heck<br>
&gt; &gt; (for a refresh token) can be useful on the client application sid=
e.<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Regards,<br>
&gt; &gt; Andrii<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Fri, Feb 28, 2020 at 1:59 AM Bill Jung<br>
&gt; &gt; &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.org" =
target=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org</a>&=
gt; wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Hello, hopefully I am using the right email address.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Simply put, can this spec be enhanced to clarify &quot;Who ca=
n use the introspection endpoint for a refresh token? A resource provider o=
r a client app or both?&quot;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; RFC7662 clearly mentions that the user of introspection endpo=
int is a &#39;protected resource&#39; and that makes sense for an access to=
ken. If we allow this to client apps, it&#39;ll give unnecessary token info=
rmation to them.<br>
&gt; &gt;&gt; However, the spec also mentions that refresh tokens can also =
be used against the endpoint.<br>
&gt; &gt;&gt; In case of refresh tokens, user of the endpoint should be a c=
lient app because refresh tokens are used by clients to get another access =
token. (Cannot imagine how/why a resource server would introspect a refresh=
 token)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Is it correct to assume that the endpoint should be allowed t=
o client apps if they want to examine refresh token&#39;s expiry time? Then=
 the RFC should clearly mention it.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Thanks in advance.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; &lt;Details from the spec&gt;<br>
&gt; &gt;&gt; In <a href=3D"https://tools.ietf.org/html/rfc7662" rel=3D"nor=
eferrer noreferrer" target=3D"_blank">https://tools.ietf.org/html/rfc7662</=
a><br>
&gt; &gt;&gt; In &#39;1.=C2=A0 Introduction&#39; section says,<br>
&gt; &gt;&gt; &quot;This specification defines a protocol that allows autho=
rized<br>
&gt; &gt;&gt; protected resources to query the authorization server to dete=
rmine<br>
&gt; &gt;&gt; the set of metadata for a given token that was presented to t=
hem by<br>
&gt; &gt;&gt; an OAuth 2.0 client.&quot;<br>
&gt; &gt;&gt; Above makes clear that user of the endpoint is a &quot;protec=
ted resource&quot;.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; And under &#39;token&#39; in &#39;2.1.=C2=A0 Introspection Re=
quest&#39; section says,<br>
&gt; &gt;&gt; &quot;For refresh tokens,<br>
&gt; &gt;&gt; this is the &quot;refresh_token&quot; value returned from the=
 token endpoint<br>
&gt; &gt;&gt; as defined in OAuth 2.0 [RFC6749], Section 5.1.&quot;<br>
&gt; &gt;&gt; So looks like a refresh token is allowed for this endpoint.<b=
r>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Bill Jung<br>
&gt; &gt;&gt; Manager, Response Engineering<br>
&gt; &gt;&gt; <a href=3D"mailto:bjung@pingidentity.com" target=3D"_blank" r=
el=3D"noreferrer">bjung@pingidentity.com</a><br>
&gt; &gt;&gt; w: +1 604.697.7037<br>
&gt; &gt;&gt; Connect with us:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; CONFIDENTIALITY NOTICE: This email may contain confidential a=
nd privileged material for the sole use of the intended recipient(s). Any r=
eview, use, distribution or disclosure by others is strictly prohibited..=
=C2=A0 If you have received this communication in error, please notify the =
sender immediately by e-mail and delete the message and any file attachment=
s from your computer. Thank you.___________________________________________=
____<br>
&gt; &gt;&gt; OAuth mailing list<br>
&gt; &gt;&gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"no=
referrer">OAuth@ietf.org</a><br>
&gt; &gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=
=3D"noreferrer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/l=
istinfo/oauth</a><br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; OAuth mailing list<br>
&gt; &gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"norefe=
rrer">OAuth@ietf.org</a><br>
&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D"no=
referrer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinf=
o/oauth</a><br>
&gt;<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Sun, 1 Mar 2020 22:33:22 -0700<br>
From: David Waite &lt;<a href=3D"mailto:david@alkaline-solutions.com" targe=
t=3D"_blank" rel=3D"noreferrer">david@alkaline-solutions.com</a>&gt;<br>
To: Andrii Deinega &lt;<a href=3D"mailto:andrii.deinega@gmail.com" target=
=3D"_blank" rel=3D"noreferrer">andrii.deinega@gmail.com</a>&gt;<br>
Cc: Bill Jung &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.o=
rg" target=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org<=
/a>&gt;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"mailto:oauth@ietf.org" target=3D"_bl=
ank" rel=3D"noreferrer">oauth@ietf.org</a><br>
Subject: Re: [OAUTH-WG] OAuth 2.0 Token Introspection in RFC7662 :<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Refresh token?<br>
Message-ID:<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;<a href=3D"mailto:D3D1BFB8-CE54-4E48-A8B9-4=
5E01ED2B637@alkaline-solutions.com" target=3D"_blank" rel=3D"noreferrer">D3=
D1BFB8-CE54-4E48-A8B9-45E01ED2B637@alkaline-solutions.com</a>&gt;<br>
Content-Type: text/plain;=C2=A0 =C2=A0 =C2=A0 =C2=A0charset=3Dus-ascii<br>
<br>
On Mar 1, 2020, at 10:11 PM, Andrii Deinega &lt;<a href=3D"mailto:andrii.de=
inega@gmail.com" target=3D"_blank" rel=3D"noreferrer">andrii.deinega@gmail.=
com</a>&gt; wrote:<br>
&gt; <br>
&gt; How would the authorization server know who actually uses the<br>
&gt; introspection endpoint assuming that a protected resource and a client=
<br>
&gt; application use the same credentials (client_id and client_secret)?<br=
>
<br>
In the external context, you have a client accessing a protected resource w=
ith an access token. The client should treat the token as opaque, and RFC76=
62 makes no allowances for that client to introspect its tokens.<br>
<br>
If you control both the client and protected resource, you may decide to sh=
ort-cut and have them share credentials. However, the client logic still sh=
ould never be introspecting the tokens.<br>
<br>
The security considerations also say that you must prove the authentication=
 of the protected resource, which I have interpreted to mean that access to=
kens used to authorize the call to the introspection endpoint must be issue=
d to a confidential client - public clients cannot protect credentials to p=
erform an authentication. You want to limit introspection to prevent denial=
 of service and probing attacks, and to limit the amount of information on =
viable attacks conveyed if someone steals a token.<br>
<br>
-DW<br>
<br>
&gt; <br>
&gt; Regards,<br>
&gt; Andrii<br>
&gt; <br>
&gt; On Sun, Mar 1, 2020 at 7:38 PM David Waite &lt;<a href=3D"mailto:david=
@alkaline-solutions.com" target=3D"_blank" rel=3D"noreferrer">david@alkalin=
e-solutions.com</a>&gt; wrote:<br>
&gt;&gt; <br>
&gt;&gt; I would expect the AS to invalidate the refresh token in this case=
, which would not require a refresh token mode nor necessarily any signalin=
g back to the resource.<br>
&gt;&gt; <br>
&gt;&gt; -DW<br>
&gt;&gt; <br>
&gt;&gt;&gt; On Mar 1, 2020, at 12:12 AM, Andrii Deinega &lt;<a href=3D"mai=
lto:andrii.deinega@gmail.com" target=3D"_blank" rel=3D"noreferrer">andrii.d=
einega@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Hello Bill,<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I&#39;m just thinking out loud about possible scenarios for a =
protected<br>
&gt;&gt;&gt; resource here... It may decide to revoke a refresh token if a =
client<br>
&gt;&gt;&gt; application tried to use it instead of an access token when th=
e<br>
&gt;&gt;&gt; protected resource is paranoid about security. In order to do =
that an<br>
&gt;&gt;&gt; introspection response should include a non-standard parameter=
 which<br>
&gt;&gt;&gt; indicates that the requested token is refresh_token.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; A user of the introspection endpoint should rely only on a val=
ue of<br>
&gt;&gt;&gt; the active parameter (which is a boolean indicator) of the end=
point<br>
&gt;&gt;&gt; response. This applies to both types of tokens. Note, the expi=
ration<br>
&gt;&gt;&gt; date, as well as other parameters, are defined as optional in =
the<br>
&gt;&gt;&gt; specification. Both token types can be revoked before the expi=
ration<br>
&gt;&gt;&gt; date comes even if this parameter is presented as part of the<=
br>
&gt;&gt;&gt; response. In my opinion, there are a number of reasons why thi=
s check<br>
&gt;&gt;&gt; (for a refresh token) can be useful on the client application =
side.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt; Andrii<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; On Fri, Feb 28, 2020 at 1:59 AM Bill Jung<br>
&gt;&gt;&gt; &lt;bjung=3D<a href=3D"mailto:40pingidentity.com@dmarc.ietf.or=
g" target=3D"_blank" rel=3D"noreferrer">40pingidentity.com@dmarc.ietf.org</=
a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; Hello, hopefully I am using the right email address.<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; Simply put, can this spec be enhanced to clarify &quot;Who=
 can use the introspection endpoint for a refresh token? A resource provide=
r or a client app or both?&quot;<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; RFC7662 clearly mentions that the user of introspection en=
dpoint is a &#39;protected resource&#39; and that makes sense for an access=
 token. If we allow this to client apps, it&#39;ll give unnecessary token i=
nformation to them.<br>
&gt;&gt;&gt;&gt; However, the spec also mentions that refresh tokens can al=
so be used against the endpoint.<br>
&gt;&gt;&gt;&gt; In case of refresh tokens, user of the endpoint should be =
a client app because refresh tokens are used by clients to get another acce=
ss token. (Cannot imagine how/why a resource server would introspect a refr=
esh token)<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; Is it correct to assume that the endpoint should be allowe=
d to client apps if they want to examine refresh token&#39;s expiry time? T=
hen the RFC should clearly mention it.<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; Thanks in advance.<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; &lt;Details from the spec&gt;<br>
&gt;&gt;&gt;&gt; In <a href=3D"https://tools.ietf.org/html/rfc7662" rel=3D"=
noreferrer noreferrer" target=3D"_blank">https://tools.ietf.org/html/rfc766=
2</a><br>
&gt;&gt;&gt;&gt; In &#39;1.=C2=A0 Introduction&#39; section says,<br>
&gt;&gt;&gt;&gt; &quot;This specification defines a protocol that allows au=
thorized<br>
&gt;&gt;&gt;&gt; protected resources to query the authorization server to d=
etermine<br>
&gt;&gt;&gt;&gt; the set of metadata for a given token that was presented t=
o them by<br>
&gt;&gt;&gt;&gt; an OAuth 2.0 client.&quot;<br>
&gt;&gt;&gt;&gt; Above makes clear that user of the endpoint is a &quot;pro=
tected resource&quot;.<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; And under &#39;token&#39; in &#39;2.1.=C2=A0 Introspection=
 Request&#39; section says,<br>
&gt;&gt;&gt;&gt; &quot;For refresh tokens,<br>
&gt;&gt;&gt;&gt; this is the &quot;refresh_token&quot; value returned from =
the token endpoint<br>
&gt;&gt;&gt;&gt; as defined in OAuth 2.0 [RFC6749], Section 5.1.&quot;<br>
&gt;&gt;&gt;&gt; So looks like a refresh token is allowed for this endpoint=
.<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; Bill Jung<br>
&gt;&gt;&gt;&gt; Manager, Response Engineering<br>
&gt;&gt;&gt;&gt; <a href=3D"mailto:bjung@pingidentity.com" target=3D"_blank=
" rel=3D"noreferrer">bjung@pingidentity.com</a><br>
&gt;&gt;&gt;&gt; w: +1 604.697.7037<br>
&gt;&gt;&gt;&gt; Connect with us:<br>
&gt;&gt;&gt;&gt; <br>
&gt;&gt;&gt;&gt; CONFIDENTIALITY NOTICE: This email may contain confidentia=
l and privileged material for the sole use of the intended recipient(s). An=
y review, use, distribution or disclosure by others is strictly prohibited.=
.=C2=A0 If you have received this communication in error, please notify the=
 sender immediately by e-mail and delete the message and any file attachmen=
ts from your computer. Thank you.__________________________________________=
_____<br>
&gt;&gt;&gt;&gt; OAuth mailing list<br>
&gt;&gt;&gt;&gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D=
"noreferrer">OAuth@ietf.org</a><br>
&gt;&gt;&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" re=
l=3D"noreferrer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/=
listinfo/oauth</a><br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; OAuth mailing list<br>
&gt;&gt;&gt; <a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"nor=
eferrer">OAuth@ietf.org</a><br>
&gt;&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D=
"noreferrer noreferrer" target=3D"_blank">https://www.ietf.org/mailman/list=
info/oauth</a><br>
&gt;&gt; <br>
<br>
<br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
OAuth mailing list<br>
<a href=3D"mailto:OAuth@ietf.org" target=3D"_blank" rel=3D"noreferrer">OAut=
h@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/oauth" rel=3D"noreferrer n=
oreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/oauth</a=
><br>
<br>
<br>
------------------------------<br>
<br>
End of OAuth Digest, Vol 137, Issue 4<br>
*************************************<br>
</blockquote></div>

--000000000000f11a6305a0a92197--

