Skip to content

Feature/pushed authorization requests - #73

Open
andrewclymer wants to merge 27 commits into
release/3.0.0from
feature/PushedAuthorizationRequests
Open

Feature/pushed authorization requests#73
andrewclymer wants to merge 27 commits into
release/3.0.0from
feature/PushedAuthorizationRequests

Conversation

@andrewclymer

Copy link
Copy Markdown
Collaborator

Description

Initial implementation of PAR. Currently uses an InMemory store for the PAR requests. Looking for feedback and testing of the implementation. Will then work on EF store while this PR is being evaluated

Type of change

  • Bug fix
  • Feature
  • Refactoring
  • Documentation
  • Other

Does this PR introduce a breaking change?

Does the change cause existing functionality to not work as previously expected, or does the DB schema or C# public API surface change?

  • Yes
  • No

Testing

Full set of unit tests and end to end integration test from PAR request through to getting a token

LLM Usage

Used LLM to confirm the code has implemented PAR as per the RFC.

Other context

None

andrewclymer and others added 23 commits September 5, 2026 14:03
…d to re-think the storage of the PAR request so its flat and use native types so that a store can easily serialize
…the store. This simplifies the response generator
… opposed to the raw URL. As if the request_uri is intercepted only the client_id is required for an attacker to use it, and bypass the client secret aspect of PAR. Also fixed issue that the RequestValidator was still bound to the store not the service layer

<ItemGroup>
<PackageReference Include="Open.IdentityServer"/>
<!-- <PackageReference Include="Open.IdentityServer"/>-->

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will break the build

Comment thread src/Open.IdentityServer/src/Endpoints/Results/PushedAuthorizationResult.cs Outdated
Comment thread src/Open.IdentityServer/src/Endpoints/Results/PushedAuthorizationResult.cs Outdated

internal record PushedAuthorizationResult(PushedAuthorizationResponse Response) : IEndpointResult
{
public async Task ExecuteAsync(HttpContext context)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing set no cache headers, they appear in the example requests in the spec

Comment thread src/Open.IdentityServer/src/Endpoints/PushedAuthorizationEndpoint.cs Outdated
Comment thread src/Open.IdentityServer/src/Endpoints/PushedAuthorizationEndpoint.cs Outdated
@patchandthat

Copy link
Copy Markdown
Collaborator

Missing copyright headers on all your new files.

// Copyright (c) 2026, Rock Solid Knowledge Ltd
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.

Or insert on existing files

// Modified by Rock Solid Knowledge Ltd. Copyright in modifications 2026, Rock Solid Knowledge Ltd.

Comment thread src/Storage/src/Stores/IPushedAuthorizationRequestStore.cs Outdated
Comment thread src/Storage/src/Models/PushedAuthorizationMemento.cs
@patchandthat
patchandthat changed the base branch from main to release/3.0.0 September 8, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PAR response generator OAuth 2.0 Pushed Authorization Requests (RFC 9126)

4 participants