idnits 2.17.1 draft-ietf-oauth-amr-values-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (January 24, 2017) is 2649 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 OAuth Working Group M. Jones 3 Internet-Draft Microsoft 4 Intended status: Standards Track P. Hunt 5 Expires: July 28, 2017 Oracle 6 A. Nadalin 7 Microsoft 8 January 24, 2017 10 Authentication Method Reference Values 11 draft-ietf-oauth-amr-values-05 13 Abstract 15 The "amr" (Authentication Methods References) claim is defined and 16 registered in the IANA "JSON Web Token Claims" registry but no 17 standard Authentication Method Reference values are currently 18 defined. This specification establishes a registry for 19 Authentication Method Reference values and defines an initial set of 20 Authentication Method Reference values. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at http://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on July 28, 2017. 39 Copyright Notice 41 Copyright (c) 2017 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 1.1. Requirements Notation and Conventions . . . . . . . . . . 3 58 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 59 2. Authentication Method Reference Values . . . . . . . . . . . 3 60 3. Relationship to "acr" (Authentication Context Class 61 Reference) . . . . . . . . . . . . . . . . . . . . . . . . . 5 62 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 6 63 5. Security Considerations . . . . . . . . . . . . . . . . . . . 6 64 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 65 6.1. Authentication Method Reference Values Registry . . . . . 6 66 6.1.1. Registration Template . . . . . . . . . . . . . . . . 7 67 6.1.2. Initial Registry Contents . . . . . . . . . . . . . . 8 68 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 69 7.1. Normative References . . . . . . . . . . . . . . . . . . 10 70 7.2. Informative References . . . . . . . . . . . . . . . . . 11 71 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 12 72 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 12 73 Appendix C. Document History . . . . . . . . . . . . . . . . . . 13 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 76 1. Introduction 78 The "amr" (Authentication Methods References) claim is defined and 79 registered in the IANA "JSON Web Token Claims" registry 80 [IANA.JWT.Claims] but no standard Authentication Method Reference 81 values are currently defined. This specification establishes a 82 registry for Authentication Method Reference values and defines an 83 initial set of Authentication Method Reference values. 85 For context, the "amr" (Authentication Methods References) claim is 86 defined by Section 2 of the OpenID Connect Core 1.0 specification 87 [OpenID.Core] as follows: 89 amr 90 OPTIONAL. Authentication Methods References. JSON array of 91 strings that are identifiers for authentication methods used in 92 the authentication. For instance, values might indicate that both 93 password and OTP authentication methods were used. The definition 94 of particular values to be used in the "amr" Claim is beyond the 95 scope of this specification. Parties using this claim will need 96 to agree upon the meanings of the values used, which may be 97 context-specific. The "amr" value is an array of case sensitive 98 strings. 100 The "amr" values defined by this specification is not intended to be 101 an exhaustive set covering all use cases. Additional values can and 102 will be added to the registry by other specifications. Rather, the 103 values defined herein are an intentionally small set that are already 104 actually being used in practice. 106 For context, while the claim values registered pertain to 107 authentication, note that OAuth 2.0 [RFC6749] is designed for 108 resource authorization and cannot be used for authentication without 109 employing appropriate extensions, such as those defined by OpenID 110 Connect Core 1.0 [OpenID.Core]. The existence of the "amr" claim and 111 values for it should not be taken as encouragement to try to use 112 OAuth 2.0 for authentication without employing extensions enabling 113 secure authentication to be performed. 115 When used with OpenID Connect, if the identity provider supplies an 116 "amr" claim in the ID Token resulting from a successful 117 authentication, the relying party can inspect the values returned and 118 thereby learn details about how the authentication was performed. 119 For instance, the relying party might learn that only a password was 120 used or it might learn that iris recognition was used in combination 121 with a hardware-secured key. Whether "amr" values are provided and 122 which values are understood by what parties are both beyond the scope 123 of this specification. The OpenID Connect MODRNA Authentication 124 Profile 1.0 [OpenID.MODRNA] is one example of an application context 125 that uses "amr" values defined by this specification. 127 1.1. Requirements Notation and Conventions 129 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 130 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 131 "OPTIONAL" in this document are to be interpreted as described in RFC 132 2119 [RFC2119]. 134 1.2. Terminology 136 This specification uses the terms defined by JSON Web Token (JWT) 137 [JWT] and OpenID Connect Core 1.0 [OpenID.Core]. 139 2. Authentication Method Reference Values 141 The following is a list of Authentication Method Reference values 142 defined by this specification: 144 face 145 Facial recognition 147 fpt 148 Fingerprint biometric 150 geo 151 Use of geolocation information 153 hwk 154 Proof-of-possession (PoP) of a hardware-secured key. See 155 Appendix C of [RFC4211] for a discussion on PoP. 157 iris 158 Iris scan biometric 160 kba 161 Knowledge-based authentication [NIST.800-63-2] [ISO29115] 163 mca 164 Multiple-channel authentication. The authentication involves 165 communication over more than one distinct communication channel. 166 For instance, a multiple-channel authentication might involve both 167 entering information into a workstation's browser and providing 168 information on a telephone call to a pre-registered number. 170 mfa 171 Multiple-factor authentication [NIST.800-63-2] [ISO29115]. When 172 this is present, specific authentication methods used may also be 173 included. 175 otp 176 One-time password. One-time password specifications that this 177 authentication method applies to include [RFC4226] and [RFC6238]. 179 pin 180 Personal Identification Number or pattern (not restricted to 181 containing only numbers) that a user enters to unlock a key on the 182 device. This mechanism should have a way to deter an attacker 183 from obtaining the PIN by trying repeated guesses. 185 pwd 186 Password-based authentication 188 rba 189 Risk-based authentication [JECM] 191 retina 192 Retina scan biometric 194 sc 195 Smart card 197 sms 198 Confirmation using SMS message to the user at a registered number 200 swk 201 Proof-of-possession (PoP) of a software-secured key. See 202 Appendix C of [RFC4211] for a discussion on PoP. 204 tel 205 Confirmation by telephone call to the user at a registered number 207 user 208 User presence test 210 vbm 211 Voice biometric 213 wia 214 Windows integrated authentication, as described in [MSDN] 216 3. Relationship to "acr" (Authentication Context Class Reference) 218 The "acr" (Authentication Context Class Reference) claim and 219 "acr_values" request parameter are related to the "amr" 220 (Authentication Methods References) claim, but with important 221 differences. An Authentication Context Class specifies a set of 222 business rules that authentications are being requested to satisfy. 223 These rules can often be satisfied by using a number of different 224 specific authentication methods, either singly or in combination. 225 Interactions using "acr_values" request that the specified 226 Authentication Context Classes be used and that the result should 227 contain an "acr" claim saying which Authentication Context Class was 228 satisfied. The "acr" claim in the reply states that the business 229 rules for the class were satisfied -- not how they were satisfied. 231 In contrast, interactions using the "amr" claim make statements about 232 the particular authentication methods that were used. This tends to 233 be more brittle than using "acr", since the authentication methods 234 that may be appropriate for a given authentication will vary over 235 time, both because of the evolution of attacks on existing methods 236 and the deployment of new authentication methods. 238 4. Privacy Considerations 240 The list of "amr" claim values returned in an ID Token reveals 241 information about the way that the end-user authenticated to the 242 identity provider. In some cases, this information may have privacy 243 implications. 245 While this specification defines identifiers for particular kinds of 246 credentials, it does not define how these credentials are stored or 247 protected. For instance, ensuring the security and privacy of 248 biometric credentials that are referenced by some of the defined 249 Authentication Method Reference values is beyond the scope of this 250 specification. 252 5. Security Considerations 254 The security considerations in OpenID Connect Core 1.0 [OpenID.Core] 255 and OAuth 2.0 [RFC6749] and the OAuth 2.0 Threat Model [RFC6819] 256 apply to applications using this specification. 258 As described in Section 3, taking a dependence upon particular 259 authentication methods may result in brittle systems, since the 260 authentication methods that may be appropriate for a given 261 authentication will vary over time. 263 6. IANA Considerations 265 6.1. Authentication Method Reference Values Registry 267 This specification establishes the IANA "Authentication Method 268 Reference Values" registry for "amr" claim array element values. The 269 registry records the Authentication Method Reference value and a 270 reference to the specification that defines it. This specification 271 registers the Authentication Method Reference values defined in 272 Section 2. 274 To facilitate interoperability, the Designated Experts must either: 276 a. require that Authentication Method Reference values being 277 registered use only printable ASCII characters excluding double 278 quote ('"') and backslash ('\') (the Unicode characters with code 279 points U+0021, U+0023 through U+005B, and U+005D through U+007E), 280 or 282 b. if new Authentication Method Reference values are defined that 283 use other code points, require that their definitions specify the 284 exact Unicode code point sequences used to represent them. 285 Furthermore, proposed registrations that use Unicode code points 286 that can only be represented in JSON strings as escaped 287 characters must not be accepted. 289 Values are registered on an Expert Review [RFC5226] basis after a 290 three-week review period on the jwt-reg-review@ietf.org mailing list, 291 on the advice of one or more Designated Experts. To increase 292 potential interoperability, the experts are requested to encourage 293 registrants to provide the location of a publicly-accessible 294 specification defining the values being registered, so that their 295 intended usage can be more easily understood. 297 Registration requests sent to the mailing list for review should use 298 an appropriate subject (e.g., "Request to register Authentication 299 Method Reference value: otp"). 301 Within the review period, the Designated Experts will either approve 302 or deny the registration request, communicating this decision to the 303 review list and IANA. Denials should include an explanation and, if 304 applicable, suggestions as to how to make the request successful. 305 Registration requests that are undetermined for a period longer than 306 21 days can be brought to the IESG's attention (using the 307 iesg@ietf.org mailing list) for resolution. 309 Criteria that should be applied by the Designated Experts includes 310 determining whether the proposed registration duplicates existing 311 functionality, whether it is likely to be of general applicability or 312 whether it is useful only for a single application, whether the value 313 is actually being used, and whether the registration description is 314 clear. 316 IANA must only accept registry updates from the Designated Experts 317 and should direct all requests for registration to the review mailing 318 list. 320 It is suggested that the same Designated Experts evaluate these 321 registration requests as those who evaluate registration requests for 322 the IANA "JSON Web Token Claims" registry [IANA.JWT.Claims]. 324 6.1.1. Registration Template 326 Authentication Method Reference Name: 327 The name requested (e.g., "otp"). Because a core goal of this 328 specification is for the resulting representations to be compact, 329 it is RECOMMENDED that the name be short -- that is, not to exceed 330 8 characters without a compelling reason to do so. This name is 331 case sensitive. Names may not match other registered names in a 332 case-insensitive manner unless the Designated Experts state that 333 there is a compelling reason to allow an exception. 335 Authentication Method Reference Description: 336 Brief description of the Authentication Method Reference (e.g., 337 "One-time password"). 339 Change Controller: 340 For Standards Track RFCs, state "IESG". For others, give the name 341 of the responsible party. Other details (e.g., postal address, 342 email address, home page URI) may also be included. 344 Specification Document(s): 345 Reference to the document or documents that specify the parameter, 346 preferably including URIs that can be used to retrieve copies of 347 the documents. An indication of the relevant sections may also be 348 included but is not required. 350 6.1.2. Initial Registry Contents 352 o Authentication Method Reference Name: "face" 353 o Authentication Method Reference Description: Facial recognition 354 o Change Controller: IESG 355 o Specification Document(s): Section 2 of [[ this specification ]] 357 o Authentication Method Reference Name: "fpt" 358 o Authentication Method Reference Description: Fingerprint biometric 359 o Change Controller: IESG 360 o Specification Document(s): Section 2 of [[ this specification ]] 362 o Authentication Method Reference Name: "geo" 363 o Authentication Method Reference Description: Geolocation 364 o Change Controller: IESG 365 o Specification Document(s): Section 2 of [[ this specification ]] 367 o Authentication Method Reference Name: "hwk" 368 o Authentication Method Reference Description: Proof-of-possession 369 of a hardware-secured key 370 o Change Controller: IESG 371 o Specification Document(s): Section 2 of [[ this specification ]] 373 o Authentication Method Reference Name: "iris" 374 o Authentication Method Reference Description: Iris scan biometric 375 o Change Controller: IESG 376 o Specification Document(s): Section 2 of [[ this specification ]] 378 o Authentication Method Reference Name: "kba" 379 o Authentication Method Reference Description: Knowledge-based 380 authentication 381 o Change Controller: IESG 382 o Specification Document(s): Section 2 of [[ this specification ]] 383 o Authentication Method Reference Name: "mca" 384 o Authentication Method Reference Description: Multiple-channel 385 authentication 386 o Change Controller: IESG 387 o Specification Document(s): Section 2 of [[ this specification ]] 389 o Authentication Method Reference Name: "mfa" 390 o Authentication Method Reference Description: Multiple-factor 391 authentication 392 o Change Controller: IESG 393 o Specification Document(s): Section 2 of [[ this specification ]] 395 o Authentication Method Reference Name: "otp" 396 o Authentication Method Reference Description: One-time password 397 o Change Controller: IESG 398 o Specification Document(s): Section 2 of [[ this specification ]] 400 o Authentication Method Reference Name: "pin" 401 o Authentication Method Reference Description: Personal 402 Identification Number or pattern 403 o Change Controller: IESG 404 o Specification Document(s): Section 2 of [[ this specification ]] 406 o Authentication Method Reference Name: "pwd" 407 o Authentication Method Reference Description: Password-based 408 authentication 409 o Change Controller: IESG 410 o Specification Document(s): Section 2 of [[ this specification ]] 412 o Authentication Method Reference Name: "rba" 413 o Authentication Method Reference Description: Risk-based 414 authentication 415 o Change Controller: IESG 416 o Specification Document(s): Section 2 of [[ this specification ]] 418 o Authentication Method Reference Name: "retina" 419 o Authentication Method Reference Description: Retina scan biometric 420 o Change Controller: IESG 421 o Specification Document(s): Section 2 of [[ this specification ]] 423 o Authentication Method Reference Name: "sc" 424 o Authentication Method Reference Description: Smart card 425 o Change Controller: IESG 426 o Specification Document(s): Section 2 of [[ this specification ]] 428 o Authentication Method Reference Name: "sms" 429 o Authentication Method Reference Description: Confirmation using 430 SMS 432 o Change Controller: IESG 433 o Specification Document(s): Section 2 of [[ this specification ]] 435 o Authentication Method Reference Name: "swk" 436 o Authentication Method Reference Description: Proof-of-possession 437 of a software-secured key 438 o Change Controller: IESG 439 o Specification Document(s): Section 2 of [[ this specification ]] 441 o Authentication Method Reference Name: "tel" 442 o Authentication Method Reference Description: Confirmation by 443 telephone call 444 o Change Controller: IESG 445 o Specification Document(s): Section 2 of [[ this specification ]] 447 o Authentication Method Reference Name: "user" 448 o Authentication Method Reference Description: User presence test 449 o Change Controller: IESG 450 o Specification Document(s): Section 2 of [[ this specification ]] 452 o Authentication Method Reference Name: "vbm" 453 o Authentication Method Reference Description: Voice biometric 454 o Change Controller: IESG 455 o Specification Document(s): Section 2 of [[ this specification ]] 457 o Authentication Method Reference Name: "wia" 458 o Authentication Method Reference Description: Windows integrated 459 authentication 460 o Change Controller: IESG 461 o Specification Document(s): Section 2 of [[ this specification ]] 463 7. References 465 7.1. Normative References 467 [IANA.JWT.Claims] 468 IANA, "JSON Web Token Claims", 469 . 471 [JWT] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token 472 (JWT)", RFC 7519, May 2015, 473 . 475 [OpenID.Core] 476 Sakimura, N., Bradley, J., Jones, M., de Medeiros, B., and 477 C. Mortimore, "OpenID Connect Core 1.0", November 2014, 478 . 480 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 481 Requirement Levels", BCP 14, RFC 2119, 482 DOI 10.17487/RFC2119, March 1997, 483 . 485 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 486 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 487 DOI 10.17487/RFC5226, May 2008, 488 . 490 [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", 491 RFC 6749, DOI 10.17487/RFC6749, October 2012, 492 . 494 7.2. Informative References 496 [ISO29115] 497 International Organization for Standardization, "ISO/IEC 498 29115:2013 -- Information technology - Security techniques 499 - Entity authentication assurance framework", ISO/ 500 IEC 29115:2013, April 2013, 501 . 504 [JECM] Williamson, G., "Enhanced Authentication In Online 505 Banking", Journal of Economic Crime Management 4.2: 18-19, 506 2006, 507 . 510 [MSDN] Microsoft, "Integrated Windows Authentication with 511 Negotiate", September 2011, 512 . 516 [NIST.800-63-2] 517 National Institute of Standards and Technology (NIST), 518 "Electronic Authentication Guideline", NIST Special 519 Publication 800-63-2, August 2013, 520 . 523 [OpenID.MODRNA] 524 Connotte, J. and J. Bradley, "OpenID Connect MODRNA 525 Authentication Profile 1.0", September 2016, 526 . 529 [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure 530 Certificate Request Message Format (CRMF)", RFC 4211, 531 DOI 10.17487/RFC4211, September 2005, 532 . 534 [RFC4226] M'Raihi, D., Bellare, M., Hoornaert, F., Naccache, D., and 535 O. Ranen, "HOTP: An HMAC-Based One-Time Password 536 Algorithm", RFC 4226, DOI 10.17487/RFC4226, December 2005, 537 . 539 [RFC6238] M'Raihi, D., Machani, S., Pei, M., and J. Rydell, "TOTP: 540 Time-Based One-Time Password Algorithm", RFC 6238, 541 DOI 10.17487/RFC6238, May 2011, 542 . 544 [RFC6819] Lodderstedt, T., Ed., McGloin, M., and P. Hunt, "OAuth 2.0 545 Threat Model and Security Considerations", RFC 6819, 546 DOI 10.17487/RFC6819, January 2013, 547 . 549 Appendix A. Examples 551 In some cases, the "amr" claim value returned may contain a single 552 Authentication Method Reference value. For example, the following 553 "amr" claim value indicates that the authentication performed used an 554 iris scan biometric: 556 "amr": ["iris"] 558 In other cases, the "amr" claim value returned may contain multiple 559 Authentication Method Reference values. For example, the following 560 "amr" claim value indicates that the authentication performed used a 561 password and knowledge-based authentication: 563 "amr": ["pwd", "kba"] 565 Appendix B. Acknowledgements 567 Caleb Baker participated in specifying the original set of "amr" 568 values. John Bradley, Brian Campbell, William Denniss, Linda Dunbar, 569 Paul Kyzivat, Elaine Newton, James Manger, Catherine Meadows, 570 Kathleen Moriarty, Nat Sakimura, and Mike Schwartz provided reviews 571 of the specification. 573 Appendix C. Document History 575 [[ to be removed by the RFC editor before publication as an RFC ]] 577 -05 579 o Specified characters allowed in "amr" values, reusing the IANA 580 Considerations language on this topic from RFC 7638. 582 -04 584 o Added examples with single and multiple values. 585 o Clarified that the actual credentials referenced are not part of 586 this specification to avoid additional privacy concerns for 587 biometric data. 588 o Clarified that the OAuth 2.0 Threat Model [RFC6819] applies to 589 applications using this specification. 591 -03 593 o Addressed shepherd comments. 595 -02 597 o Addressed working group last call comments. 599 -01 601 o Distinguished between retina and iris biometrics. 602 o Expanded the introduction to provide additional context to 603 readers. 604 o Referenced the OpenID Connect MODRNA Authentication Profile 1.0 605 specification, which uses "amr" values defined by this 606 specification. 608 -00 610 o Created the initial working group draft from draft-jones-oauth- 611 amr-values-05 with no normative changes. 613 Authors' Addresses 615 Michael B. Jones 616 Microsoft 618 Email: mbj@microsoft.com 619 URI: http://self-issued.info/ 620 Phil Hunt 621 Oracle 623 Email: phil.hunt@yahoo.com 625 Anthony Nadalin 626 Microsoft 628 Email: tonynad@microsoft.com