| < draft-ietf-ace-cbor-web-token-01.txt | draft-ietf-ace-cbor-web-token-02.txt > | |||
|---|---|---|---|---|
| ACE Working Group E. Wahlstroem | ACE Working Group M. Jones | |||
| Internet-Draft | Internet-Draft Microsoft | |||
| Intended status: Informational M. Jones | Intended status: Informational E. Wahlstroem | |||
| Expires: January 8, 2017 Microsoft | Expires: July 17, 2017 | |||
| H. Tschofenig | ||||
| ARM Ltd. | ||||
| S. Erdtman | S. Erdtman | |||
| Spotify AB | Spotify AB | |||
| July 7, 2016 | H. Tschofenig | |||
| ARM Ltd. | ||||
| January 13, 2017 | ||||
| CBOR Web Token (CWT) | CBOR Web Token (CWT) | |||
| draft-ietf-ace-cbor-web-token-01 | draft-ietf-ace-cbor-web-token-02 | |||
| Abstract | Abstract | |||
| CBOR Web Token (CWT) is a compact means of representing claims to be | CBOR Web Token (CWT) is a compact means of representing claims to be | |||
| transferred between two parties. CWT is a profile of the JSON Web | transferred between two parties. CWT is a profile of the JSON Web | |||
| Token (JWT) that is optimized for constrained devices. The claims in | Token (JWT) that is optimized for constrained devices. The claims in | |||
| a CWT are encoded in the Concise Binary Object Representation (CBOR) | a CWT are encoded in the Concise Binary Object Representation (CBOR) | |||
| and CBOR Object Signing and Encryption (COSE) is used for added | and CBOR Object Signing and Encryption (COSE) is used for added | |||
| application layer security protection. A claim is a piece of | application layer security protection. A claim is a piece of | |||
| information asserted about a subject and is represented as a name/ | information asserted about a subject and is represented as a name/ | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on January 8, 2017. | This Internet-Draft will expire on July 17, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 38 ¶ | skipping to change at page 2, line 38 ¶ | |||
| 4. Summary of the values, CBOR major types and encoded claim | 4. Summary of the values, CBOR major types and encoded claim | |||
| keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Creating and Validating CWTs . . . . . . . . . . . . . . . . 6 | 5. Creating and Validating CWTs . . . . . . . . . . . . . . . . 6 | |||
| 5.1. Creating a CWT . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. Creating a CWT . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.2. Validating a CWT . . . . . . . . . . . . . . . . . . . . 7 | 5.2. Validating a CWT . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7.1. CBOR Web Token (CWT) Claims Registry . . . . . . . . . . 8 | 7.1. CBOR Web Token (CWT) Claims Registry . . . . . . . . . . 8 | |||
| 7.1.1. Registration Template . . . . . . . . . . . . . . . . 8 | 7.1.1. Registration Template . . . . . . . . . . . . . . . . 8 | |||
| 7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 9 | 7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 9 | |||
| 7.2. CoAP Content-Format Registration . . . . . . . . . . . . 10 | 7.2. Media Type Registration . . . . . . . . . . . . . . . . . 10 | |||
| 7.2.1. Registry Contents . . . . . . . . . . . . . . . . . . 10 | 7.2.1. Registry Contents . . . . . . . . . . . . . . . . . . 10 | |||
| 7.3. CoAP Content-Formats Registration . . . . . . . . . . . . 11 | ||||
| 7.3.1. Registry Contents . . . . . . . . . . . . . . . . . . 11 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
| Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 12 | Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| A.1. CWT with "aud" and symmetric key . . . . . . . . . . . . 12 | A.1. CWT with "aud" and symmetric key . . . . . . . . . . . . 13 | |||
| A.2. CWT with "aud" and EC key . . . . . . . . . . . . . . . . 13 | A.2. CWT with "aud" and EC key . . . . . . . . . . . . . . . . 14 | |||
| A.3. Full CWT . . . . . . . . . . . . . . . . . . . . . . . . 15 | A.3. Full CWT . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 18 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | |||
| Appendix C. Document History . . . . . . . . . . . . . . . . . . 19 | Appendix C. Document History . . . . . . . . . . . . . . . . . . 20 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 1. Introduction | 1. Introduction | |||
| The JSON Web Token (JWT) [RFC7519] is a standardized security token | The JSON Web Token (JWT) [RFC7519] is a standardized security token | |||
| format that has found use in OAuth 2.0 and OpenID Connect | format that has found use in OAuth 2.0 and OpenID Connect | |||
| deployments, among other applications. JWT uses JSON Web Signatures | deployments, among other applications. JWT uses JSON Web Signatures | |||
| (JWS) [RFC7515] and JSON Web Encryption (JWE) [RFC7516] to secure the | (JWS) [RFC7515] and JSON Web Encryption (JWE) [RFC7516] to secure the | |||
| contents of the JWT, which is a set of claims represented in JSON | contents of the JWT, which is a set of claims represented in JSON | |||
| [RFC7519]. The use of JSON for encoding information is popular for | [RFC7519]. The use of JSON for encoding information is popular for | |||
| Web and native applications, but it is considered inefficient for | Web and native applications, but it is considered inefficient for | |||
| skipping to change at page 4, line 7 ¶ | skipping to change at page 4, line 7 ¶ | |||
| Type6NumericDate: | Type6NumericDate: | |||
| The "Type6NumericDate" term has the same meaning, syntax, and | The "Type6NumericDate" term has the same meaning, syntax, and | |||
| processing rules as the "NumericDate" term defined in Section 2 of | processing rules as the "NumericDate" term defined in Section 2 of | |||
| JWT [RFC7519], except that Type6NumericDate uses CBOR major type | JWT [RFC7519], except that Type6NumericDate uses CBOR major type | |||
| 6, with tag value 1, instead of a numeric JSON value. | 6, with tag value 1, instead of a numeric JSON value. | |||
| CBOR encoded claim key: | CBOR encoded claim key: | |||
| The key used to identify a claim value. | The key used to identify a claim value. | |||
| CWT Claims Set | ||||
| A CBOR map that contains the claims conveyed by the CWT. | ||||
| 3. Claims | 3. Claims | |||
| The set of claims that a CWT must contain to be considered valid is | The set of claims that a CWT must contain to be considered valid is | |||
| context dependent and is outside the scope of this specification. | context dependent and is outside the scope of this specification. | |||
| Specific applications of CWTs will require implementations to | Specific applications of CWTs will require implementations to | |||
| understand and process some claims in particular ways. However, in | understand and process some claims in particular ways. However, in | |||
| the absence of such requirements, all claims that are not understood | the absence of such requirements, all claims that are not understood | |||
| by implementations MUST be ignored. | by implementations MUST be ignored. | |||
| To keep CWTs as small as possible, the CBOR encoded claim keys are | To keep CWTs as small as possible, the CBOR encoded claim keys are | |||
| represented using CBOR major type 0. Section 4 summaries all keys | represented using CBOR major type 0. Section 4 summarizes all keys | |||
| used to identity the claims defined in this document. | used to identify the claims defined in this document. | |||
| 3.1. Claim Names | 3.1. Claim Names | |||
| None of the claims defined below are intended to be mandatory to use | None of the claims defined below are intended to be mandatory to use | |||
| or implement. They rather provide a starting point for a set of | or implement. They rather provide a starting point for a set of | |||
| useful, interoperable claims. Applications using CWTs should define | useful, interoperable claims. Applications using CWTs should define | |||
| which specific claims they use and when they are required or | which specific claims they use and when they are required or | |||
| optional. | optional. | |||
| 3.1.1. iss (Issuer) Claim | 3.1.1. iss (Issuer) Claim | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 19 ¶ | |||
| To create a CWT, the following steps are performed. The order of the | To create a CWT, the following steps are performed. The order of the | |||
| steps is not significant in cases where there are no dependencies | steps is not significant in cases where there are no dependencies | |||
| between the inputs and outputs of the steps. | between the inputs and outputs of the steps. | |||
| 1. Create a CWT Claims Set containing the desired claims. | 1. Create a CWT Claims Set containing the desired claims. | |||
| 2. Let the Message be the binary representation of the CWT Claims | 2. Let the Message be the binary representation of the CWT Claims | |||
| Set. | Set. | |||
| 3. Create a COSE Header containing the desired set of Header | 3. Create a COSE Header containing the desired set of Header | |||
| Parameters. The CWT Header MUST be a valid according to the | Parameters. The COSE Header MUST be valid according to the | |||
| [I-D.ietf-cose-msg] specification. | [I-D.ietf-cose-msg] specification. | |||
| 4. Depending upon whether the CWT is signed, MACed or encrypted, | 4. Depending upon whether the CWT is signed, MACed or encrypted, | |||
| there are three cases: | there are three cases: | |||
| * If the CWT is signed, create a COSE_Sign/COSE_Sign1 object | * If the CWT is signed, create a COSE_Sign/COSE_Sign1 object | |||
| using the Message as the COSE_Sign/COSE_Sign1 Payload; all | using the Message as the COSE_Sign/COSE_Sign1 Payload; all | |||
| steps specified in [I-D.ietf-cose-msg] for creating a | steps specified in [I-D.ietf-cose-msg] for creating a | |||
| COSE_Sign/COSE_Sign1 object MUST be followed. | COSE_Sign/COSE_Sign1 object MUST be followed. | |||
| skipping to change at page 6, line 44 ¶ | skipping to change at page 6, line 44 ¶ | |||
| * Else, if the CWT is a COSE_Encrypt/COSE_Encrypt0 object, | * Else, if the CWT is a COSE_Encrypt/COSE_Encrypt0 object, | |||
| create a COSE_Encrypt/COSE_Encrypt0 using the Message as the | create a COSE_Encrypt/COSE_Encrypt0 using the Message as the | |||
| plaintext for the COSE_Encrypt/COSE_Encrypt0 object; all steps | plaintext for the COSE_Encrypt/COSE_Encrypt0 object; all steps | |||
| specified in [I-D.ietf-cose-msg] for creating a COSE_Encrypt/ | specified in [I-D.ietf-cose-msg] for creating a COSE_Encrypt/ | |||
| COSE_Encrypt0 object MUST be followed. | COSE_Encrypt0 object MUST be followed. | |||
| 5. If a nested signing, MACing or encryption operation will be | 5. If a nested signing, MACing or encryption operation will be | |||
| performed, let the Message be the COSE_Sign/COSE_Sign1, COSE_Mac/ | performed, let the Message be the COSE_Sign/COSE_Sign1, COSE_Mac/ | |||
| COSE_Mac0 or COSE_Encrypt/COSE_Encrypt0, and return to Step 3, | COSE_Mac0 or COSE_Encrypt/COSE_Encrypt0, and return to Step 3, | |||
| using "content type" header value of "CWT" in the new COSE Header | using a "content type" header value corresponding to the media | |||
| created in that step. | type "application/cwt" in the new COSE Header created in that | |||
| step. | ||||
| Note: If integrity (signing/MACing) and confidentiality | Note: If integrity (signing/MACing) and confidentiality | |||
| (encryption) protection are needed, it is recommended to use an | (encryption) protection are needed, it is recommended to use an | |||
| authenticated encryption algorithm to save space and processing. | authenticated encryption algorithm to save space and processing. | |||
| 5.2. Validating a CWT | 5.2. Validating a CWT | |||
| When validating a CWT, the following steps are performed. The order | When validating a CWT, the following steps are performed. The order | |||
| of the steps is not significant in cases where there are no | of the steps is not significant in cases where there are no | |||
| dependencies between the inputs and outputs of the steps. If any of | dependencies between the inputs and outputs of the steps. If any of | |||
| the listed steps fail, then the CWT MUST be rejected -- that is, | the listed steps fail, then the CWT MUST be rejected -- that is, | |||
| treated by the application as an invalid input. | treated by the application as an invalid input. | |||
| 1. Verify that the CWT is a valid CBOR object. | 1. Verify that the CWT is a valid CBOR object. | |||
| 2. Verify that the resulting COSE Header includes only parameters | 2. Verify that the resulting COSE Header includes only parameters | |||
| and values whose syntax and semantics are both understood and | and values whose syntax and semantics are both understood and | |||
| supported or that are specified as being ignored when not | supported or that are specified as being ignored when not | |||
| understood. | understood. | |||
| 3. Use the CBOR tag to determine the type the CWT, COSE_Sign/ | 3. Use the CBOR tag to determine the type of the CWT, COSE_Sign/ | |||
| COSE_Sign1, COSE_Mac/COSE_Mac0 or COSE_Encrypt/COSE_Encrypt0. | COSE_Sign1, COSE_Mac/COSE_Mac0, or COSE_Encrypt/COSE_Encrypt0. | |||
| 4. Depending upon whether the CWT is a COSE_Sign/COSE_Sign1, | 4. Depending upon whether the CWT is a COSE_Sign/COSE_Sign1, | |||
| COSE_Mac/COSE_Mac0 or COSE_Encrypt/COSE_Encrypt0, there are three | COSE_Mac/COSE_Mac0 or COSE_Encrypt/COSE_Encrypt0, there are three | |||
| cases: | cases: | |||
| * If the CWT is a COSE_Sign/COSE_Sign1, follow the steps | * If the CWT is a COSE_Sign/COSE_Sign1, follow the steps | |||
| specified in [I-D.ietf-cose-msg] Section 4 (Signing Objects) | specified in [I-D.ietf-cose-msg] Section 4 (Signing Objects) | |||
| for validating a COSE_Sign/COSE_Sign1 object. Let the Message | for validating a COSE_Sign/COSE_Sign1 object. Let the Message | |||
| be the COSE_Sign/COSE_Sign1 payload. | be the COSE_Sign/COSE_Sign1 payload. | |||
| skipping to change at page 7, line 43 ¶ | skipping to change at page 7, line 43 ¶ | |||
| specified in [I-D.ietf-cose-msg] Section 6 (MAC Objects) for | specified in [I-D.ietf-cose-msg] Section 6 (MAC Objects) for | |||
| validating a COSE_Mac/COSE_Mac0 object. Let the Message be | validating a COSE_Mac/COSE_Mac0 object. Let the Message be | |||
| the COSE_Mac/COSE_Mac0 payload. | the COSE_Mac/COSE_Mac0 payload. | |||
| * Else, if the CWT is a COSE_Encrypt/COSE_Encrypt0 object, | * Else, if the CWT is a COSE_Encrypt/COSE_Encrypt0 object, | |||
| follow the steps specified in [I-D.ietf-cose-msg] Section 5 | follow the steps specified in [I-D.ietf-cose-msg] Section 5 | |||
| (Encryption Objects) for validating a COSE_Encrypt/ | (Encryption Objects) for validating a COSE_Encrypt/ | |||
| COSE_Encrypt0 object. Let the Message be the resulting | COSE_Encrypt0 object. Let the Message be the resulting | |||
| plaintext. | plaintext. | |||
| 5. If the JOSE Header contains a "content type" value of "CWT", then | 5. If the COSE Header contains a "content type" header value | |||
| the Message is a CWT that was the subject of nested signing or | corresponding to the media type "application/cwt", then the | |||
| Message is a CWT that was the subject of nested signing or | ||||
| encryption operations. In this case, return to Step 1, using the | encryption operations. In this case, return to Step 1, using the | |||
| Message as the CWT. | Message as the CWT. | |||
| 6. Verify that the Message is a valid CBOR object; let the CWT | 6. Verify that the Message is a valid CBOR object; let the CWT | |||
| Claims Set be this CBOR object. | Claims Set be this CBOR object. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security of the CWT is dependent on the protection offered by | The security of the CWT is dependent on the protection offered by | |||
| COSE. Without protecting the claims contained in a CWT an adversary | COSE. Without protecting the claims contained in a CWT an adversary | |||
| skipping to change at page 9, line 10 ¶ | skipping to change at page 9, line 10 ¶ | |||
| [IANA.JWT.Claims]. CWT claims should normally have a | [IANA.JWT.Claims]. CWT claims should normally have a | |||
| corresponding JWT claim. If a corresponding JWT claim would not | corresponding JWT claim. If a corresponding JWT claim would not | |||
| make sense, the Designated Experts can choose to accept | make sense, the Designated Experts can choose to accept | |||
| registrations for which the JWT Claim Name is listed as "N/A". | registrations for which the JWT Claim Name is listed as "N/A". | |||
| CBOR Key Value: | CBOR Key Value: | |||
| Key value for the claim. The key value MUST be an integer in the | Key value for the claim. The key value MUST be an integer in the | |||
| range of 1 to 65536. | range of 1 to 65536. | |||
| CBOR Major Type: | CBOR Major Type: | |||
| CBOR Major type and optional tag for the claim. | CBOR major type and optional tag for the claim. | |||
| Change Controller: | Change Controller: | |||
| For Standards Track RFCs, list the "IESG". For others, give the | For Standards Track RFCs, list the "IESG". For others, give the | |||
| name of the responsible party. Other details (e.g., postal | name of the responsible party. Other details (e.g., postal | |||
| address, email address, home page URI) may also be included. | address, email address, home page URI) may also be included. | |||
| Specification Document(s): | Specification Document(s): | |||
| Reference to the document or documents that specify the parameter, | Reference to the document or documents that specify the parameter, | |||
| preferably including URIs that can be used to retrieve copies of | preferably including URIs that can be used to retrieve copies of | |||
| the documents. An indication of the relevant sections may also be | the documents. An indication of the relevant sections may also be | |||
| skipping to change at page 10, line 39 ¶ | skipping to change at page 10, line 39 ¶ | |||
| o Claim Name: "cti" | o Claim Name: "cti" | |||
| o Claim Description: CWT ID | o Claim Description: CWT ID | |||
| o JWT Claim Name: "jti" | o JWT Claim Name: "jti" | |||
| o CBOR Key Value: 7 | o CBOR Key Value: 7 | |||
| o CBOR Major Type: 2 | o CBOR Major Type: 2 | |||
| o Change Controller: IESG | o Change Controller: IESG | |||
| o Specification Document(s): Section 3.1.7 of [[ this specification | o Specification Document(s): Section 3.1.7 of [[ this specification | |||
| ]] | ]] | |||
| 7.2. CoAP Content-Format Registration | 7.2. Media Type Registration | |||
| This section registers the "application/cwt" CoAP Content-Format ID | This section registers the "application/cwt" media type [RFC2046] in | |||
| in the "CoRE Parameters" sub-registry "CoAP Content-Format" in the | the "Media Types" registry [IANA.MediaTypes] in the manner described | |||
| manner described in [RFC7252]. | in RFC 6838 [RFC6838], which can be used to indicate that the content | |||
| is a CWT. | ||||
| 7.2.1. Registry Contents | 7.2.1. Registry Contents | |||
| o Type name: application | ||||
| o Subtype name: cwt | ||||
| o Required parameters: N/A | ||||
| o Optional parameters: N/A | ||||
| o Encoding considerations: binary | ||||
| o Security considerations: See the Security Considerations section | ||||
| of [[ this specification ]] | ||||
| o Interoperability considerations: N/A | ||||
| o Published specification: [[ this specification ]] | ||||
| o Applications that use this media type: IoT applications sending | ||||
| security tokens over HTTP(S) and other transports. | ||||
| o Fragment identifier considerations: N/A | ||||
| o Additional information: | ||||
| Magic number(s): N/A | ||||
| File extension(s): N/A | ||||
| Macintosh file type code(s): N/A | ||||
| o Person & email address to contact for further information: | ||||
| IESG, iesg@ietf.org | ||||
| o Intended usage: COMMON | ||||
| o Restrictions on usage: none | ||||
| o Author: Michael B. Jones, mbj@microsoft.com | ||||
| o Change controller: IESG | ||||
| o Provisional registration? No | ||||
| 7.3. CoAP Content-Formats Registration | ||||
| This section registers the CoAP Content-Format ID for the | ||||
| "application/cwt" media type in the "CoAP Content-Formats" registry | ||||
| [IANA.CoAP.Content-Formats] established by [RFC7252]. | ||||
| 7.3.1. Registry Contents | ||||
| o Media Type: application/cwt | o Media Type: application/cwt | |||
| o Encoding: - | o Encoding: - | |||
| o Id: TBD (maybe 61) | o Id: TBD (maybe 61) | |||
| o Reference: [[ this specification ]] | o Reference: [[ this specification ]] | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.ietf-cose-msg] | [I-D.ietf-cose-msg] | |||
| Schaad, J., "CBOR Object Signing and Encryption (COSE)", | Schaad, J., "CBOR Object Signing and Encryption (COSE)", | |||
| draft-ietf-cose-msg-14 (work in progress), June 2016. | draft-ietf-cose-msg-24 (work in progress), November 2016. | |||
| [IANA.CoAP.Content-Formats] | ||||
| IANA, "CoAP Content-Formats", | ||||
| <http://www.iana.org/assignments/core-parameters/ | ||||
| core-parameters.xhtml#content-formats>. | ||||
| [IANA.JWT.Claims] | [IANA.JWT.Claims] | |||
| IANA, "JSON Web Token Claims", | IANA, "JSON Web Token Claims", | |||
| <http://www.iana.org/assignments/jwt>. | <http://www.iana.org/assignments/jwt>. | |||
| [IANA.MediaTypes] | ||||
| IANA, "Media Types", | ||||
| <http://www.iana.org/assignments/media-types>. | ||||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | ||||
| DOI 10.17487/RFC2046, November 1996, | ||||
| <http://www.rfc-editor.org/info/rfc2046>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
| DOI 10.17487/RFC5226, May 2008, | DOI 10.17487/RFC5226, May 2008, | |||
| <http://www.rfc-editor.org/info/rfc5226>. | <http://www.rfc-editor.org/info/rfc5226>. | |||
| [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type | ||||
| Specifications and Registration Procedures", BCP 13, | ||||
| RFC 6838, DOI 10.17487/RFC6838, January 2013, | ||||
| <http://www.rfc-editor.org/info/rfc6838>. | ||||
| [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object | [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object | |||
| Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, | Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, | |||
| October 2013, <http://www.rfc-editor.org/info/rfc7049>. | October 2013, <http://www.rfc-editor.org/info/rfc7049>. | |||
| [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | |||
| Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March | Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March | |||
| 2014, <http://www.rfc-editor.org/info/rfc7159>. | 2014, <http://www.rfc-editor.org/info/rfc7159>. | |||
| [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
| Application Protocol (CoAP)", RFC 7252, | Application Protocol (CoAP)", RFC 7252, | |||
| skipping to change at page 19, line 9 ¶ | skipping to change at page 20, line 9 ¶ | |||
| This specification is based on JSON Web Token (JWT) [RFC7519], the | This specification is based on JSON Web Token (JWT) [RFC7519], the | |||
| authors of which also include Nat Sakimura and John Bradley. A straw | authors of which also include Nat Sakimura and John Bradley. A straw | |||
| man proposal of CWT was written in the draft "Authorization for the | man proposal of CWT was written in the draft "Authorization for the | |||
| Internet of Things using OAuth 2.0" [I-D.seitz-ace-oauth-authz] with | Internet of Things using OAuth 2.0" [I-D.seitz-ace-oauth-authz] with | |||
| the help of Ludwig Seitz and Goeran Selander. | the help of Ludwig Seitz and Goeran Selander. | |||
| Appendix C. Document History | Appendix C. Document History | |||
| [[ to be removed by the RFC Editor before publication as an RFC ]] | [[ to be removed by the RFC Editor before publication as an RFC ]] | |||
| -02 | ||||
| o Added IANA registration for the application/cwt media type. | ||||
| o Clarified the nested CWT language. | ||||
| o Corrected nits identified by Ludwig Seitz. | ||||
| -01 | -01 | |||
| o Added IANA registration for CWT Claims. | o Added IANA registration for CWT Claims. | |||
| o Added IANA registration for the application/cwt CoAP content- | o Added IANA registration for the application/cwt CoAP content- | |||
| format type. | format type. | |||
| o Added Samuel Erdtman as an editor. | o Added Samuel Erdtman as an editor. | |||
| o Changed Erik's e-mail address. | o Changed Erik's e-mail address. | |||
| -00 | -00 | |||
| o Created the initial working group version based on draft- | o Created the initial working group version based on draft- | |||
| wahlstroem-ace-cbor-web-token-00. | wahlstroem-ace-cbor-web-token-00. | |||
| Authors' Addresses | Authors' Addresses | |||
| Erik Wahlstroem | ||||
| Sweden | ||||
| Email: erik@wahlstromstekniska.se | ||||
| Michael B. Jones | Michael B. Jones | |||
| Microsoft | Microsoft | |||
| Email: mbj@microsoft.com | Email: mbj@microsoft.com | |||
| URI: http://self-issued.info/ | URI: http://self-issued.info/ | |||
| Hannes Tschofenig | Erik Wahlstroem | |||
| ARM Ltd. | Sweden | |||
| Hall in Tirol 6060 | ||||
| Austria | ||||
| Email: Hannes.Tschofenig@arm.com | Email: erik@wahlstromstekniska.se | |||
| Samuel Erdtman | Samuel Erdtman | |||
| Spotify AB | Spotify AB | |||
| Birger Jarlsgatan 61, 4tr | Birger Jarlsgatan 61, 4tr | |||
| Stockholm 113 56 | Stockholm 113 56 | |||
| Sweden | Sweden | |||
| Phone: +46702691499 | Phone: +46702691499 | |||
| Email: erdtman@spotify.com | Email: erdtman@spotify.com | |||
| Hannes Tschofenig | ||||
| ARM Ltd. | ||||
| Hall in Tirol 6060 | ||||
| Austria | ||||
| Email: Hannes.Tschofenig@arm.com | ||||
| End of changes. 26 change blocks. | ||||
| 44 lines changed or deleted | 104 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||