Skip to main content

JSON Web Token Best Current Practices
RFC 8725

Revision differences

Document history

Date Rev. By Action
2020-02-19
07 (System)
Received changes through RFC Editor sync (created alias RFC 8725, changed abstract to 'JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security …
Received changes through RFC Editor sync (created alias RFC 8725, changed abstract to 'JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted.  JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas.  This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.', changed pages to 13, changed standardization level to Best Current Practice, changed state to RFC, added RFC published event at 2020-02-19, changed IESG state to RFC Published, created updates relation between draft-ietf-oauth-jwt-bcp and RFC 7519, created alias BCP 225)
2020-02-19
07 (System) RFC published
2020-02-12
07 (System) RFC Editor state changed to <a href="http://www.rfc-editor.org/auth48/rfc8725">AUTH48-DONE</a> from AUTH48
2020-02-10
07 (System) RFC Editor state changed to <a href="http://www.rfc-editor.org/auth48/rfc8725">AUTH48</a> from RFC-EDITOR
2020-01-03
07 (System) RFC Editor state changed to RFC-EDITOR from EDIT
2019-10-22
07 (System) IANA Action state changed to No IANA Actions from In Progress
2019-10-21
07 (System) IANA Action state changed to In Progress
2019-10-21
07 (System) RFC Editor state changed to EDIT
2019-10-21
07 (System) IESG state changed to RFC Ed Queue from Approved-announcement sent
2019-10-21
07 (System) Announcement was received by RFC Editor
2019-10-21
07 Amy Vezza IESG state changed to Approved-announcement sent from Approved-announcement to be sent
2019-10-21
07 Amy Vezza IESG has approved the document
2019-10-21
07 Amy Vezza Closed "Approve" ballot
2019-10-21
07 Amy Vezza Ballot approval text was generated
2019-10-20
07 Roman Danyliw IESG state changed to Approved-announcement to be sent from IESG Evaluation::AD Followup
2019-10-18
07 Benjamin Kaduk [Ballot comment]
Thank you for addressing my Discuss (and Comment) points!
2019-10-18
07 Benjamin Kaduk [Ballot Position Update] Position for Benjamin Kaduk has been changed to Yes from Discuss
2019-10-13
07 (System) Sub state has been changed to AD Followup from Revised ID Needed
2019-10-13
07 (System) IANA Review state changed to Version Changed - Review Needed from IANA OK - No Actions Needed
2019-10-13
07 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-07.txt
2019-10-13
07 (System) New version accepted (logged-in submitter: Yaron Sheffer)
2019-10-13
07 Yaron Sheffer Uploaded new revision
2019-08-26
06 Gunter Van de Velde Assignment of request for Last Call review by OPSDIR to Ron Bonica was marked no-response
2019-07-22
06 Roman Danyliw
This document contains a normative reference to RFC8017, which is an informational document.  However, the last call text did not make note of this …
This document contains a normative reference to RFC8017, which is an informational document.  However, the last call text did not make note of this reference and this reference is not in the downref registry.

Per the process described in Section 2 of RFC8067, the IESG concurred on the 6/27/2019 telechat that since RFC8017's predecessor, RFC3447, is in the downref registry, conducting another IETF Last Call was not required.
2019-06-27
06 Adam Roach [Ballot Position Update] Position for Adam Roach has been changed to No Objection from Discuss
2019-06-27
06 Cindy Morgan IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation
2019-06-27
06 Éric Vyncke
[Ballot comment]
Thank you all for the work put into this document. I have only one NIT

== NITS ==

-- Section 1.1 --

s/The …
[Ballot comment]
Thank you all for the work put into this document. I have only one NIT

== NITS ==

-- Section 1.1 --

s/The targets of this document are/The intended audience of this document are/
2019-06-27
06 Éric Vyncke [Ballot Position Update] New position, No Objection, has been recorded for Éric Vyncke
2019-06-27
06 Warren Kumari [Ballot Position Update] New position, No Objection, has been recorded for Warren Kumari
2019-06-26
06 Magnus Westerlund [Ballot Position Update] New position, No Objection, has been recorded for Magnus Westerlund
2019-06-26
06 Martin Vigoureux [Ballot comment]
Hello, thank you for this document.

I wonder whether [nist-sp-800-56a-r3] should be a normative reference.

Thanks
-m
2019-06-26
06 Martin Vigoureux [Ballot Position Update] New position, No Objection, has been recorded for Martin Vigoureux
2019-06-25
06 Mirja Kühlewind
[Ballot comment]
I'm by far no expert here but I don't really understand all attacks described. Maybe it's just me, however, especially 2.7 and 2.8 …
[Ballot comment]
I'm by far no expert here but I don't really understand all attacks described. Maybe it's just me, however, especially 2.7 and 2.8 seem quite high level to me and I'm wondering if it is possible to be more concrete or provide an example or something. Anyway, the more important part is section 3, so no need to worry too much about this.

I'm wondering if it would make sense for this document to update RFC7519. I know there is no direct change but it complements RFC7519 and using the update mechanism makes I easy/easier for readers of RFC7519 two find this doc.
2019-06-25
06 Mirja Kühlewind [Ballot Position Update] New position, No Objection, has been recorded for Mirja Kühlewind
2019-06-25
06 Deborah Brungard [Ballot Position Update] New position, No Objection, has been recorded for Deborah Brungard
2019-06-25
06 Alvaro Retana [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana
2019-06-24
06 Adam Roach
[Ballot discuss]
Thanks for everyone who worked to get this document out the door. I found it to
be well-organized and easy to read.

--------------------------------------------------------------------------- …
[Ballot discuss]
Thanks for everyone who worked to get this document out the door. I found it to
be well-organized and easy to read.

---------------------------------------------------------------------------

This is a process discuss for Roman to handle, and I plan to clear it
during the IESG formal telechat.

This document is intended for BCP status. It has a normative reference to RFC
8017
, which is an informational document. Checking the last call text
(https://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-bcp/edit/lastcalltext/),
there is no mention of RFC 8017, nor does RFC 8017 appear in the downref
registry (https://datatracker.ietf.org/doc/downref/).

Thanks to RFC 8067, we are not required to run this document through IETF LC
again (and, given that RFC 8017's predecessor, RFC 3447, is in the registry,
we probably don't want to). However, we'll need to minute that the point was
raised and addressed. There is also at least one additional requirement
imposed by section 2 of RFC 8067 that needs to be satisfied (see the last
sentence in that section).
2019-06-24
06 Adam Roach
[Ballot comment]
§3.2:

>  That said, if a JWT is cryptographically protected by a transport
>  layer, such as TLS using cryptographically current algorithms, there …
[Ballot comment]
§3.2:

>  That said, if a JWT is cryptographically protected by a transport
>  layer, such as TLS using cryptographically current algorithms, there
>  may be no need to apply another layer of cryptographic protections to
>  the JWT.

It may be helpful to distinguish between end-to-end TLS encryption (such as that
seen in HTTPS, even in the presence of proxies) and hop-by-hop TLS encryption
(such as that seen in SIPS when proxies are present). In the latter case,
intermediaries may perform attacks that would otherwise only be possible to
mount by the endpoints.

My concrete suggestion is to modify the above text to read "...protected
end-to-end by a transport layer, such as..."

---------------------------------------------------------------------------

§3.2:

>  -  Avoid all RSA-PKCS1 v1.5 [RFC2313] encryption algorithms,
>    preferring RSA-OAEP ([RFC8017], Sec. 7.1).

It's not clear to me what this recommendation intends to say regarding the
algorithms in RFC 2437 and RFC 3447. One might infer that they're deprecated
as well. If this is the intention, please be explicit.
2019-06-24
06 Adam Roach [Ballot Position Update] New position, Discuss, has been recorded for Adam Roach
2019-06-24
06 Benjamin Kaduk
[Ballot discuss]
Thank you for assembling this document; it will be very valuable to the
community.  I intend to ballot Yes once the following items …
[Ballot discuss]
Thank you for assembling this document; it will be very valuable to the
community.  I intend to ballot Yes once the following items are
resolved:

Section 2.6 notes:
  Previous versions of the JSON format such as the obsoleted [RFC7159]
  allowed several different character encodings: UTF-8, UTF-16 and UTF-
  32.  This is not the case anymore, with the latest standard [RFC8259]
  only allowing UTF-8.  [...]

The actual situation is a bit more subtle than this text makes it seem;
interoperable JSON can only use non-UTF-8 with explicit mutual
prearrangement in a closed ecosystem.  So, while this statement is true
for Internet JWT usage, it may not be true for *all* JWT usage.
(I do see that in Section 3.7 of this document we do mandate UTF-8 for
JWT, which makes things unambiguous, even if this text here is not
correct.)

Section 3.2 notes:
  JWT libraries SHOULD NOT generate JWTs using "none" unless explicitly
  requested to do by the caller.

I couldn't find anywhere where we have matching guidance about "SHOULD
NOT consume JWTs using 'none' unless explicitly requested"; this seems
important enough to get called out explicitly.
2019-06-24
06 Benjamin Kaduk
[Ballot comment]
I also have some non-Discuss-level substantive comments in the section-by-section notes,
in addition to the usual editorial nits.

Section 1

  and/or encrypted.  …
[Ballot comment]
I also have some non-Discuss-level substantive comments in the section-by-section notes,
in addition to the usual editorial nits.

Section 1

  and/or encrypted.  The JWT specification has seen rapid adoption
  because it encapsulates security-relevant information in one, easy to
  protect location, and because it is easy to implement using widely-

nit: "one easy-to-protect location".

Section 2.2

I'd consider rewording the text here to make it more poignant; perhaps:

  In addition, some applications use a keyed MAC algorithm such as
  "HS256" to sign tokens, but supply a weak symmetric key with
  insufficient entropy (such as a human memorable password).  Such keys
  are vulnerable to offline brute-force or dictionary attacks once an
  attacker possesses such a token.

Section 2.4

I'd suggest noting that the compression attacks are particularly
powerful when there is attacker-controlled data in the same compression
space as secret data.

Section 3.2

  Therefore, applications MUST only allow the use of cryptographically
  current algorithms that meet the security requirements of the
  application.  This set will vary over time as new algorithms are
  introduced and existing algorithms are deprecated due to discovered
  cryptographic weaknesses.  Applications MUST therefore be designed to
  enable cryptographic agility.

This seems to have high overlap with BCP 201; a reference is probably in
order.

Section 3.4

  Some cryptographic operations, such as Elliptic Curve Diffie-Hellman
  key agreement ("ECDH-ES") take inputs that may contain invalid
  values, such as points not on the specified elliptic curve or other
  invalid points (see e.g.  [Valenta], Sec. 7.1).  Either the JWS/JWE
  library itself must validate these inputs before using them or it
  must use underlying cryptographic libraries that do so (or both!).

side note: A phrasing like "JWS/JWE libraries MUST ensure that such
input validation occurs" would leave the same wiggle room for the
validation to occur at the underlying crypto layer, while leaving it
crystal clear what entity is responsible for ensuring that the checks
occur".  But since I don't expect a change of this nature to actually
cause different behavior by implementors, I'm not very tied to it.

Section 3.8

When we say "[o]ther applications may use different means of binding
keys to issuers", is there any value in noting that certification by a
trusted authority is a common way to perform this binding (in some
contexts)?

Section 3.9

  If the same issuer can issue JWTs that are intended for use by more
  than one relying party or application, the JWT MUST contain an "aud"
  (audience) claim that can be used to determine whether the JWT is
  being used by an intended party or was substituted by an attacker at
  an unintended party.  Furthermore, the relying party or application
  MUST validate the audience value and if the audience value is not
  present or not associated with the recipient, it MUST reject the JWT.

(grammar nit?) Is the "Furthermore" sentence supposed to still be scoped
to the case where the issuer can issue JWTs for more than one audience?
If not, it seems like we're requiring the rejection of all "aud"-less
JWTs but not requiring "aud" to be present when generating them.

Section 3.10

                                                Applications should
  protect against such attacks, e.g., by matching the URL to a
  whitelist of allowed locations, and ensuring no cookies are sent in
  the GET request.

This could probably be a SHOULD (or even a MUST?).

Section 3.11

  When applying explicit typing to a Nested JWT, the "typ" header
  parameter containing the explicit type value MUST be present in the
  inner JWT of the Nested JWT (the JWT whose payload is the JWT Claims
  Set).  The same "typ" header parameter value MAY be present in the
  outer JWT as well, to explicitly type the entire Nested JWT.

This is an interesting recommendation, as it is in some sense
*introducing* type confusion by using the same type name for JWTs with
different structures (the inner and outer JWTs)!  My sense is that it is
not practical to change current usage, though, so I think this should be
treated as a side note and not an actionable recommendation.

Section 3.12

  -  Use different keys for different kinds of JWTs.  Then the keys
      used to validate one kind of JWT will fail to validate other kinds
      of JWTs.

It might be worth calling back an analogy to RFC 8037's security
considerations (where we advise to keep an association between key
material and key algorithm), in effect extending the scope of
"algorithm" to include application usage.

  Given the broad diversity of JWT usage and applications, the best
  combination of types, required claims, values, header parameters, key
  usages, and issuers to differentiate among different kinds of JWTs
  will, in general, be application specific.  For new JWT applications,
  the use of explicit typing is RECOMMENDED.

This last recommendation seems to duplicate one from the end of Section
3.11.  While it's important and worth reiterating, we do usually try to
avoiding using normative RFC 2119 language when repeating ourselves, to
make it very clear which requirement is the binding one.
2019-06-24
06 Benjamin Kaduk [Ballot Position Update] New position, Discuss, has been recorded for Benjamin Kaduk
2019-06-24
06 Alissa Cooper
[Ballot comment]
= Section 1 =

Many of the recommendations in this document
  will actually be about implementation and use of the cryptographic
  …
[Ballot comment]
= Section 1 =

Many of the recommendations in this document
  will actually be about implementation and use of the cryptographic
  mechanisms underlying JWTs that are defined by JSON Web Signature
  (JWS) [RFC7515], JSON Web Encryption (JWE) [RFC7516], and JSON Web
  Algorithms (JWA) [RFC7518].  Others will be about use of the JWT
  claims themselves.

s/will actually be/are/
s/will be/are/

= Section 3.12 =

Are all of the recommended strategies listed targeted at application developers specifically? It might be useful to note that if so.
2019-06-24
06 Alissa Cooper [Ballot Position Update] New position, Yes, has been recorded for Alissa Cooper
2019-06-24
06 Suresh Krishnan [Ballot Position Update] New position, No Objection, has been recorded for Suresh Krishnan
2019-06-24
06 Barry Leiba
[Ballot comment]
Nice work on this; thanks.

-- Section 1 --

  Readers are advised to seek out any errata or updates that apply to …
[Ballot comment]
Nice work on this; thanks.

-- Section 1 --

  Readers are advised to seek out any errata or updates that apply to this document.

Excellent.  I note that this is a really nice opportunity to include, here, a URI to a page in the working group wiki or github that you can now create and that will be used to post updates (that might not qualify as errata) before they're incorporated into published updates.

Other than that,  I just have some editorial comments:

-- Section 1.1 --

  -  Implementers of JWT libraries (and the JWS and JWE libraries used
      by them),

Nit: Does "them" refer to the implementers or the libraries?  Please re-phrase to clarify.

-- Section 2.4 --

Nit: "and thus, the ciphertext, depends" should be "and, thus, the ciphertext depend" (note moved comma and plural verb).

-- Section 2.6 --

Nit: "However older implementations" needs a comma: "However, older implementations"

-- Section 2.7 --
I find the paragraph to be somewhat awkward, and suggest a slight rewording, thus:

NEW
There are attacks in which one recipient will be given a JWT that was intended for it, and will attempt to use it at a different recipient for which that JWT was not intended.  For instance, if an OAuth 2.0 [RFC6749] access token is legitimately presented to an OAuth 2.0 protected resource which it is intended, that protected resource might then present that same access token to different protected resource for which the access token is not intended, in an attempt to gain access.  If such situations are not caught, this can result in the attacker gaining access to resources that it is not entitled to access.
END

As to the title of this section, this doesn't seem to be a "substitution".  I'm not sure what to call it (maybe it's a form of replay attack, but maybe not really), but "substitution" doesn't seem right.

-- Section 2.9 --

Nit: In "operations, e.g. database and LDAP searches," you need a comma after "e.g."  Or, better still, just change "e.g." to "such as", and avoid the Latin.

-- Section 3.4 --

Nit: "(see e.g.  [Valenta], Sec. 7.1)" needs commas: "(see, e.g.,  [Valenta], Sec. 7.1)"  And in the next sentence, because of the "or both!" at the end I would remove the "Either" at the beginning.

-- Section 3.6 --

  It is RECOMMENDED to avoid any compression of data before encryption
  since such compression often reveals information about the plaintext.

The passive voice doesn't work in this construct; "it is recommended to avoid" doesn't seem like proper English.  Also, it's not the compression that reveals information, but the resultant compressed data, right?  How about this?:

NEW
  Compression of data SHOULD NOT be done before encryption, because
  such compressed data often reveals information about the plaintext.
END

-- Section 3.11 --

  Confusion of one kind of JWT for another can be prevented by having
  all the kinds of JWTs that could otherwise potentially be confused
  include an explicit JWT type value and include checking the type
  value in their validation rules.

I find the sentence awkward, and suggest a slight rewrite:

NEW
  Sometimes, one kind of JWT can be confused for another.  If a particular
  kind of JWT is subject to such confusion, that JWP can include an explicit
  JWT type value, and the validation rules can specify checking the type.
  This mechanism can prevent such confusion.
END
2019-06-24
06 Barry Leiba [Ballot Position Update] New position, Yes, has been recorded for Barry Leiba
2019-06-13
06 Brian Carpenter Request for Telechat review by GENART Completed: Ready. Reviewer: Brian Carpenter. Sent review to list.
2019-06-13
06 Jean Mahoney Request for Telechat review by GENART is assigned to Brian Carpenter
2019-06-13
06 Jean Mahoney Request for Telechat review by GENART is assigned to Brian Carpenter
2019-06-13
06 Roman Danyliw IESG state changed to IESG Evaluation from Waiting for Writeup
2019-06-07
06 (System) IANA Review state changed to IANA OK - No Actions Needed from Version Changed - Review Needed
2019-06-07
06 Cindy Morgan Placed on agenda for telechat - 2019-06-27
2019-06-07
06 Roman Danyliw Ballot has been issued
2019-06-07
06 Roman Danyliw [Ballot Position Update] New position, Yes, has been recorded for Roman Danyliw
2019-06-07
06 Roman Danyliw Created "Approve" ballot
2019-06-07
06 Roman Danyliw Ballot writeup was changed
2019-06-07
06 Roman Danyliw Ballot approval text was generated
2019-06-07
06 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-06.txt
2019-06-07
06 (System) New version approved
2019-06-07
06 (System) Request for posting confirmation emailed to previous authors: Dick Hardt <dick.hardt@gmail.com>, Yaron Sheffer <yaronf.ietf@gmail.com>, Michael Jones <mbj@microsoft.com>
2019-06-07
06 Yaron Sheffer Uploaded new revision
2019-06-03
05 Roman Danyliw Second AD Review: https://mailarchive.ietf.org/arch/msg/oauth/yI4GA6ZoKfOop8uwz_ERHYuNQzk
2019-04-16
05 (System) IANA Review state changed to Version Changed - Review Needed from IANA OK - No Actions Needed
2019-04-16
05 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-05.txt
2019-04-16
05 (System) New version approved
2019-04-16
05 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, oauth-chairs@ietf.org, Michael Jones <mbj@microsoft.com>
2019-04-16
05 Yaron Sheffer Uploaded new revision
2019-04-08
04 (System) IESG state changed to Waiting for Writeup from In Last Call
2019-04-04
04 Tero Kivinen Request for Last Call review by SECDIR Completed: Ready. Reviewer: Radia Perlman.
2019-04-03
04 (System) IANA Review state changed to IANA OK - No Actions Needed from IANA - Review Needed
2019-04-03
04 Sabrina Tanamal
(Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs:

The IANA Functions Operator has reviewed draft-ietf-oauth-jwt-bcp-04, which is currently in Last Call, and has the following comments:

We …
(Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs:

The IANA Functions Operator has reviewed draft-ietf-oauth-jwt-bcp-04, which is currently in Last Call, and has the following comments:

We understand that this document doesn't require any registry actions.

While it's often helpful for a document's IANA Considerations section to remain in place upon publication even if there are no actions, if the authors strongly prefer to remove it, we do not object.

If this assessment is not accurate, please respond as soon as possible.

Thank you,

Sabrina Tanamal
Senior IANA Services Specialist
2019-04-03
04 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Ron Bonica
2019-04-03
04 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Ron Bonica
2019-03-30
04 Brian Carpenter Request for Last Call review by GENART Completed: Ready with Issues. Reviewer: Brian Carpenter. Sent review to list.
2019-03-28
04 Jean Mahoney Request for Last Call review by GENART is assigned to Brian Carpenter
2019-03-28
04 Jean Mahoney Request for Last Call review by GENART is assigned to Brian Carpenter
2019-03-28
04 Tero Kivinen Request for Last Call review by SECDIR is assigned to Radia Perlman
2019-03-28
04 Tero Kivinen Request for Last Call review by SECDIR is assigned to Radia Perlman
2019-03-27
04 Cindy Morgan Shepherding AD changed to Roman Danyliw
2019-03-25
04 Cindy Morgan IANA Review state changed to IANA - Review Needed
2019-03-25
04 Cindy Morgan
The following Last Call announcement was sent out (ends 2019-04-08):<br><br>From: The IESG <iesg-secretary@ietf.org>
To: IETF-Announce <ietf-announce@ietf.org>
CC: draft-ietf-oauth-jwt-bcp@ietf.org, ekr@rtfm.com, …
The following Last Call announcement was sent out (ends 2019-04-08):<br><br>From: The IESG <iesg-secretary@ietf.org>
To: IETF-Announce <ietf-announce@ietf.org>
CC: draft-ietf-oauth-jwt-bcp@ietf.org, ekr@rtfm.com, Hannes Tschofenig <hannes.tschofenig@arm.com>, oauth@ietf.org, hannes.tschofenig@arm.com, oauth-chairs@ietf.org
Reply-To: ietf@ietf.org
Sender: <iesg-secretary@ietf.org>
Subject: Last Call: <draft-ietf-oauth-jwt-bcp-04.txt> (JSON Web Token Best Current Practices) to Best Current Practice


The IESG has received a request from the Web Authorization Protocol WG
(oauth) to consider the following document: - 'JSON Web Token Best Current
Practices'
  <draft-ietf-oauth-jwt-bcp-04.txt> as Best Current Practice

The IESG plans to make a decision in the next few weeks, and solicits final
comments on this action. Please send substantive comments to the
ietf@ietf.org mailing lists by 2019-04-08. Exceptionally, comments may be
sent to iesg@ietf.org instead. In either case, please retain the beginning of
the Subject line to allow automated sorting.

Abstract


  JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security
  tokens that contain a set of claims that can be signed and/or
  encrypted.  JWTs are being widely used and deployed as a simple
  security token format in numerous protocols and applications, both in
  the area of digital identity, and in other application areas.  The
  goal of this Best Current Practices document is to provide actionable
  guidance leading to secure implementation and deployment of JWTs.




The file can be obtained via
https://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-bcp/

IESG discussion can be tracked via
https://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-bcp/ballot/


No IPR declarations have been submitted directly on this I-D.


The document contains these normative downward references.
See RFC 3967 for additional information:
    rfc8037: CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE) (Proposed Standard - IETF stream)
    rfc6979: Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) (Informational - Independent Submission Editor stream)
    rfc7516: JSON Web Encryption (JWE) (Proposed Standard - IETF stream)
    rfc7515: JSON Web Signature (JWS) (Proposed Standard - IETF stream)
    rfc7519: JSON Web Token (JWT) (Proposed Standard - IETF stream)
    rfc7518: JSON Web Algorithms (JWA) (Proposed Standard - IETF stream)



2019-03-25
04 Cindy Morgan IESG state changed to In Last Call from Last Call Requested
2019-03-25
04 Eric Rescorla Last call was requested
2019-03-25
04 Eric Rescorla Last call announcement was generated
2019-03-25
04 Eric Rescorla Ballot approval text was generated
2019-03-25
04 Eric Rescorla Ballot writeup was generated
2019-03-25
04 Eric Rescorla IESG state changed to Last Call Requested from AD Evaluation::Revised I-D Needed
2018-12-21
04 Eric Rescorla IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation::AD Followup
2018-12-21
04 Eric Rescorla Waiting for some more small changes.
2018-11-08
04 (System) Sub state has been changed to AD Followup from Revised ID Needed
2018-11-08
04 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-04.txt
2018-11-08
04 (System) New version approved
2018-11-08
04 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, Michael Jones <mbj@microsoft.com>
2018-11-08
04 Yaron Sheffer Uploaded new revision
2018-11-04
03 Eric Rescorla IESG state changed to AD Evaluation::Revised I-D Needed from Publication Requested
2018-10-18
03 Rifaat Shekh-Yusef
(1) What type of RFC is being requested (BCP, Proposed Standard, Internet Standard, Informational, Experimental, or Historic)? Why is this the proper type of RFC? …
(1) What type of RFC is being requested (BCP, Proposed Standard, Internet Standard, Informational, Experimental, or Historic)? Why is this the proper type of RFC? Is this type of RFC indicated in the title page header?

The draft-ietf-oauth-jwt-bcp-03 is a Best Current Practice document providing actionable guidance leading to secure implementation and deployment of JWTs. The group decided that a Best Current Practice document, which can evolve over time, is the best way to improve the quality and security of JWT implementations and deployments. 

(2) The IESG approval announcement includes a Document Announcement Write-Up. Please provide such a Document Announcement Write-Up. Recent examples can be found in the "Action" announcements for approved documents. The approval announcement contains the following sections:

Technical Summary:


  JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security
  tokens that contain a set of claims that can be signed and/or
  encrypted.  JWTs are being widely used and deployed as a simple
  security token format in numerous protocols and applications, both in
  the area of digital identity, and in other application areas.  The
  goal of this Best Current Practices document is to provide actionable
  guidance leading to secure implementation and deployment of JWTs.

Working Group Summary:

This document has been written in response to reports about insecure implementations and deployments of JWT.
The working group is in agreement that this document provides value to the community.

Document Quality:

The document has received substantial review and suggestions for threat mitigations to cover. Many of the recommendations have been provided by researchers and implementers outside the working group.

Personnel:

The document shepherd is Hannes Tschofenig.
The responsible Area Director is Eric Rescorla.


(3) Briefly describe the review of this document that was performed by the Document Shepherd. If this version of the document is not ready for publication, please explain why the document is being forwarded to the IESG.

The document shepherd has reviewed this document and feels the document is ready.

(4) Does the document Shepherd have any concerns about the depth or breadth of the reviews that have been performed?

The document shepherd has no concerns with the level of reviews, as the document was discussed and reviewed by many participants.


(5) Do portions of the document need review from a particular or from broader perspective, e.g., security, operational complexity, AAA, DNS, DHCP, XML, or internationalization? If so, describe the review that took place.

Security review is always appreciated. The shepherd has, however, already asked the IETF security community for review of this document.


(6) Describe any specific concerns or issues that the Document Shepherd has with this document that the Responsible Area Director and/or the IESG should be aware of? For example, perhaps he or she is uncomfortable with certain parts of the document, or has concerns whether there really is a need for it. In any event, if the WG has discussed those issues and has indicated that it still wishes to advance the document, detail those concerns here.

The document shepherd has no such concerns.


(7) Has each author confirmed that any and all appropriate IPR disclosures required for full conformance with the provisions of BCP 78 and BCP 79 have already been filed. If not, explain why?

Yes, all three authors have confirmed:
- Mike: https://www.ietf.org/mail-archive/web/oauth/current/msg18195.html
- Dick: https://www.ietf.org/mail-archive/web/oauth/current/msg18196.html
- Yaron: https://www.ietf.org/mail-archive/web/oauth/current/msg18197.html

(8) Has an IPR disclosure been filed that references this document? If so, summarize any WG discussion and conclusion regarding the IPR disclosures.

No such IPR disclosures.


(9) How solid is the WG consensus behind this document? Does it represent the strong concurrence of a few individuals, with others being silent, or does the WG as a whole understand and agree with it?

There is a solid support for this document from the WG.


(10) Has anyone threatened an appeal or otherwise indicated extreme discontent? If so, please summarise the areas of conflict in separate email messages to the Responsible Area Director. (It should be in a separate email because this questionnaire is publicly available.)

No such threat or discontent.


(11) Identify any ID nits the Document Shepherd has found in this document. (See http://www.ietf.org/tools/idnits/ and the Internet-Drafts Checklist). Boilerplate checks are not enough; this check needs to be thorough.

There are no nits with this document.

(12) Describe how the document meets any required formal review criteria, such as the MIB Doctor, media type, and URI type reviews.

No such reviews are necessary.


(13) Have all references within this document been identified as either normative or informative?

Yes.


(14) Are there normative references to documents that are not ready for advancement or are otherwise in an unclear state? If such normative references exist, what is the plan for their completion?

No.

(15) Are there downward normative references (see RFC 3967)? If so, list these downward references to support the Area Director in the Last Call procedure.

There is a downref for RFC 6979. It is an algorithm document that is appropriate as a normative reference.

(16) Will publication of this document change the status of any existing RFCs? Are those RFCs listed on the title page header, listed in the abstract, and discussed in the introduction? If the RFCs are not listed in the Abstract and Introduction, explain why, and point to the part of the document where the relationship of this document to the other RFCs is discussed. If this information is not in the document, explain why the WG considers it unnecessary.

No status change of any existing RFCs.


(17) Describe the Document Shepherd's review of the IANA considerations section, especially with regard to its consistency with the body of the document. Confirm that all protocol extensions that the document makes are associated with the appropriate reservations in IANA registries. Confirm that any referenced IANA registries have been clearly identified. Confirm that newly created IANA registries include a detailed specification of the initial contents for the registry, that allocations procedures for future registrations are defined, and a reasonable name for the new registry has been suggested (see RFC 5226).

There is no action for IANA.

(18) List any new IANA registries that require Expert Review for future allocations. Provide any public guidance that the IESG would find useful in selecting the IANA Experts for these new registries.

Not applicable.

(19) Describe reviews and automated checks performed by the Document Shepherd to validate sections of the document written in a formal language, such as XML code, BNF rules, MIB definitions, etc.

The document contains no formal languages.
2018-10-18
03 Rifaat Shekh-Yusef Responsible AD changed to Eric Rescorla
2018-10-18
03 Rifaat Shekh-Yusef IETF WG state changed to Submitted to IESG for Publication from WG Document
2018-10-18
03 Rifaat Shekh-Yusef IESG state changed to Publication Requested
2018-10-18
03 Rifaat Shekh-Yusef IESG process started in state Publication Requested
2018-07-17
03 Hannes Tschofenig Changed consensus to Yes from Unknown
2018-07-17
03 Hannes Tschofenig Intended Status changed to Best Current Practice from None
2018-07-17
03 Hannes Tschofenig Notification list changed to Hannes Tschofenig <hannes.tschofenig@arm.com>
2018-07-17
03 Hannes Tschofenig Document shepherd changed to Hannes Tschofenig
2018-07-17
03 Hannes Tschofenig Changed document writeup
2018-05-07
03 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-03.txt
2018-05-07
03 (System) New version approved
2018-05-07
03 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, Michael Jones <mbj@microsoft.com>
2018-05-07
03 Yaron Sheffer Uploaded new revision
2018-05-02
02 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-02.txt
2018-05-02
02 (System) New version approved
2018-05-02
02 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, Michael Jones <mbj@microsoft.com>
2018-05-02
02 Yaron Sheffer Uploaded new revision
2018-03-22
01 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-01.txt
2018-03-22
01 (System) New version approved
2018-03-22
01 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, Michael Jones <mbj@microsoft.com>
2018-03-22
01 Yaron Sheffer Uploaded new revision
2018-03-22
01 (System) Request for posting confirmation emailed to previous authors: Yaron Sheffer <yaronf.ietf@gmail.com>, Dick Hardt <dick@amazon.com>, Michael Jones <mbj@microsoft.com>
2018-03-22
01 Yaron Sheffer Uploaded new revision
2017-07-27
00 Rifaat Shekh-Yusef This document now replaces draft-sheffer-oauth-jwt-bcp instead of None
2017-07-27
00 Yaron Sheffer New version available: draft-ietf-oauth-jwt-bcp-00.txt
2017-07-27
00 (System) WG -00 approved
2017-07-19
00 Yaron Sheffer Set submitter to "Yaron Sheffer <yaronf.ietf@gmail.com>", replaces to draft-sheffer-oauth-jwt-bcp and sent approval email to group chairs: oauth-chairs@ietf.org
2017-07-19
00 Yaron Sheffer Uploaded new revision