-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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
Extend Github Authentication to support seamless SSO #209482
base: main
Are you sure you want to change the base?
Conversation
@microsoft-github-policy-service agree company="Uber Technologies Inc" |
98ceffa
to
5f73272
Compare
5f73272
to
4fa8746
Compare
Hi @imarban, is this flow documented somewhere so I can learn more about it? |
Hey @TylerLeonhardt , these Github docs explain the URL and how SAML SSO works. |
I agree, ergonomics are rough if we have users to configure the setting on their own. Although, I would argue that's the case too for the That being said, these enterprise specific settings will likely be managed by the organization directly without users even knowing. The intention for this new setting (similar to the existing one) is that users get redirected to the sign-in page that is more appropriate for their managed development environment. While I agree that extensions may be able to take care of this, I can see benefits on having this flow centralized into a single place and avoid having to replicate this across multiple extensions (some of them which are closed source e.g. Github Copilot). |
The While this setting you're suggesting isn't really required and so the user doesn't know they could improve the flow slightly by setting a setting. Additionally, it's important to note that this isn't great as a user setting, because you don't need SAML all the time. If I got a machine that I only worked on open source outside of my organization, I don't need to SAML for any org and do my job just fine. I would rather an extension tell the GH Auth Extension what it requires, and then take the user through that should it be necessary. The annoying part in this, that I blame GitHub for, is that we have a chicken and egg problem. You need Auth to see if a user needs SAML... but you whether you need SAML is contingent on who is signed in... and we can only do SAML ahead of time. |
Hey Tyler,
Wouldn't it be the same for this setting? Given that
I do agree on this and I see the setting more of a Managed User Setting. Let me just be more transparent on what we are intending to use this for at Uber: We are hoping to set the setting to I do see benefits on having a configuration like this available for companies managing development environments either internally or through Codespaces. |
What would your recommendation be for settings that are specified by the organization if not a user setting? Environment variables? What if another organization runs into this issue, the setting is very discoverable, and this is generally how we configure other aspects of the IDE. |
Hi @TylerLeonhardt! Revisiting this thread in the hope of convincing you otherwise in light of the new improved support for multiple accounts.
Unfortunately this isn't always straightforward if the same email address is associated with both accounts. There's indeterminate behavior on which account gets used. And developers may not know their GitHub EMU username to login using that. Due to GitHub's special casing of the
Yes. |
Is this still relevant? |
What does this do?
Updates the Device Code and URL sign-in flows to support specifying a SSO Tenant ID in Settings.
If specified, the sign in flow redirects to
https://github.com/enterprises/<id>/sso
before sending back the user to the Oauth or Device Login flows.The logic validates that only one of URI and SSO ID are set during extension activation time. It also intends to keep the current behavior by giving priority to the URI setting if set.
Why is this needed?
This is useful as it allows organizations that manage settings for users to redirect them to the Enterprise SSO login flow.
This way organizations can somewhat ensure that users sign in with their enterprise Github account when connecting from managed environments and limit their chances of using a personal account.
How to test?
Package the extension and verify that: