draft-ietf-ace-oauth-params-15.txt   draft-ietf-ace-oauth-params-16.txt 
ACE Working Group L. Seitz ACE Working Group L. Seitz
Internet-Draft Combitech Internet-Draft Combitech
Intended status: Standards Track May 5, 2021 Intended status: Standards Track 7 September 2021
Expires: November 6, 2021 Expires: 11 March 2022
Additional OAuth Parameters for Authorization in Constrained Additional OAuth Parameters for Authorization in Constrained
Environments (ACE) Environments (ACE)
draft-ietf-ace-oauth-params-15 draft-ietf-ace-oauth-params-16
Abstract Abstract
This specification defines new parameters and encodings for the OAuth This specification defines new parameters and encodings for the OAuth
2.0 token and introspection endpoints when used with the framework 2.0 token and introspection endpoints when used with the framework
for authentication and authorization for constrained environments for authentication and authorization for constrained environments
(ACE). These are used to express the proof-of-possession key the (ACE). These are used to express the proof-of-possession key the
client wishes to use, the proof-of-possession key that the client wishes to use, the proof-of-possession key that the
Authorization Server has selected, and the key the Resource Server Authorization Server has selected, and the key the Resource Server
uses to authenticate to the client. uses to authenticate to the client.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 November 6, 2021. This Internet-Draft will expire on 11 March 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 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 (https://trustee.ietf.org/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document. Code Components
to this document. Code Components extracted from this document must extracted from this document must include Simplified BSD License text
include Simplified BSD License text as described in Section 4.e of as described in Section 4.e of the Trust Legal Provisions and are
the Trust Legal Provisions and are provided without warranty as provided without warranty as described in the Simplified BSD License.
described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Parameters for the Token Endpoint . . . . . . . . . . . . . . 3 3. Parameters for the Token Endpoint . . . . . . . . . . . . . . 3
3.1. Client-to-AS Request . . . . . . . . . . . . . . . . . . 3 3.1. Client-to-AS Request . . . . . . . . . . . . . . . . . . 3
3.2. AS-to-Client Response . . . . . . . . . . . . . . . . . . 4 3.2. AS-to-Client Response . . . . . . . . . . . . . . . . . . 4
4. Parameters for the Introspection Endpoint . . . . . . . . . . 6 4. Parameters for the Introspection Endpoint . . . . . . . . . . 6
5. Confirmation Method Parameters . . . . . . . . . . . . . . . 7 5. Confirmation Method Parameters . . . . . . . . . . . . . . . 7
skipping to change at page 4, line 31 skipping to change at page 4, line 46
"kid" : h'11', "kid" : h'11',
"crv" : "P-256", "crv" : "P-256",
"x" : h'BAC5B11CAD8F99F9C72B05CF4B9E26D24 "x" : h'BAC5B11CAD8F99F9C72B05CF4B9E26D24
4DC189F745228255A219A86D6A09EFF', 4DC189F745228255A219A86D6A09EFF',
"y" : h'20138BF82DC1B6D562BE0FA54AB7804A3 "y" : h'20138BF82DC1B6D562BE0FA54AB7804A3
A64B6D72CCFED6B6FB6ED28BBFC117E' A64B6D72CCFED6B6FB6ED28BBFC117E'
} }
} }
} }
Figure 1: Example request for an access token bound to an asymmetric Figure 1: Example request for an access token bound to an
key. asymmetric key.
3.2. AS-to-Client Response 3.2. AS-to-Client Response
This section defines the following additional parameters for an AS This section defines the following additional parameters for an AS
response to a request to the token endpoint: response to a request to the token endpoint:
cnf cnf
REQUIRED if the token type is "pop" and a symmetric key is used. REQUIRED if the token type is "pop" and a symmetric key is used.
MAY be present for asymmetric proof-of-possession keys. This MAY be present for asymmetric proof-of-possession keys. This
field contains the proof-of-possession key that the AS selected field contains the proof-of-possession key that the AS selected
skipping to change at page 5, line 35 skipping to change at page 5, line 47
"cnf" : { "cnf" : {
"COSE_Key" : { "COSE_Key" : {
"kty" : "Symmetric", "kty" : "Symmetric",
"kid" : h'DFD1AA97', "kid" : h'DFD1AA97',
"k" : h'849B5786457C1491BE3A76DCEA6C427108' "k" : h'849B5786457C1491BE3A76DCEA6C427108'
} }
} }
} }
Figure 2: Example AS response with an access token bound to a Figure 2: Example AS response with an access token bound to a
symmetric key. symmetric key.
Figure 3 shows an AS response containing a token bound to a Figure 3 shows an AS response containing a token bound to a
previously requested asymmetric proof-of-possession key (not shown) previously requested asymmetric proof-of-possession key (not shown)
and a "rs_cnf" parameter containing the public key of the RS. and a "rs_cnf" parameter containing the public key of the RS.
Header: Created (Code=2.01) Header: Created (Code=2.01)
Content-Format: "application/ace+cbor" Content-Format: "application/ace+cbor"
Payload: Payload:
{ {
"access_token" : h'D08343A1010AA1054D2A45DF6FBC5A5A ... "access_token" : h'D08343A1010AA1054D2A45DF6FBC5A5A ...
skipping to change at page 7, line 32 skipping to change at page 7, line 32
} }
} }
Figure 4: Example introspection response. Figure 4: Example introspection response.
5. Confirmation Method Parameters 5. Confirmation Method Parameters
The confirmation method parameters are used in The confirmation method parameters are used in
[I-D.ietf-ace-oauth-authz] as follows: [I-D.ietf-ace-oauth-authz] as follows:
o "req_cnf" in the access token request C -> AS, OPTIONAL to * "req_cnf" in the access token request C -> AS, OPTIONAL to
indicate the client's raw public key, or the key-identifier of a indicate the client's raw public key, or the key-identifier of a
previously established key between C and RS that the client wishes previously established key between C and RS that the client wishes
to use for proof-of-possession of the access token. to use for proof-of-possession of the access token.
o "cnf" in the token response AS -> C, OPTIONAL if using an * "cnf" in the token response AS -> C, OPTIONAL if using an
asymmetric key or a key that the client requested via a key asymmetric key or a key that the client requested via a key
identifier in the request. REQUIRED if the client didn't specify identifier in the request. REQUIRED if the client didn't specify
a "req_cnf" and symmetric keys are used. Used to indicate the a "req_cnf" and symmetric keys are used. Used to indicate the
symmetric key generated by the AS for proof-of-possession of the symmetric key generated by the AS for proof-of-possession of the
access token. access token.
o "cnf" in the introspection response AS -> RS, REQUIRED if the * "cnf" in the introspection response AS -> RS, REQUIRED if the
access token that was subject to introspection is a proof-of- access token that was subject to introspection is a proof-of-
possession token, absent otherwise. Indicates the proof-of- possession token, absent otherwise. Indicates the proof-of-
possession key bound to the access token. possession key bound to the access token.
o "rs_cnf" in the token response AS -> C, OPTIONAL to indicate the * "rs_cnf" in the token response AS -> C, OPTIONAL to indicate the
public key of the RS, if it uses one to authenticate itself to the public key of the RS, if it uses one to authenticate itself to the
client and the binding between key and RS identity is not client and the binding between key and RS identity is not
established through other means. established through other means.
Note that the COSE_Key structure in a confirmation claim or parameter Note that the COSE_Key structure in a confirmation claim or parameter
may contain an "alg" or "key_ops" parameter. If such parameters are may contain an "alg" or "key_ops" parameter. If such parameters are
present, a client MUST NOT use a key that is incompatible with the present, a client MUST NOT use a key that is incompatible with the
profile or proof-of-possession algorithm according to those profile or proof-of-possession algorithm according to those
parameters. An RS MUST reject a proof-of-possession using such a key parameters. An RS MUST reject a proof-of-possession using such a key
with a response code equivalent to the CoAP code 4.00 (Bad Request). with a response code equivalent to the CoAP code 4.00 (Bad Request).
skipping to change at page 8, line 34 skipping to change at page 8, line 34
/----------+----------+-------------------------------------\ /----------+----------+-------------------------------------\
| Name | CBOR Key | Value Type | Usage | | Name | CBOR Key | Value Type | Usage |
|----------+----------+-------------------------------------| |----------+----------+-------------------------------------|
| req_cnf | TBD (4) | map | token request | | req_cnf | TBD (4) | map | token request |
| cnf | TBD (8) | map | token response | | cnf | TBD (8) | map | token response |
| cnf | TBD (8) | map | introspection response | | cnf | TBD (8) | map | introspection response |
| rs_cnf | TBD (41) | map | token response | | rs_cnf | TBD (41) | map | token response |
\----------+----------+------------+------------------------/ \----------+----------+------------+------------------------/
Figure 5: CBOR mappings for new parameters and claims. Figure 5: CBOR mappings for new parameters and claims.
7. Requirements when using asymmetric keys 7. Requirements when using asymmetric keys
An RS using asymmetric keys to authenticate to the client MUST NOT An RS using asymmetric keys to authenticate to the client MUST NOT
hold several different asymmetric key pairs, applicable to the same hold several different asymmetric key pairs, applicable to the same
authentication algorithm. For example when using DTLS, the RS MUST authentication algorithm. For example when using DTLS, the RS MUST
NOT hold several asymmetric key pairs applicable to the same cipher NOT hold several asymmetric key pairs applicable to the same cipher
suite. The reason for this restriction is that the RS has no way of suite. The reason for this restriction is that the RS has no way of
determining which key to use before the client's identity is determining which key to use before the client's identity is
established. Therefore authentication attempts by the RS could established. Therefore authentication attempts by the RS could
skipping to change at page 9, line 17 skipping to change at page 9, line 17
This document is an extension to [I-D.ietf-ace-oauth-authz]. All This document is an extension to [I-D.ietf-ace-oauth-authz]. All
privacy considerations from that document apply here as well. privacy considerations from that document apply here as well.
10. IANA Considerations 10. IANA Considerations
10.1. OAuth Parameter Registration 10.1. OAuth Parameter Registration
This section registers the following parameters in the "OAuth This section registers the following parameters in the "OAuth
Parameters" registry [IANA.OAuthParameters]: Parameters" registry [IANA.OAuthParameters]:
o Name: "req_cnf" * Name: "req_cnf"
o Parameter Usage Location: token request * Parameter Usage Location: token request
o Change Controller: IESG * Change Controller: IETF
o Reference: Section 5 of [this document] * Reference: Section 5 of [this document]
o Name: "rs_cnf" * Name: "rs_cnf"
o Parameter Usage Location: token response * Parameter Usage Location: token response
o Change Controller: IESG * Change Controller: IETF
o Reference: Section 5 of [this document] * Reference: Section 5 of [this document]
o Name: "cnf" * Name: "cnf"
o Parameter Usage Location: token response * Parameter Usage Location: token response
o Change Controller: IESG * Change Controller: IETF
o Reference: Section 5 of [this document] * Reference: Section 5 of [this document]
10.2. OAuth Parameters CBOR Mappings Registration 10.2. OAuth Parameters CBOR Mappings Registration
This section registers the following parameter mappings in the "OAuth This section registers the following parameter mappings in the "OAuth
Parameters CBOR Mappings" registry established in section 8.9. of Parameters CBOR Mappings" registry established in section 8.9. of
[I-D.ietf-ace-oauth-authz]. [I-D.ietf-ace-oauth-authz].
o Name: "req_cnf" * Name: "req_cnf"
o CBOR key: TBD (suggested: 4) * CBOR key: TBD (suggested: 4)
o Change Controller: IESG * Value Type: map
o Reference: Section 3.1 of [this document] * Reference: Section 3.1 of [this document]
* Original specification: [this document]
o Name: "cnf" * Name: "cnf"
o CBOR key: TBD (suggested: 8) * CBOR key: TBD (suggested: 8)
o Change Controller: IESG * Value Type: map
o Reference: Section 3.2 of [this document] * Reference: Section 3.2 of [this document]
* Original specification: [this document]
o Name: "rs_cnf" * Name: "rs_cnf"
o CBOR key: TBD (suggested: 41) * CBOR key: TBD (suggested: 41)
o Change Controller: IESG * Value Type: map
o Reference: Section 3.2 of [this document] * Reference: Section 3.2 of [this document]
* Original specification: [this document]
10.3. OAuth Token Introspection Response CBOR Mappings Registration 10.3. OAuth Token Introspection Response CBOR Mappings Registration
This section registers the following parameter mapping in the "OAuth This section registers the following parameter mapping in the "OAuth
Token Introspection Response CBOR Mappings" registry established in Token Introspection Response CBOR Mappings" registry established in
section 8.11. of [I-D.ietf-ace-oauth-authz]. section 8.11. of [I-D.ietf-ace-oauth-authz].
o Name: "cnf" * Name: "cnf"
o CBOR key: TBD (suggested: 8) * CBOR key: TBD (suggested: 8)
o Change Controller: IESG * Value Type: map
o Reference: Section 4 of [this document] * Reference: Section 4 of [this document]
* Original specification: [RFC8705]
11. Acknowledgments 11. Acknowledgments
This document is a product of the ACE working group of the IETF. This document is a product of the ACE working group of the IETF.
Special thanks to Brian Campbell for his thorough review of this Special thanks to Brian Campbell for his thorough review of this
document. document.
Ludwig Seitz worked on this document as part of the CelticNext Ludwig Seitz worked on this document as part of the CelticNext
projects CyberWI, and CRITISEC with funding from Vinnova. projects CyberWI, and CRITISEC with funding from Vinnova.
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-ace-oauth-authz] [I-D.ietf-ace-oauth-authz]
Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and
H. Tschofenig, "Authentication and Authorization for H. Tschofenig, "Authentication and Authorization for
Constrained Environments (ACE) using the OAuth 2.0 Constrained Environments (ACE) using the OAuth 2.0
Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-40 Framework (ACE-OAuth)", Work in Progress, Internet-Draft,
(work in progress), April 2021. draft-ietf-ace-oauth-authz-45, 29 August 2021,
<https://www.ietf.org/archive/id/draft-ietf-ace-oauth-
authz-45.txt>.
[IANA.OAuthParameters] [IANA.OAuthParameters]
IANA, "OAuth Parameters", IANA, "OAuth Parameters",
<https://www.iana.org/assignments/oauth-parameters/oauth- <https://www.iana.org/assignments/oauth-parameters/oauth-
parameters.xhtml#parameters>. parameters.xhtml#parameters>.
[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,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 12, line 6 skipping to change at page 12, line 6
12.2. Informative References 12.2. Informative References
[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,
DOI 10.17487/RFC7252, June 2014, DOI 10.17487/RFC7252, June 2014,
<https://www.rfc-editor.org/info/rfc7252>. <https://www.rfc-editor.org/info/rfc7252>.
Author's Address Author's Address
Ludwig Seitz Ludwig Seitz
Combitech Combitech
Djaeknegatan 31 Djäknegatan 31
Malmoe 211 35 SE-211 35 Malmö
Sweden Sweden
Email: ludwig.seitz@combitech.com Email: ludwig.seitz@combitech.com
 End of changes. 20 change blocks. 
52 lines changed or deleted 57 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/