IETF122 - OAuth WG Agenda - Tuesday (120 min)

Note takers: Dean/Hannes

Chairs update – Rifaat/Hannes (10 min)

https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-chairs-slides-01

Rifaat welcomes the group and goes through his slides.

Token Status List - Paul (20 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-token-status-list-00

Attestation-based Client Authentication - Paul (15 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-attestation-based-client-auth/

OAuth 2.1 - Aaron (25 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-v2-1/

OAuth First-Party Apps - Aaron (20 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-first-party-apps/

Client ID Scheme - Aaron (20 min)

https://datatracker.ietf.org/doc/draft-parecki-oauth-client-id-scheme/

Updating Security BCP - Pedram Hosseyni (10 min)

No draft available at this time.

Friday

Chairs update – Rifaat/Hannes (5 min)

SD-JWT – Brian (10 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/

https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-sd-jwt-02

Brian goes through his slide deck giving a status update.

Rohan: Wrote a intro section for 1.3

Brian: Some introductory text was a bit repetitive, then the examples
were more verbose than what I wanted in that section. Some other text
was about areas where there was previously some misunderstanding. It may
have introduced additional confusion. If others believe it would be
worthwhile we can look into it.

SD-JWT VC - Brian (20 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-sd-jwt-vc-00

Brian presents slides

Rohan: Re: optional issuer, was the intention to make it more efficient?

Brian: It was to avoid the previous situation where you always had an
issuer, even with x5c, and there were rules about matching to the
content of certificates. If you were only wanting to do certificate
based trust, so including the issuer implied that verifiers would go
pull keys from the web, risking domain takeovers etc

Brian: I wanted to have the semantic that the issuer field is there but
there is no requirement to go out and fetch the keys.

Rifaat: What is your sense of how far along this is?

Brian: These two are the most pressing issues, but there are a lot in
the repository, but many are not super substantial.

JWT Profile for Client Authentication and Authorization Grants - Mike & Brian (25 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-rfc7523bis/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-updating-jwt-profile-for-oauth-20-client-authentication-and-authorization-grants-00

Mike presents slides

Detailed description of the vulnerability available at
https://openid.net/notice-of-a-security-vulnerability/

Brian presents slides

Poll: Did you read the draft?
Yes: 13
No: 24
No Opinion: 3

Poll: Do you understand the difference between the two proposals?
Yes: 20
No: 10
No Opinion: 5

Poll: Are you in favor of Brian's version?
Yes: 23
No: 4
No Opinion: 10

Transaction Token - Pieter (15 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-transaction-tokens/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-transaction-tokens-00

Pieter presents slides

Aaron: I am nervous about relaxing the lifetime of the access token. I
tell people that it is more important to know for what the access token
was valid at the time when the call chain was started. This is a
different way of phrasing the problem.

Pieter: This is a good way to phrase the problem.

Brian agrees with Aaron.

Justin: What you are trying to say: is it in a context in which it
should be processing right now?
It is important to capture initiation: The transaction token must not be
used to initiate a transaction in the way the access token does.

Dean also agress with Aaron and Justin.

George agrees with Justin. There is probably better wording we can put
into the draft.

Rohan: I like what Justin said about the expiration time. You still want
to check revocation or status lists.

Arndt: If we bind the lifetime of the transaction tokens and the access
tokens then I have to put restrictions on the access tokens. This is
something we want to avoid.

Dean: The iat claim and the entire "chain" needs to be carried along to
keep the context.

Atul points Dean to the text in Section 7.5.1 regarding the lifetime.

Pieter: This is the last open issue and once this issue is resolved we
can move on to WGLC.

OAuth Identity Chaining - Brian (15 min)

https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-oauth-identity-and-authorization-chaining-across-domains-01

Brian presents slides

Hannes: This pattern is similar to Kerberos, so we could borrow from
that

Brian: Specific pointers would be helpful

Hannes will post a mail to the OAuth mailing list with pointers.

Rifaat asks for reviewers: Dean, Justin, Joe

Deferred Key Binding for OAuth - Justin (10 min)

https://datatracker.ietf.org/doc/html/draft-richer-oauth-tmb-claim
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-sessb-deferred-key-binding-for-oauth-tokens-01

Justin presents slides

Rifaat asks whether we should schedule an interim meeting on this topic.

Justin believes that this would be helpful.

Token Exchange extensions - Nick Watson (20 min)

No draft available at this time.
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-oauth-token-exchange-extensions-00

Nick presents slides

Nick talks about returning errors:

Brian: Have you looked at the existing error uri parameter

Nick: I understood that the existing uri is for the developer rather
than the user.

Brian: I got a lot of negative feedback on the use of URIs for error
feedback

Second topic: Refresh token expiration

There are two topics: consent expiration and token expiration

Clients would like to know consent / refresh token expiration.

Justin: The response of the token endpoint puts all information
together. People have made various assumptions about the fields
returned. Adding further fields would potentially add further complexity
to existing deployments.

There are practical aspects we could do. For example, the AS could
return the old token if the AS is not ready to rotate a token fast
enough.

Aaron: There are dynamic access token mechanisms. Refresh token schedule
does not mean fixed token schedule. I like that your goal is to allow
the client to let the user do something. I think we should focus on this
aspect: How do we let the client indicate that the user can take some
action? Not get stuck in the weeds about defining every subtle aspect
about expiration.

Darin Mcadams: We at AWS are interested in this in the context of VPN
tunnels. When the token expire in our scenario then it has a lot of
impact.

Jonathan Hoyland: With proposal 2 (proposal with URL) you have to think
carefully about cross site request forgery.

Ben Brucksch: I am having the same issues in the email client space. I
need to the error information to attempt to recover in different ways.
Currently, I cannot differentiate the various scenarios. Happy to work
with you. Would more error codes help? Would a descriptive error message
for end user help?

Nick: One more error code would be helpful. (I noticed access denied is
not a valid error code.)

Fillip: We typically do not want to give information to the client. You
need to take this into account.

Nick: Absolutely and there are ways to do this.