Skip to content
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

OIDC: support device code flow without secret or PKCE #225

Closed
soxofaan opened this issue Aug 20, 2021 · 5 comments
Closed

OIDC: support device code flow without secret or PKCE #225

soxofaan opened this issue Aug 20, 2021 · 5 comments

Comments

@soxofaan
Copy link
Member

OIDC device code flow support: Python client assumes there are just two modes: with client secret or with PKCE, but apparently there are also implementations (e.g. KeyCloak 13+) that use neither. Python client should support these 3 (or more) properly

also see Open-EO/openeo-api#410

@soxofaan soxofaan self-assigned this Aug 20, 2021
@m-mohr
Copy link
Member

m-mohr commented Aug 25, 2021

It seems like authorization code flow also works without PKCE and client secret, so should be added, too.

@soxofaan
Copy link
Member Author

soxofaan commented Aug 25, 2021

Open-EO/openeo-api#411 was merged and added default_client grants:

  • authorization_code
  • urn:ietf:params:oauth:grant-type:device_code

@soxofaan
Copy link
Member Author

@aljacob the python client should now support default clients using OIDC device auth grant without PKCE nor client secret. Can
you confirm that it works with you Keycloak setup?

FYI new feature is not in latest release (0.8.2), so use a recent git checkout (or a version >0.8.2 if that's available by the time you verify)

@soxofaan
Copy link
Member Author

soxofaan commented Sep 10, 2021

FYI: I didn't add support for

It seems like authorization code flow also works without PKCE and client secret, so should be added, too.

I'm not sure if it's worth the trouble supporting at the moment (supporting it for device auth grant turned out more effort than I expected).
I'm even thinking we should just deprecate authorization code flow (in Python client usage) all together because it's just too hard to get it working properly in any form. Nobody is going to use it in practice now that device auth grant is getting more popular and more widely supported. -> #235

@soxofaan
Copy link
Member Author

In an effort to clean up some outstanding issues, I'm going to close this one.
Feel free to reopen if follow up is necessary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants