-
Notifications
You must be signed in to change notification settings - Fork 68
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
Accept response_mode=form_post on the Supervisor callback #2238
Comments
Thanks for creating this issue @graindcafe. You are correct in your analysis that the Supervisor will allow you to configure For future reference to implementors, here is the relevant spec https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html. Do you have any links to ADFS documentation describing the requirement to use |
Thanks for your answer. Additionally, non-official links talking about this specific issue : |
Thanks for sharing those docs @graindcafe. According to those docs, for a confidential client (like the Supervisor) you must have "KB4019472 or later security update installed on your AD FS servers". Just to confirm, is that is your situation? |
Yes |
Is your feature request related to a problem? Please describe.
Microsoft ADFS 2016+ requires to use response_mode=form_post to send what is called custom claims or extra claims. Especially the claim "email" is not sent using response_mode=query.
We can configure pinniped to request the ADFS for a response_mode=form_post but it cannot handle it afterward.
Describe the solution you'd like
The solution I suggest is to modify the callback handler so that it accepts both GET request and POST request.
Then modify the methods accessing the
code
andstate
parameters to handle the case where it has been sent in the request body, if the verb was POST.Describe alternatives you've considered
None
Are you considering submitting a PR for this feature?
Yes
How will this project improvement be tested?
Currently : receiving a POST request on the callback failed with 405 method not allowed
After: receiving a POST request with the parameters
code
andstate
in the request body will be successfully handled.How does this change the current architecture?
No impact on the architecture.
How will this change be backwards compatible?
The callback handler will still answer 405 for verbs other than POST or GET.
If the verb is POST and the code or state cannot be found, it will fail in the same way as a GET request without these parameters.
How will this feature be documented?
The documentation should be updated to clarify the fact that receiving a response_mode=form_post is now possible on the supervisor.
Additional context
My tests were on pinniped 0.25 but reading the code there is no reason this behaviour has changed in between.
The text was updated successfully, but these errors were encountered: