Seneca-CDOT / vscode-seneca-college

VSCode Extension for Seneca College Developers
MIT License
7 stars 7 forks source link

Support Seneca SSO or account proof for identifying Seneca Users #10

Open humphd opened 2 years ago

humphd commented 2 years ago

This extension is based on the idea that we have a community of users, namely, people at Seneca using VSCode.

To achieve this, we'll need to be able to authenticate everyone somehow. An obvious choice might be to use Seneca's SSO, which we already do in Telescope. We might also use some lighter-weight email-proof flow, where we send a code to the Seneca account email for the user, and they have to prove they own that account and can give it back to us.

I notice that VSCode's Extension API also supports the idea of authentication providers, see https://www.eliostruyf.com/create-authentication-provider-visual-studio-code/.

humphd commented 2 years ago

Here's how it looks if you bake the authentication provider directly into VSCode:

https://user-images.githubusercontent.com/427398/199771528-972a5f07-5ef3-4487-b216-2a713463f38a.mp4

humphd commented 2 years ago

Two existing provider extensions:

gulyapulya commented 2 years ago

Hi, I would like to try to figure this out as part of the release 0.4 if possible.

humphd commented 2 years ago

@gulyapulya this is going to be a significant task. I've been speaking with Seneca ITS, and it's doable, but I don't want to set you on a path that is going to be overly painful. I'm wondering if this is better left for OSD700/DPS911 next term. However, I'd also be open to you doing a bunch of this now, and splitting off remaining work for the next term (i.e., someone else could take it over if you can't finish).

For example, we could use a test OAuth provider to simulate what Seneca's SSO will do, and get that working in general, then map onto own own auth backend later.

Let me know what you think.

gulyapulya commented 1 year ago

Sorry for my late reply, I have been thinking about it a lot and I totally agree with you. I already started learning about it but I think it is better for me to take the OSD700 next semester to fully work on this.