An SDK is going to support "sub" wether it is required or optional.



On Mon, Apr 13, 2020 at 1:40 PM Vittorio Bertocci <vitto...@auth0.com>
wrote:

> “Ide rockers” is iPhone autocorrect jargon for “identifiers”, of course :P
>
> On Mon, Apr 13, 2020 at 13:13 Vittorio Bertocci <vitto...@auth0.com>
> wrote:
>
>> It’s certainly possible to conceive ATs without subs, but I think the
>> profile would be way less useful for SDK developers.
>> On the objections:
>> The sub doesn’t have to be a user, if you look at the earlier discussions
>> the case in which the token has been issued for an application via client
>> creds (hence non user) has been debated at length.
>> Knowing the subject does not necessarily lead to API being able to
>> collide and track users, given that the sub can be a PPID that is different
>> for every resource even if the authenticated subject was the same.
>>
>
The privacy correlation I described is not solved by a per resource
directed identifier as the resource is learning that the same user is doing
different transactions -- or per my example, the resource is learning all
the movies the user is seeing.


>
>> The sub is mandatory here because it was present in nearly every token
>> among the ones observed,
>>
>
But NOT every token. So there were use cases where it was not required.


> and although one should not overindex on those scenarios, I took that as
>> strong indication that it is a frequently used field and guaranteeing its
>> presence facilitates embedding in SDKs lots of downstream features, such as
>> correlating with locally stored attributes, which would otherwise left as
>> exercise to the reader.
>>
>
NOT correlating all the different actions by the user may be the desired
privacy goal by a deployment.


> Per the points above, there are no obvious downsides in requiring the
>> presence of the sub and significant upsides. Again, the AS is in full
>> control of the sub content hence none of the privacy concerns mentioned
>> here are mandated by the sheer presence of the sub claim. If you feel the
>> privacy section should be stronger in warning an AS against the possibility
>> of collusion if global ide rockers are used, I am happy to reword
>> accordingly
>>
>
Per Aaron's comment, if this profile is NOT intended to support use cases
where the RS should not be able to correlate a user between resource
accesses, then it is fine for "sub" to be required. If so, then the
document should strongly point that out.


>
>> On Mon, Apr 13, 2020 at 10:16 Aaron Parecki <aa...@parecki.com> wrote:
>>
>>> This is a good point, I often use the hotel key analogy as well. The
>>> room door is the RS, the key is the access token, the door does not need to
>>> know who the user is in order to know if it’s okay to unlock given a
>>> particular key.
>>>
>>> If sub is required, then this profile is limited in use to cases where
>>> user identifiers are part of the system, and there will be situations in
>>> which it’s not appropriate to use this profile for access tokens. If that’s
>>> okay, this should be clarified in the overview section to describe when
>>> this profile should be used.
>>>
>>> Aaron
>>>
>>>
>>>
>>> On Mon, Apr 13, 2020 at 10:08 AM Dick Hardt <dick.ha...@gmail.com>
>>> wrote:
>>>
>>>> Why does the "sub" need to be required?
>>>>
>>>> An access token is to prove authorization. The RS may not need "sub" to
>>>> constrain fulfilling the client request.
>>>>
>>>> For example, it the access token has the same properties as a movie
>>>> ticket, the RS does not need to have any identifier for who purchased the
>>>> movie ticket.
>>>>
>>>> The privacy implication is the RS can correlate across API calls to
>>>> know it is the same subject.
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Apr 13, 2020 at 8:16 AM Denis <denis..i...@free.fr
>>>> <denis.i...@free.fr>> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> More on privacy about "JWT Profile for Access Tokens".
>>>>>
>>>>> The current document REQUIRES the claim names *sub* and *client_id*.
>>>>>
>>>>>    - sub  REQUIRED - as defined in section 4.1.2 of [RFC7519].
>>>>>    - client_id  REQUIRED - as defined in section 4.3 of [RFC8693]
>>>>>
>>>>> *1) **sub  REQUIRED*
>>>>>
>>>>> RFC 7519 states:
>>>>>
>>>>> 4.1.2.  "sub" (Subject) Claim
>>>>>    The "sub" (subject) claim identifies the principal that is the
>>>>>    subject of the JWT.  The claims in a JWT are normally statements
>>>>>    about the subject.  The subject value MUST either be scoped to
>>>>>    *be locally unique in the context of the issuer or be globally
>>>>> unique*.
>>>>>    The processing of this claim is generally application specific.  The
>>>>>    "sub" value is a case-sensitive string containing a StringOrURI
>>>>>    value.  *Use of this claim is OPTIONAL.*
>>>>>
>>>>> If *sub *is *REQUIRED *for this profile, then this allows all
>>>>> resource servers to link accesses made by the same client on different
>>>>> servers.
>>>>>
>>>>> *2) client_id  REQUIRED*
>>>>>
>>>>> RFC 8693 states:
>>>>>
>>>>> 4.3. "client_id" (Client Identifier) Claim
>>>>> The client_id claim carries the client identifier of the OAuth 2.0 [RFC
>>>>> 6749] client that requested the token.
>>>>>
>>>>> RFC 6749 states:
>>>>>
>>>>> 2.2.  Client Identifier
>>>>>    The authorization server issues the registered client a client
>>>>>    identifier -- a unique string representing the registration
>>>>>    information provided by the client.  The client identifier is not a
>>>>>    secret; it is exposed to the resource owner and MUST NOT be used
>>>>>    alone for client authentication.  *The client identifier is unique
>>>>> to*
>>>>> *   the authorization server.*
>>>>>
>>>>> If *client_id* is REQUIRED for this profile, this also allows all
>>>>> resource servers to link accesses made by the same client on different
>>>>> servers.
>>>>>
>>>>> *Both claim names should be OPTIONAL *to allow to support the privacy
>>>>> principle of unlinkability.
>>>>>
>>>>> Would both names remain *REQUIRED*, the Privacy considerations
>>>>> section should mention that such a linkage by different resource servers
>>>>> will always be possible when using this profile.
>>>>>
>>>>> Denis
>>>>>
>>>>> I have uploaded the second presentation for today's session, the JWT
>>>>> Profile for Access Tokens.
>>>>>
>>>>> https://datatracker.ietf.org/meeting/interim-2020-oauth-04/session/oauth
>>>>>
>>>>>
>>>>> Regards,
>>>>>  Rifaat
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>> --
>>> ----
>>> Aaron Parecki
>>> aaronparecki.com
>>> @aaronpk <http://twitter.com/aaronpk>
>>>
>>> _______________________________________________
>>> 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

Reply via email to