Skip to content

Add support for OAuth 2.0 Pushed Authorization Requests (PAR) #210

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
TakahikoKawasaki opened this issue Feb 3, 2021 · 9 comments · Fixed by #1925
Closed

Add support for OAuth 2.0 Pushed Authorization Requests (PAR) #210

TakahikoKawasaki opened this issue Feb 3, 2021 · 9 comments · Fixed by #1925
Assignees
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement

Comments

@TakahikoKawasaki
Copy link

PAR (OAuth 2.0 Pushued Authorization Requests).

PAR has a considerably big impact on authorization server implementations, especially if request_uri (OIDC Core 1.0 Section 6.2) is not supported yet. It is recommended that the feature is designed and implemented from the beginning.

@TakahikoKawasaki TakahikoKawasaki added the type: enhancement A general enhancement label Feb 3, 2021
@jgrandja
Copy link
Collaborator

@TakahikoKawasaki Given that PAR is still in early draft phase, I'm curious if you know of any well-known OIDC providers that have implemented this as an experimental feature?

@jgrandja jgrandja added the status: waiting-for-feedback We need additional information before we can continue label Feb 17, 2021
@TakahikoKawasaki
Copy link
Author

PAR is still in draft state but stable. CDR (Consumer Data Right) in Australia has adopted PAR. The official OpenID conformance suite already contains test cases for PAR. It has been determined that PAR will become a component of the next version of Financial-grade API (FAPI).

Authlete, Connect2id and node oidc-provider are examples that support PAR.

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue labels Feb 17, 2021
@jgrandja jgrandja added status: on-hold We can't start working on this issue yet and removed status: feedback-provided Feedback has been provided labels Feb 17, 2021
@anoopgarlapati
Copy link
Contributor

OAuth 2.0 Pushed Authorization Requests is now published as RFC 9126.

@darkedges
Copy link

@TakahikoKawasaki / @jgrandja Started work on this, but I am unsure how to develop it properly in terms of how do I develop in both this project and the spring security project so that I can update that project too. Any examples of how to configure gradle to use the spring security project for the classes instead of the JARs from maven? That way I can complete that update too?

@darkedges
Copy link

darkedges commented Jul 20, 2023

After taking @jgrandja advise I have rewritten it to be not part of the core packages.
My example is at https://github.com/darkedges/spring-authorization-server-par

However there are a number of issues that I don;t know how to address.

  1. I had to modify the way the Authorization Server is configured.
    https://github.com/darkedges/spring-authorization-server-par/blob/main/src/main/java/sample/config/AuthorizationServerConfig.java#L59-L94

    I had to get the RequestMatcher for the default Security from OAuth2AuthorizationServerConfigurer and OAuth2PushedAuthorizationRequestEndpointConfigurer so that I can get access to the AuthenticationManager correcly, due to the way it was not available.
    Further had to do the same for CSRF to allow the POST request to work.

  2. Had to create a new OAuth2ClientAuthenticationFilter to handle the JWT client assertion, as I could not hook into the existing one.

  3. I am not sure how to extend the Authorization Code Grant code to use the PAR generated to get all the details supplied, to complete the code_challenge

  4. Need to extend the metadata endpoint to add in the require_pushed_authorization_requests and pushed_authorization_request_endpoint metadata.,

So I need help with point 3 to understand how to hook into the existing processes withoiut having to develop in the core package, so do I need to raise a Stack Exchange request?

@vanhoanHoang
Copy link

Hi,
Do we have any update on the possibility of implementing this spec in Spring AS ?

@jgrandja
Copy link
Collaborator

jgrandja commented Mar 1, 2024

@vanhoanHoang No updates. It's still on hold and is not a priority at the moment.

@jgrandja
Copy link
Collaborator

We are currently planning for Spring Authorization Server 1.5 and are considering adding support for PAR.

@jgrandja jgrandja removed the status: on-hold We can't start working on this issue yet label Dec 11, 2024
@jgrandja jgrandja self-assigned this Feb 26, 2025
@jgrandja jgrandja added this to the 1.5.0-M2 milestone Feb 26, 2025
@jgrandja jgrandja changed the title PAR (OAuth 2.0 Pushed Authorization Requests) Add support for OAuth 2.0 Pushed Authorization Requests (PAR) Feb 26, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Feb 28, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Feb 28, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 1, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 2, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 2, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 3, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 3, 2025
jgrandja added a commit to jgrandja/spring-authorization-server that referenced this issue Mar 3, 2025
jgrandja added a commit that referenced this issue Mar 3, 2025
@jgrandja jgrandja added the status: duplicate A duplicate of another issue label Mar 3, 2025
@jgrandja jgrandja removed this from the 1.5.0-M2 milestone Mar 3, 2025
@jgrandja
Copy link
Collaborator

jgrandja commented Mar 4, 2025

Closing in favour of gh-1925

@jgrandja jgrandja closed this as completed Mar 4, 2025
jgrandja added a commit that referenced this issue Mar 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement
Projects
None yet
6 participants