Looking at Roman’s question on LoA definitions. RFC6711 defined an IANA registry for ACR short names.
It might be worth referencing that. The registration is a bit SAML oriented but can be used for any protocol, including OIDC. John B. > On Feb 17, 2023, at 4:57 PM, Vittorio Bertocci > <vittorio=40auth0....@dmarc.ietf.org> wrote: > > Thank you Roman! > We just published draft 11 > <https://www.ietf.org/archive/id/draft-ietf-oauth-step-up-authn-challenge-11.html>with > the two updates below, please let us know if they address your comments > satisfactorily. > Cheers > V. > > new language for explaining levels, in Protocol Overview. >> [..]Other methods of determining the authentication level by which the >> access token was obtained are possible, per agreement by the authorization >> server and the protected resource, but are beyond the scope of this >> specification. > > >> It is worthwhile to remark that the notion of "authentication level", as >> used in this document, represents an assessment the resource server performs >> on specific authentication methods, to arbitrarily determine whether it >> meets its own security criteria for the requested resource. "Authentication >> level" in this specification does not imply, requires nor refers to an >> absolute hierarchy of authentication methods expressed in interoperable >> fashion. The notion of level emerges from the fact that the resource server >> will accept some methods and reject others, hence establishing a way of >> comparing methods that meets the intuitive notion of "step up" . > > >> Although the case[..] > >> >> new language for token caching in the same section. > >> This document doesn't recommend any specific token caching strategy, as >> that will be dependent on the characteristics of every particular scenario >> and remains application-dependent as in the core OAuth cases. > >> > > On Thu, Feb 2, 2023 at 11:31 AM Roman Danyliw <r...@cert.org > <mailto:r...@cert.org>> wrote: >> This message originated outside your organization. >> >> >> >> Hi Vittorio! >> >> >> >> Thanks for all of the proposed changes and explanations on where it might >> not make sense. I’ve snipped the below thread down to the open issues. >> Bottom line, I think just a bit more explanatory text will help the reader >> understand the framing concepts or push the responsibility to applications. >> >> >> >> Roman >> >> >> >> From: Vittorio Bertocci <vittorio.berto...@auth0.com >> <mailto:vittorio.berto...@auth0.com>> >> Sent: Thursday, January 12, 2023 4:11 PM >> To: Roman Danyliw <r...@cert.org <mailto:r...@cert.org>> >> Cc: oauth@ietf.org <mailto:oauth@ietf.org> >> Subject: Re: [OAUTH-WG] AD review of >> draft-ietf-oauth-step-up-authn-challenge-08 >> >> >> >> Thank you Roman for the super prompt and thorough review! >> We went ahead and published draft -10 incorporating your feedback and the >> changes described below. We are happy to make further changes as necessary, >> of course. >> Comments Inline >> >> >> >** The text uses the phrase "authentication level" a few times. Was that a >> >phrase that was heavily negotiated? To me a level implies that some notion >> >of linear progression -- level-n+1 is "more security" than level-n; and >> >that there is some notion of hierarchy of level-n-1, level-n, and >> >level-n+1. I didn't see that in the construct of an acr claim. My skim of >> >the OIDC materials suggests that an acr is a label assigned to set a >> >requirements for a token. >> >> >> We use the term “authentication level” banking on the same intuition that >> propelled “step UP” in mainstream use. The concept of authentication level >> doesn’t require an absolute or even partial ordering on the domain, or that >> to be encoded in ACR. All that’s needed for the “authentication level” >> intuition to play out is for a RS to accept multiple ACR values, and to >> consider the authentication strength associated with certain values of ACR >> to meet its own bar for accessing a given resource. The RS interpretation of >> ACR can be entirely private, without relying on commonly accepted standard >> values, and its resulting hierarchy doesn’t need to be absolute or even a >> proper lattice. We presented this spec at various conferences, and the >> audience never seemed to have a hard time grasping the concept. On the other >> hand, we cannot be sure that they were thinking the above… they might just >> have assumed the absolute order you described :) Would some clarifying >> language summarizing the above help, in your opinion? >> >> >> [Roman] Thanks for explaining. Can you add a bit more language to explain >> the terminology of “level” just as you did in the above text. >> >> >Is there a reference that can be provided to explain the hierarchy of >> >levels? >> >> >> See above about whether an absolute hierarchy is strictly required. That >> said, the ACR definition in >> https://openid.net/specs/openid-connect-core-1_0.html#IDToken >> <https://urldefense.com/v3/__https://openid.net/specs/openid-connect-core-1_0.html*IDToken__;Iw!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtayEdloQ$> >> hints at the use of NIST assurance levels in ACR values, pointing at >> https://openid.net/specs/openid-provider-authentication-policy-extension-1_0.html#anchor11 >> >> <https://urldefense.com/v3/__https://openid.net/specs/openid-provider-authentication-policy-extension-1_0.html*anchor11__;Iw!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtZoi9e7M$> >> and mapping to >> https://pages.nist.gov/800-63-3-Implementation-Resources/63B/AAL/ >> <https://urldefense.com/v3/__https://pages.nist.gov/800-63-3-Implementation-Resources/63B/AAL/__;!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtVbIayre$>. >> >> Given that those are all mentioned in the ACR definition in OIDC core, I am >> not sure if it would make a big difference echoing them here, especially >> given that the RS isn’t forced to stick with that. What do you think? >> >> >> [Roman] Per the previous comment, if you can generally explain that “level” >> terminology as being figurative, I don’t think a reference is needed. >> >> >> >> > The text seems to be suggesting that a caching strategy might be needed >> > but noting that the specifics will have to be application specific. It >> > also reminds the reader that tokens are supposed to be opaque and not >> > inspected. If tokens are supposed to be treated as opaque, how exactly >> > does one know which token to pull from the cache? Can the text provide >> > guidance on what non-token properties is should be using as an index? >> > Would it be acr_values + max_age + resource? >> >> >> We postulate that clients save and reuse tokens. Clients (and in particular, >> SDKs used by clients) already do this today, using a variety of strategies >> and cache index designs that aren’t explicitly described in detail by any >> OAuth specification. Those solutions already rely on information that can >> only be inferred by request and response parameters (resourceID, path, >> scopes, etc), without the need to access the token’s content. The step-up >> spec doesn’t change this: the application’s flow keeps invoking resources >> according to the resource shape (identifier, path, etc) and app needs (eg >> the API method parameters passed in specific calls) without any need to >> understand ACR. in other words, if an app obtained a token A for calling the >> resource http://myapi.com >> <https://urldefense.com/v3/__http://myapi.com__;!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtQes3NbU$> >> and that token works for http://myapi.com/method1 >> <https://urldefense.com/v3/__http://myapi.com/method1__;!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtaHBeOlV$> >> and http://myapi.com/metho >> <https://urldefense.com/v3/__http://myapi.com/method1__;!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtaHBeOlV$>d2, >> but generates an error and a step-up challenge when attempting to use token >> A for invoking http://myapi.com/metho >> <https://urldefense.com/v3/__http://myapi.com/method1__;!!PwKahg!_zbGkZjN_9BTg1p6SQhtRIYniS_xtA5qNV331p9BEMUPLOPijPp-egdOjHpWxCSN7ozvPdwWtaHBeOlV$>d3, >> leading to obtaining token B… the token caching index doesn’t need to >> change to include ACR values, as future code invoking the resource and >> method will simply refer to resource identifier and method path, all we are >> telling the developer is not to override A with B but the way those tokens >> will be retrieved from the cache doesn’t require direct knowledge of ACR. We >> can’t really predict what every app needs to use to index its cache, API >> method is one example but other scenarios be just as common (e.g. monetary >> size of a transaction, which would be encoded by parameters rather than >> methods). >> TL;DR: token caching doesn’t require remembering particular ACR values, and >> every app might need to include in the cache index different parameters >> hence it’s tricky for us to provide guidance. Does that clarify? I know it’s >> confusing. >> >> >> [Roman] It does and I appreciate the difficulty in being specific now. >> Could you perhaps say something to the fact that caching will have to be >> application specific. >> > _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth