-
Notifications
You must be signed in to change notification settings - Fork 827
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
feature: activate PKCE by default in requests to external OIDC providers #2448
Conversation
PKCE for OIDC/OPENID clients is available now since years in UAA but currently only on/active for public usage Add now an own option to have it on also for all other authentications. Default on, but if a client does not want it, you can switch it off. See https://oauth.net/2/pkce/, PKCE is not only for public but it is use in this scenarios it most frameworks (spring and golang) https://oauth.net/2.1/
We have created an issue in Pivotal Tracker to manage this: https://www.pivotaltracker.com/story/show/185865696 The labels on this github issue will be updated when the story is started. |
@peterhaochen47 this belongs to PKCE story, similar to cloudfoundry/cf-uaa-lib#90 , because it is PKCE as client |
To clarify, this PR is only about when UAA is acting as an OAuth client, authenticating with an external OAuth server (as opposed to UAA clients authenticating with UAA), correct? In that case, if the external OAuth server does NOT support PKCE, would this be a breaking change? Also, when an external OAuth server does not support PKCE, would it just ignore the |
not if the external OIDC provider is standard complaint and even with old UAA I could not find an issue. The parameters should be ignored, if the server does not support it.
Ignore it. PKCE was designed to be downwards compatible and it only works if both parties support it. |
@strehle I see, thank you. I tried to edit the PR title to clarify what this feature is. My question is similar to this one about cf-uaac: |
in UAAC I am with you to enable PKCE always because uaac is for UAA only and here I can say it works. Therefore changed cloudfoundry/cf-uaac#123 to use always PKCE. The OIDC flow is for other OIDC providers and there it might be not safe even if they should be compatible. |
I see. My concern is that removing an added config is a lot of work (you have to deprecate it, and advance major version, etc.). |
PKCE for OIDC/OPENID clients is available now since years in UAA but currently only on/active for public usage Add now an own option to have it on also for all other authentications. Default on, but if a client does not want it, you can switch it off. See https://oauth.net/2/pkce/,
PKCE is not only for public usages but it is part of standard frameworks (spring and golang)
https://oauth.net/2.1/