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

GSoC 2022 Idea: CloudStack OAuth2 Plugin #4834

Closed
rohityadavcloud opened this issue Mar 17, 2021 · 26 comments
Closed

GSoC 2022 Idea: CloudStack OAuth2 Plugin #4834

rohityadavcloud opened this issue Mar 17, 2021 · 26 comments
Assignees
Labels

Comments

@rohityadavcloud
Copy link
Member

rohityadavcloud commented Mar 17, 2021

Background

Apache CloudStack currently support native, LDAP and SAML based authentication. The proposed idea is to write a new OAuth2 plugin which is UI-first and can perform Single-Sign-On (SSO) with 3-party identity providers such as Google, Facebook, Github etc and allows admins to manage the users/accounts.

Screenshot from 2021-03-17 16-14-34

Proposed Tasks

  • Get started on basic CloudStack codebase and development (building and running CloudStack)
  • Setup dev/test environment to test/develop authentication plugin w/OAuth2
  • R&D - OAuth2 protocol and libraries that may be integrated with CloudStack
  • Implement configuration: Global setting/options to enable/disable this plugin, specify the 3rd party providers (such as Google, Fb, Github etc) in both UI/backend
  • Implement authentication plugin and mechanism
  • Write tests and documentation, send pull request (with video/gif to demonstrate the feature)

Relevant Skills

  • Java
  • Javascript/Vue
  • OAuth2

Difficulty

Medium

Potential Mentors

Nicolas Vazquez (nicovazquez90@gmail.com)
Rohit Yadav (rohit@apache.org)

Example and references

https://oauth.net/code/java/
https://spring.io/guides/tutorials/spring-boot-oauth2/
How to CloudStack Auth plugin: https://cwiki.apache.org/confluence/display/CLOUDSTACK/SAML+2.0+Plugin

@LeBW
Copy link

LeBW commented Apr 4, 2021

Hello, I'm a master's student at Fudan University, China. I'm interested in this project and I'd like to apply it for GSoC 2021. Is there any guidance or suggestions for me? Thank you!

@rohityadavcloud
Copy link
Member Author

Hi @LeBW thanks for your interest.

I would advise that you read the community GSoC guidelines (https://community.apache.org/gsoc.html), join the dev mailing list (http://cloudstack.apache.org/mailing-lists.html) to discuss your GSoC idea/proposal/application, and start drafting your application (for example https://google.github.io/gsocguides/student/proposal-example-1). With your proposed mentor (see email above), start an early discussion with them and you can ask them to review your application draft (for example, compose your draft and share with a Google doc).

You can refer to the CloudStack course to help you draft your application and learn how to build something in CloudStack https://github.com/shapeblue/hackerbook

@nvazquez
Copy link
Contributor

nvazquez commented Apr 8, 2021

@LeBW hi, thanks for participating! Let us know if you need help with your application

@nvazquez
Copy link
Contributor

Hi @LeBW if you are still interested in this project please submit your application by tomorrow

@LeBW
Copy link

LeBW commented Apr 12, 2021

Hi @LeBW if you are still interested in this project please submit your application by tomorrow

I'm sorry for the late reply. I have drafted my proposal and sent it to your email. Hope to receive your suggestions :).

Thanks!

@nvazquez
Copy link
Contributor

Thanks @LeBW, I have recieved your draft proposal over email and added some comments. Please address them and submit your application through the GSOC portal https://summerofcode.withgoogle.com/ by Tuesday 13th 18:00 UTC (which is the deadline). My timezone is UTC-3, will be online if you need more assistance or ping @rhtyd who's timezone is closest to yours if I'm still not available

@khamarshaikh
Copy link

@nvazquez , @rohityadavcloud I wanted to check if this feature is still open , if yes I would like to contribute to it.

@rohityadavcloud
Copy link
Member Author

Yes this is still open @khamarshaikh

@khamarshaikh
Copy link

@rohityadavcloud , I am interested to work on it, is there any standard process to get the issue assigned ? Also this year GSOC is open for all ( including working professionals) , I would like to begin and start contributing to the community.

@rohityadavcloud
Copy link
Member Author

@borisstoyanov can you suggest/advise potential student @khamarshaikh

@rohityadavcloud rohityadavcloud changed the title GSoC 2021 Idea: CloudStack OAuth2 Plugin GSoC 2022 Idea: CloudStack OAuth2 Plugin Jan 20, 2022
@khamarshaikh
Copy link

@borisstoyanov @rohityadavcloud I am trying to setup the development environment on mac OS , is there any documentation for it ? Currently I see only for CentOS

@rohityadavcloud
Copy link
Member Author

@Damans227
Copy link
Contributor

@rohityadavcloud @nvazquez Hi Guys, the GSoC 2022 proposal acceptance begins in April officially. Since, I am interested in working on this issue, can I create and a send a proposal for review now instead instead of waiting till April ?

@borisstoyanov
Copy link
Contributor

Hi @Damans227, it's great to hear you have interest! You can start creating a reviewing the proposal and you can get in touch with community, mentor etc. Please be advised that the mentor could help you out, by means of good will, but the application and review of your proposal needs to go through the official process and timeline.

@Damans227
Copy link
Contributor

Hi @Damans227, it's great to hear you have interest! You can start creating a reviewing the proposal and you can get in touch with community, mentor etc. Please be advised that the mentor could help you out, by means of good will, but the application and review of your proposal needs to go through the official process and timeline.

Understood, thanks for replying.

@Damans227
Copy link
Contributor

@rohityadavcloud @nvazquez Just an FYI. I have shared a draft design document for this issue and am awaiting your feedback. Thanks!

@neogismm
Copy link

Hi folks, I'm interested in this idea and want to contribute to this project in gsoc being an open source beginner.

@neogismm
Copy link

As far as I understand, users have to be authorized/imported beforehand by an admin. If this is the case, I figured that OpenID connect (authentication protocol built on top of Oauth) has a state parameter which can connect partner IdPs (from LDAP or SAML) with OpenID providers such as Google to provide authentication.

@neogismm
Copy link

neogismm commented Feb 25, 2022

I also have a few questions:

  1. What if someone tries to sign in who is not yet authorized by the admin (new user). Should the new user be granted access at all or should their role be set as a Read Only User or some different role?
  2. What user data apart from: name, email, profile picture should be collected when the user authorizes access for cloudstack.

cc @rohityadavcloud @nvazquez @borisstoyanov

@nvazquez
Copy link
Contributor

Hi @neogismm for the first stage we can assume that all users should be able to log in to CloudStack and are authorized. The role could be set as User (existing CloudStack role). About the second question, important fields should be username (which to try registering the user on CloudStack), first name, last name and email. The profile picture could be treated as a nice to have IMO

@nvazquez
Copy link
Contributor

nvazquez commented Apr 1, 2022

Hi @khamarshaikh @Damans227 @neogismm - I would like to remind you that the application starts on 4th April and closes 19th April. If you are still interested in this project, please submit your proposal within that timeframe

@Damans227
Copy link
Contributor

Hi @khamarshaikh @Damans227 @neogismm - I would like to remind you that the application starts on 4th April and closes 19th April. If you are still interested in this project, please submit your proposal within that timeframe

Thanks for the reminder, @nvazquez I am eagerly waiting for April 4th.

@Damans227
Copy link
Contributor

@nvazquez @rohityadavcloud @borisstoyanov Hi Guys, I hope you are doing well. I have submitted a project proposal for this issue today. PTAL when you get a chance. Thanks!

@borisstoyanov
Copy link
Contributor

Thanks @Damans227, we'll have someone to look it up and get back to you if needed.

@neogismm
Copy link

@rohityadavcloud @nvazquez @borisstoyanov hi mentors, I've submitted my gsoc proposal. I've also emailed the Google docs link. Hope to hear from you soon.
Thanks.

@rohityadavcloud
Copy link
Member Author

Closing the issue tracking, it seem there's a JIRA ticket too.
I see activity on PR #6524

@rohityadavcloud rohityadavcloud removed this from the unplanned milestone Aug 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants