-
-
Notifications
You must be signed in to change notification settings - Fork 10
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 Request: support OAuth2 #879
Comments
There hasn't been any activity on this issue recently, so we clean up some of the older and inactive issues. |
Still a huge improvement IMHO. |
There hasn't been any activity on this issue recently, so we clean up some of the older and inactive issues. |
Potential for improving both usability and security is still the same. |
Problem/Motivation
Using OAuth2 to access the Tailscale API would introduce several improvements. First and foremost OAuth2 clients are not temporary, so users will not have to re-create API keys every 90 days.
More importantly though with OAuth2 tailnet owners can scope the API access that is granted to the module and not provide owner permissions. In its current state the module only reads device info, so providing a fully-permitted access token that can be used to manage the whole tailnet is far too broad. Creating an OAuth2 client in Tailscale that is scoped to only
devices:core:read
would provide least privileged permissions (and would let me sleep better...).https://tailscale.com/kb/1215/oauth-clients
Expected behavior
Actual behavior
Steps to reproduce
Proposed changes
I'm not a developer and can't provide a PR to add OAuth2 but I took the liberty of trying out the OAuth2 module for Python and it worked right away with my butchered approach in
tailscale.py
:This of course misses all the bells, whistles, error handling and refreshing tokens. I just didn't want to come empty-handed...
The text was updated successfully, but these errors were encountered: