draft-ietf-ace-oauth-params-00.txt   draft-ietf-ace-oauth-params-01.txt 
ACE Working Group L. Seitz ACE Working Group L. Seitz
Internet-Draft RISE Internet-Draft RISE
Intended status: Standards Track September 18, 2018 Intended status: Standards Track November 26, 2018
Expires: March 22, 2019 Expires: May 30, 2019
Additional OAuth Parameters for Authorization in Constrained Additional OAuth Parameters for Authorization in Constrained
Environments (ACE) Environments (ACE)
draft-ietf-ace-oauth-params-00 draft-ietf-ace-oauth-params-01
Abstract Abstract
This specification defines new parameters for the OAuth 2.0 token and This specification defines new parameters for the OAuth 2.0 token and
introspection endpoints when used with framework for authentication introspection endpoints when used with framework for authentication
and authorization for constrained environments (ACE). These are used and authorization for constrained environments (ACE). These are used
to express the desired audience of a requested access token, the to express the desired audience of a requested access token, the
desired proof-of-possession key, the proof-of-possession key that the desired proof-of-possession key, the proof-of-possession key that the
AS has selected, and the key the RS should use to authenticate to the AS has selected, and the key the RS should use to authenticate to the
client. 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 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 March 22, 2019. This Internet-Draft will expire on May 30, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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
skipping to change at page 2, line 14 skipping to change at page 2, line 14
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
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 . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
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 . . . . . . . . . . . . . . . . . . 3 3.2. AS-to-Client Response . . . . . . . . . . . . . . . . . . 4
4. Parameters for the Introspection Endpoint . . . . . . . . . . 4 3.3. The Resource Server Confirmation Claim . . . . . . . . . 6
4.1. AS-to-RS Response . . . . . . . . . . . . . . . . . . . . 4 4. Parameters for the Introspection Endpoint . . . . . . . . . . 6
5. Confirmation Method Parameters . . . . . . . . . . . . . . . 4 4.1. AS-to-RS Response . . . . . . . . . . . . . . . . . . . . 6
6. CBOR Mappings . . . . . . . . . . . . . . . . . . . . . . . . 5 5. Confirmation Method Parameters . . . . . . . . . . . . . . . 7
7. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6. CBOR Mappings . . . . . . . . . . . . . . . . . . . . . . . . 8
8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 5 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9
9.1. OAuth Parameter Registration . . . . . . . . . . . . . . 6 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
9.2. OAuth Introspection Response Parameter Registration . . . 6 9.1. JSON Web Token Claims . . . . . . . . . . . . . . . . . . 9
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 9.2. CBOR Web Token Claims . . . . . . . . . . . . . . . . . . 9
11. Normative References . . . . . . . . . . . . . . . . . . . . 7 9.3. OAuth Parameter Registration . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 9.4. OAuth Introspection Response Parameter Registration . . . 10
9.5. Token Endpoint CBOR Mappings Registraton . . . . . . . . 11
9.6. Introspection Endpoint CBOR Mappings Registraton . . . . 11
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
11.1. Normative References . . . . . . . . . . . . . . . . . . 12
11.2. Informative References . . . . . . . . . . . . . . . . . 13
Appendix A. Overlap with OAuth work . . . . . . . . . . . . . . 13
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
The Authorization for the Internet of Things specification The Authentication and Authorization for Constrained Environments
[I-D.ietf-ace-oauth-authz] requires some new parameters for requests (ACE) specification [I-D.ietf-ace-oauth-authz] requires some new
and responses to the OAuth 2.0 [RFC6749] token and introspection parameters for interactions with the OAuth 2.0 [RFC6749] token and
endpoints, as well as some new claims to be used in access tokens. introspection endpoints, as well as some new claims to be used in
This document specifies these new parameters and claims separately access tokens. These parameters and claims can also be used in other
from the framework, so they can be used and updated independently. contexts, and may need to be updated to align them with ongoing OAuth
work. Therefore they have been split out into this document, which
can be used and updated independently of [I-D.ietf-ace-oauth-authz].
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
Readers are assumed to be familiar with the terminology from Readers are assumed to be familiar with the terminology from
skipping to change at page 3, line 23 skipping to change at page 3, line 32
[I-D.ietf-ace-oauth-authz]: [I-D.ietf-ace-oauth-authz]:
req_aud req_aud
OPTIONAL. Specifies the audience for which the client is OPTIONAL. Specifies the audience for which the client is
requesting an access token. If this parameter is missing, it is requesting an access token. If this parameter is missing, it is
assumed that the AS has a default audience for access tokens assumed that the AS has a default audience for access tokens
issued to this client. If a client submits a request for an issued to this client. If a client submits a request for an
access token without specifying a "req_aud" parameter, and the AS access token without specifying a "req_aud" parameter, and the AS
does not have a default audience value for this client, then the does not have a default audience value for this client, then the
AS MUST respond with an error message using a response code AS MUST respond with an error message using a response code
equivalent to the CoAP response code 4.00 (Bad Request). equivalent to the CoAP response code 4.00 (Bad Request). Values
of this parameter follow the syntax of the "aud" claim from
section 3.1.3 of [RFC8392].
req_cnf req_cnf
OPTIONAL. This field contains information about the key the OPTIONAL. This field contains information about the key the
client would like to bind to the access token for proof-of- client would like to bind to the access token for proof-of-
possession. It is RECOMMENDED that an AS reject a request possession. It is RECOMMENDED that an AS reject a request
containing a symmetric key value in the 'req_cnf' field, since the containing a symmetric key value in the 'req_cnf' field, since the
AS is expected to be able to generate better symmetric keys than a AS is expected to be able to generate better symmetric keys than a
potentially constrained client. See Section 5 for more details on potentially constrained client. The AS MUST verify that the
the use of this parameter. client really is in possession of the corresponding key. Values
of this parameter follow the syntax of the "cnf" claim from
section 3.1 of [I-D.ietf-ace-cwt-proof-of-possession].
Figure 1 shows a request for an access token using the "req_aud"
parameter to request a specific audience and the "req_cnf" parameter
to request a specific public key as proof-of-possession key. The
content is displayed in CBOR diagnostic notation, without
abbreviations for better readability.
Header: POST (Code=0.02)
Uri-Host: "as.example.com"
Uri-Path: "token"
Content-Format: "application/ace+cbor"
Payload:
{
"req_aud" : "tempSensor4711",
"req_cnf" : {
"COSE_Key" : {
"kty" : "EC",
"kid" : h'11',
"crv" : "P-256",
"x" : b64'usWxHK2PmfnHKwXPS54m0kTcGJ90UiglWiGahtagnv8',
"y" : b64'IBOL+C3BttVivg+lSreASjpkttcsz+1rb7btKLv8EX4'
}
}
}
Figure 1: Example request for an access token bound to an asymmetric
key.
3.2. AS-to-Client Response 3.2. AS-to-Client Response
This document defines the following additional parameters for an AS This document 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
for the token. See Section 5 for details on the use of this for the token. Values of this parameter follow the syntax of the
parameter. "cnf" claim from section 3.1 of
[I-D.ietf-ace-cwt-proof-of-possession]. See Section 5 for details
on the use of this parameter.
rs_cnf rs_cnf
OPTIONAL if the token type is "pop" and asymmetric keys are used. OPTIONAL if the token type is "pop" and asymmetric keys are used.
MUST NOT be present otherwise. This field contains information MUST NOT be present otherwise. This field contains information
about the public key used by the RS to authenticate. If this about the public key used by the RS to authenticate. If this
parameter is absent, either the RS does not use a public key or parameter is absent, either the RS does not use a public key or
the AS assumes that the client already knows the public key of the the AS assumes that the client already knows the public key of the
RS. See Section 5 for details on the use of this parameter. RS. Values of this parameter follow the syntax of the "cnf" claim
from section 3.1 of [I-D.ietf-ace-cwt-proof-of-possession]. See
Section 5 for details on the use of this parameter.
Figure 2 shows an AS response containing a token and a "cnf"
parameter with a symmetric proof-of-possession key.
Header: Created (Code=2.01)
Content-Format: "application/ace+cbor"
Payload:
{
"access_token" : b64'SlAV32hkKG ...
(remainder of CWT omitted for brevity;
CWT contains COSE_Key in the "cnf" claim)',
"cnf" : {
"COSE_Key" : {
"kty" : "Symmetric",
"kid" : b64'39Gqlw',
"k" : b64'hJtXhkV8FJG+Onbc6mxCcQh'
}
}
}
Figure 2: Example AS response with an access token bound to a
symmetric key.
Figure 3 shows an AS response containing a token bound to a
previously requested asymmetric proof-of-possession key (not shown)
and a "rs_cnf" parameter containing the public key of the RS.
Header: Created (Code=2.01)
Content-Format: "application/ace+cbor"
Payload:
{
"access_token" : b64'SlAV32hkKG ...
(remainder of CWT omitted for brevity;
CWT contains COSE_Key in the "cnf" claim)',
"rs_cnf" : {
"COSE_Key" : {
"kty" : "EC",
"kid" : h'12',
"crv" : "P-256",
"x" : b64'vO5+qsFi+R5vMw9XcSEeIguLVGyWWJsKxK0P0kx34fE',
"y" : b64'xkezjFXvu8TmLmUXIPAC1ddbLgwCzRMm5mK8oiK5BBY'
}
}
}
Figure 3: Example AS response with an access token bound to a
symmetric key.
3.3. The Resource Server Confirmation Claim
If the AS needs to convey a hint to the RS about which key it should
use to authenticate towards the client, this specification defines
the "rs_cnf" claim, which MAY be used in the access token, with the
same syntax and semantics as defined in for the "rs_cnf" parameter.
4. Parameters for the Introspection Endpoint 4. Parameters for the Introspection Endpoint
4.1. AS-to-RS Response 4.1. AS-to-RS Response
This document defines the following additional parameters for an AS This document defines the following additional parameters for an AS
response to a request to the introspection endpoint: response to a request to the introspection endpoint:
cnf cnf
OPTIONAL. This field contains information about the proof-of- OPTIONAL. This field contains information about the proof-of-
possession key that binds the client to the access token. See possession key that binds the client to the access token. Values
of this parameter follow the syntax of the "cnf" claim from
section 3.1 of [I-D.ietf-ace-cwt-proof-of-possession]. See
Section 5 for more details on the use of the "cnf" parameter. Section 5 for more details on the use of the "cnf" parameter.
rs_cnf rs_cnf
OPTIONAL. If the RS has several keys it can use to authenticate OPTIONAL. If the RS uses asymmetric keys to authenticate towards
towards the client, the AS can give the RS a hint using this the client (e.g. with a DTLS-RPK handshake) and it has several
parameter, as to which key it should use (e.g., if the AS such keys (e.g. for different elliptic curves), the AS can give
previously informed the client about a public key the RS is the RS a hint using this parameter, as to which key it should use.
holding). See Section 5 for more details on the use of this Values of this parameter follow the syntax of the "cnf" claim from
parameter. section 3.1 of [I-D.ietf-ace-cwt-proof-of-possession]. See
Section 5 for details on the use of this parameter.
Figure 4 shows an AS response to an introspection request including
the "cnf" parameter to indicate the proof-of-possession key bound to
the token and the "rs_cnf" parameter to indicate the key the RS is
supposed to use to authenticate to the client.
Header: Created Code=2.01)
Content-Format: "application/ace+cbor"
Payload:
{
"active" : true,
"scope" : "read",
"aud" : "tempSensor4711",
"cnf" : {
"COSE_Key" : {
"kty" : "EC",
"kid" : h'11',
"crv" : "P-256",
"x" : b64'usWxHK2PmfnHKwXPS54m0kTcGJ90UiglWiGahtagnv8',
"y" : b64'IBOL+C3BttVivg+lSreASjpkttcsz+1rb7btKLv8EX4'
}
},
"rs_cnf" : {
"COSE_Key" : {
"kty" : "EC",
"kid" : h'12',
"crv" : "P-256",
"x" : b64'vO5+qsFi+R5vMw9XcSEeIguLVGyWWJsKxK0P0kx34fE',
"y" : b64'xkezjFXvu8TmLmUXIPAC1ddbLgwCzRMm5mK8oiK5BBY'
}
}
}
Figure 4: Example introspection response.
5. Confirmation Method Parameters 5. Confirmation Method Parameters
The confirmation method parameters are used as follows: The confirmation method parameters are used as follows:
o "req_cnf" in the token request C -> AS, OPTIONAL to indicate the o "req_cnf" in the access token request C -> AS, OPTIONAL to
client's raw public key, or the key-identifier of a previously indicate the client's raw public key, or the key-identifier of a
established key between C and RS that the client wishes to use for previously established key between C and RS that the client wishes
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 o "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 o "cnf" in the introspection response AS -> RS, REQUIRED if the
token that was subject to introspection is a proof-of-possession access token that was subject to introspection is a proof-of-
token, absent otherwise. Indicates the proof-of-possession key possession token, absent otherwise. Indicates the proof-of-
bound to the token. possession key bound to the access token.
o "rs_cnf" in the token response AS -> C, OPTIONAL to indicate the
public key of the RS if it has one.
o "rs_cnf" in the introspection response AS -> RS, OPTIONAL to
indicate to the RS which asymmetric key pair to use for
authenticating to the client if the RS has several public keys.
All confirmation parameters use the same formatting and semantics as o "rs_cnf" in the token response AS -> C, OPTIONAL to indicate the
the "cnf" claim specified in [I-D.ietf-ace-cwt-proof-of-possession] public key of the RS, if it uses one to authenticate to the
when used with a CBOR encoding. When these parameters are used with client.
a JSON encoding, the formatting and semantics of the "cnf" claim o "rs_cnf" in the introspection response AS -> RS, OPTIONAL,
specified in [RFC7800] is used. contains the public key that the RS should use for authenticating
to the client (e.g. if the RS has several different public keys).
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 not compatible with the present, a client MUST NOT use a key that is not compatible 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 parameters. An RS MUST reject a proof-of-possession using such a
key. key.
If an access token is issued for an audience that includes several If an access token is issued for an audience that includes several
RS, the "rs_cnf" parameter MUST NOT be used, since the client cannot RS, the "rs_cnf" parameter MUST NOT be used, since the client cannot
determine for which RS the key applies. This document recommends to determine for which RS the key applies. This document recommends to
specify a different endpoint that the client can use to acquire RS specify a different endpoint that the client can use to acquire RS
authentication keys in such cases. The specification of such an authentication keys in such cases. The specification of such an
endpoint is out of scope for this document. endpoint is out of scope for this document.
6. CBOR Mappings 6. CBOR Mappings
If CBOR is used, the new parameters and claims defined in this If CBOR is used, the new parameters and claims defined in this
document MUST be mapped to CBOR types as specified in Figure 1, using document MUST be mapped to CBOR types as specified in Figure 5, using
the given integer abbreviation for the map key. the given integer abbreviation for the map key.
/-----------------+----------+----------------------------------\ /-----------------+----------+----------------------------------\
| Parameter name | CBOR Key | Value Type | | Parameter name | CBOR Key | Value Type |
|-----------------+----------+----------------------------------| |-----------------+----------+----------------------------------|
| req_aud | 3 | text string |
| cnf | 8 | map | | cnf | 8 | map |
| rs_cnf | 17 | map | | rs_cnf | 11 | map |
| req_aud | 18 | text string | | req_cnf | 12 | map |
| req_cnf | 19 | map |
\-----------------+----------+----------------------------------/ \-----------------+----------+----------------------------------/
Figure 1: CBOR mappings for new parameters. Figure 5: CBOR mappings for new parameters.
7. Security Considerations 7. Security Considerations
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
security considerations from that document apply here as well. security considerations from that document apply here as well.
The audience claim as defined in [RFC7519] and the equivalent
"req_aud" parameter are intentionally vague on how to match the
audience value to a specific RS. This is intended to allow
application specific semantics to be used. This section attempts to
give some general guidance for the use of audiences in constrained
environments.
URLs are not a good way of identifying mobile devices that can switch
networks and thus be associated with new URLs. If the audience
represents a single RS, and asymmetric keys are used, the RS can be
uniquely identified by a hash of its public key. If this approach is
used this framework RECOMMENDS to apply the procedure from section 3
of [RFC6920].
If the audience addresses a group of resource servers, the mapping of
group identifier to individual RS has to be provisioned to each RS
before the group-audience is usable. Managing dynamic groups could
be an issue, if the RS is not always reachable when the group
memberships change. Furthermore issuing access tokens bound to
symmetric proof-of-possession keys that apply to a group-audience is
problematic, as an RS that is in possession of the access token can
impersonate the client towards the other RSs that are part of the
group. It is therefore NOT RECOMMENDED to issue access tokens bound
to a group audience and symmetric proof-of possession keys.
8. Privacy Considerations 8. Privacy Considerations
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.
9. IANA Considerations 9. IANA Considerations
9.1. OAuth Parameter Registration 9.1. JSON Web Token Claims
This specification registers the following new claim in the JSON Web
Token (JWT) registry of JSON Web Token Claims
[IANA.JsonWebTokenClaims]:
o Claim Name: "rs_cnf"
o Claim Description: The public key the RS is supposed to use to
authenticate to the client wielding this token.
o Change Controller: IESG
o Reference: Section 3.3 of [this document]
9.2. CBOR Web Token Claims
This specification registers the following new claim in the "CBOR Web
Token (CWT) Claims" registry [IANA.CborWebTokenClaims].
o Claim Name: "rs_cnf"
o Claim Description: The public key the RS is supposed to use to
authenticate to the client wielding this token.
o JWT Claim Name: N/A
o Claim Key: TBD (suggested: 39)
o Claim Value Type(s): map
o Change Controller: IESG
o Specification Document(s): Section 3.3 of [this document]
9.3. 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_aud" o Name: "req_aud"
o Parameter Usage Location: authorization request, token request o Parameter Usage Location: authorization request, token request
o Change Controller: IESG o Change Controller: IESG
o Reference: Section 3.1 of [this document] o Reference: Section 3.1 of [this document]
o Name: "req_cnf" o Name: "req_cnf"
skipping to change at page 6, line 32 skipping to change at page 10, line 36
o Name: "rs_cnf" o Name: "rs_cnf"
o Parameter Usage Location: token response o Parameter Usage Location: token response
o Change Controller: IESG o Change Controller: IESG
o Reference: Section 5 of [this document] o Reference: Section 5 of [this document]
o Name: "cnf" o Name: "cnf"
o Parameter Usage Location: token response o Parameter Usage Location: token response
o Change Controller: IESG o Change Controller: IESG
o Reference: Section 5 of [this document] o Reference: Section 5 of [this document]
9.2. OAuth Introspection Response Parameter Registration 9.4. OAuth Introspection Response Parameter Registration
This section registers the following parameters in the OAuth Token This section registers the following parameters in the OAuth Token
Introspection Response registry [IANA.TokenIntrospectionResponse]. Introspection Response registry [IANA.TokenIntrospectionResponse].
o Name: "cnf" o Name: "cnf"
o Description: Key to prove the right to use a PoP token. o Description: Key to prove the right to use a PoP token.
o Change Controller: IESG o Change Controller: IESG
o Reference: Section 4.1 of [this document] o Reference: Section 4.1 of [this document]
o Name: "rs_cnf" o Name: "rs_cnf"
o Description: The key the RS should use to authenticate to the o Description: The key the RS should use to authenticate to the
client. client.
o Change Controller: IESG o Change Controller: IESG
o Reference: Section 4.1 of [this document] o Reference: Section 4.1 of [this document]
9.5. Token Endpoint CBOR Mappings Registraton
This section registers teh following parameter mappings in the "Token
Endpoint CBOR Mappings" registry established in section 8.9. of
[I-D.ietf-ace-oauth-authz].
o Name: "req_aud"
o CBOR key: 18
o Change Controller: IESG
o Reference: Section 3.1 of [this document]
o Name: "req_cnf"
o CBOR key: 19
o Change Controller: IESG
o Reference: Section 3.1 of [this document]
o Name: "cnf"
o CBOR key: 8
o Change Controller: IESG
o Reference: Section 3.2 of [this document]
o Name: "rs_cnf"
o CBOR key: 17
o Change Controller: IESG
o Reference: Section 3.2 of [this document]
9.6. Introspection Endpoint CBOR Mappings Registraton
This section registers teh following parameter mappings in the
"Introspection Endpoint CBOR Mappings" registry established in
section 8.11. of [I-D.ietf-ace-oauth-authz].
o Name: "cnf"
o CBOR key: 8
o Change Controller: IESG
o Reference: Section 4.1 of [this document]
o Name: "rs_cnf"
o CBOR key: 17
o Change Controller: IESG
o Reference: Section 4.1 of [this document]
10. Acknowledgments 10. 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.
Ludwig Seitz worked on this document as part of the CelticPlus Ludwig Seitz worked on this document as part of the CelticPlus
project CyberWI, with funding from Vinnova. project CyberWI, with funding from Vinnova.
11. Normative References 11. References
11.1. Normative References
[I-D.ietf-ace-cwt-proof-of-possession] [I-D.ietf-ace-cwt-proof-of-possession]
Jones, M., Seitz, L., Selander, G., Erdtman, S., and H. Jones, M., Seitz, L., Selander, G., Erdtman, S., and H.
Tschofenig, "Proof-of-Possession Key Semantics for CBOR Tschofenig, "Proof-of-Possession Key Semantics for CBOR
Web Tokens (CWTs)", draft-ietf-ace-cwt-proof-of- Web Tokens (CWTs)", draft-ietf-ace-cwt-proof-of-
possession-03 (work in progress), June 2018. possession-05 (work in progress), November 2018.
[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-13 Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-16
(work in progress), July 2018. (work in progress), October 2018.
[IANA.CborWebTokenClaims]
IANA, "CBOR Web Token (CWT) Claims",
<https://www.iana.org/assignments/cwt/cwt.xhtml#claims-
registry>.
[IANA.JsonWebTokenClaims]
IANA, "JSON Web Token Claims",
<https://www.iana.org/assignments/jwt/jwt.xhtml#claims>.
[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>.
[IANA.TokenIntrospectionResponse] [IANA.TokenIntrospectionResponse]
IANA, "OAuth Token Introspection Response", IANA, "OAuth Token Introspection Response",
<https://www.iana.org/assignments/oauth-parameters/oauth- <https://www.iana.org/assignments/oauth-parameters/oauth-
parameters.xhtml#token-introspection-response>. parameters.xhtml#token-introspection-response>.
[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, <https://www.rfc- DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
editor.org/info/rfc2119>. editor.org/info/rfc2119>.
[RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework",
RFC 6749, DOI 10.17487/RFC6749, October 2012, RFC 6749, DOI 10.17487/RFC6749, October 2012,
<https://www.rfc-editor.org/info/rfc6749>. <https://www.rfc-editor.org/info/rfc6749>.
[RFC6920] Farrell, S., Kutscher, D., Dannewitz, C., Ohlman, B.,
Keranen, A., and P. Hallam-Baker, "Naming Things with
Hashes", RFC 6920, DOI 10.17487/RFC6920, April 2013,
<https://www.rfc-editor.org/info/rfc6920>.
[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, <https://www.rfc- DOI 10.17487/RFC7252, June 2014, <https://www.rfc-
editor.org/info/rfc7252>. editor.org/info/rfc7252>.
[RFC7800] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of-
Possession Key Semantics for JSON Web Tokens (JWTs)",
RFC 7800, DOI 10.17487/RFC7800, April 2016,
<https://www.rfc-editor.org/info/rfc7800>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig,
"CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392,
May 2018, <https://www.rfc-editor.org/info/rfc8392>.
11.2. Informative References
[I-D.ietf-oauth-pop-key-distribution]
Bradley, J., Hunt, P., Jones, M., Tschofenig, H., and M.
Mihaly, "OAuth 2.0 Proof-of-Possession: Authorization
Server to Client Key Distribution", draft-ietf-oauth-pop-
key-distribution-04 (work in progress), October 2018.
[I-D.ietf-oauth-resource-indicators]
Campbell, B., Bradley, J., and H. Tschofenig, "Resource
Indicators for OAuth 2.0", draft-ietf-oauth-resource-
indicators-01 (work in progress), October 2018.
[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
<https://www.rfc-editor.org/info/rfc7519>.
Appendix A. Overlap with OAuth work
This document overlaps with draft work from OAuth, namely
[I-D.ietf-oauth-pop-key-distribution] and
[I-D.ietf-oauth-resource-indicators].
The former specifies the use of "req_cnf" and "cnf" for requesting
proof-of-possession tokens and indicating the key that the AS has
selected. It it was initially deemed that the work at OAuth had been
discontinued and therefore equivalent functionality was defined here.
Work in OAuth has since resumed, but it is lagging behind the planned
milestones of the ACE working group. We have therefore split this
work out into a separate document so that it can later be updated or
obsoleted to align it with the final result of the OAuth work,
without affecting [I-D.ietf-ace-oauth-authz].
The latter defines the use of the "resource" parameter, allowing to
indicate the location fo the target service or resource where access
is being requested. This partially overlaps with the "req_aud"
parameter specified here, however the definition of "req_aud" is more
broad, since it can be used in an application specific way that is
not necessarily bound to the location of the target audience (e.g. a
group identifier referring to several resource servers, or the public
key of a resource server).
Author's Address Author's Address
Ludwig Seitz Ludwig Seitz
RISE RISE
Scheelevaegen 17 Scheelevaegen 17
Lund 223 70 Lund 223 70
Sweden Sweden
Email: ludwig.seitz@ri.se Email: ludwig.seitz@ri.se
 End of changes. 28 change blocks. 
69 lines changed or deleted 352 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/