-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Describe the feature request?
Please expose OpenIdConnectOptions.PushedAuthorizationBehavior config on OktaMvcOptions (available since .NET 9).
.NET Version
9.0.8
Provide a documentation link if applicable
Additional Information?
For context:
We are using a self-hosted login page with an Authorization Code with PKCE flow. Our login flow looks as follows:
- UI sends user credentials to
/authnendpoint - UI sends
session_tokenreceived in step 1 to the backend service - BE service redirects to
/authorizeendpoint with all required parameters, includingsession_token - Okta makes its verifications and redirects back to BE
- continue the flow...
After upgrading Okta Identity Engine, the flow has changed. After receiving the session_token from the UI, the BE calls /par endpoint with the session_token that is eventually ignored by Okta. After that, BE redirects to /authorize endpoint with request_uri=urn:okta:xxxxxx. However, instead of redirecting back to the BE service, Okta displays its login screen, forcing the user to authenticate for a second time.
The default of PushedAuthorizationBehavior is UseIfAvailable, and since Okta added pushed_authorization_request_endpoint to the discovery API after the Identity Engine upgrade, this caused the behaviour to change.
The only solution to preserve the old UX is to disable PAR. As a workaround, we do that like this
services.Configure<OpenIdConnectOptions>(
"OpenIdConnect",
options => options.PushedAuthorizationBehavior = PushedAuthorizationBehavior.Disable);But having a property on OktaMvcOptions will make it simpler.