Note takers: Dean/Hannes
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-chairs-slides-01
Rifaat welcomes the group and goes through his slides.
Published:
Editor Queue:
Publication Requested:
Notes from Chairs
https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/
https://datatracker.ietf.org/meeting/122/materials/slides-122-oauth-token-status-list-00
Paul and Christian go through their slide deck describing the
changes to the draft.
Scalable revocation mechanism w/ similar properties to a CRL but
uses JSON/CBOR encoding
Extension point registered in IANA for status mechanism
Architecture
Key changes since interim on 25/1/2025
Remaining issue - status list for x.509 certs
Rifaat - we should be able to start a WGLC.
https://datatracker.ietf.org/doc/draft-ietf-oauth-attestation-based-client-auth/
Christian
Motivation - backend vs. frontend channel authN
Architecture:
Changes since 121
Paul
New intro to explain rationale
Nonce fetching
attestation-nonce-requestattestation-nonceFilip - we don't want to define an AS error for not having the
nonce. Needs text that clients must support this mechanism.
Document doesn't identify whether the nonce is for freshness or
one time use
Filip - OPTIONS is similar to CORS preflight. From a browser
perspective this could be 4 http requests
Brian - idea for OPTIONS was to avoid a new endpoint to get
this, didn't consider preflight. Hard time imagining this in a
JS client. Need to consider this more
Brian - worried about metadata endpoint, premature optimization?
Adds a list of URLs to check before you make the call
Filip - More on CORS. If this is deployed in a browser the CORS
implementation will be there regardless.
https://datatracker.ietf.org/doc/draft-ietf-oauth-v2-1/
Aaron
Docs that this was waiting on are published as RFC9700 and
browser based apps, which is nearing publication
Treating the doc as "done" as an editor
Changes since -11
client_id moved to individualHandful of open issues to close
Aaron: minor issues to still review, hope to go to WGLC before
IETF123
https://datatracker.ietf.org/doc/draft-ietf-oauth-first-party-apps/
Aaron
new endpoint
some implementations exist
Tim started PR for passkey support, needs to be pulled into a
separate doc
Open Questions:
should this be defined as a PAR extension?
Aaron says the draft is 80% of the way to PAR with slightly
different names...
redirect_to_web is the exceptionrequest_uriAaron - need to move discussion to the list for feedback
https://datatracker.ietf.org/doc/draft-parecki-oauth-client-id-scheme/
Aaron
Why?
Problem
Why not add a new param?
&client_id_scheme - creates more issues than it solves.New param per type, e.g. client_url, did, etc
OpenID4VP introduces a namespace for client ids
did will change to a new client id scheme inProposal
Discussion
Mike Jones - OpenID Federation PR 401 hasn't reached
consensus, may not be merged as is. Doesn't align with
existing practice.
Joseph Heenan - clarify previous point. Conclusion in OIDF
was due to a misunderstanding of where the https scheme was
in use. People have live systems that we need to not break.
Need to find a resolution across the working groups.
Aaron - not an adopted draft. Intent is to try to reach
conclusion so we can adopt. Ensure no conflict with existing
uses.
No draft available at this time.
Pedram
Review of the mix up attack described at OSW
question: What's the best process to update RFC9700?
Brian - procedural question. Can a BCP have multiple docs listed
under it, allowing a new doc to augment the BCP? Avoids having
to rewrite RFC 9700
Justin - do what Brian said. By the time you publish a BCP, it's
not current any longer. We can move tightly scoped docs through
IETF faster than many years. Recommends writing a small doc
describing the attacks and mitigations. Go fast.
Pedram - discussion was helpful.
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.
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.
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
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.
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
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.
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.