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

SSO Support #297

Closed
wants to merge 8 commits into from
Closed

SSO Support #297

wants to merge 8 commits into from

Conversation

privacyguard
Copy link
Contributor

Implements LemmyNet/lemmy#2930.

This PR is based on LemmyNet/lemmy#4238 and #219 by @thepaperpilot.

We noticed that the original PR is outdated and has a lot of conflicts with the recent changes. We tried to keep the previous commits whenever possible (in lemmy-js-client and lemmy-ui).

How is works?

Admins can configure external OIDC providers from within the admin settings.
Once an OIDC provider is configured, users will be able to Sign In / Sign Up using external OIDC providers.
Available Configuration

The usual OIDC endpoints
auto_verify_email: When enabled, users signing up using OIDC won't need to go through email verification.
auto_approve_application: When enabled, users signing up using OIDC won't need manual approval even if applications are required.
account_linking_enabled: When enabled, users attempting with sign up with OIDC using an existing user email would link the OIDC account to the existing user.
Disclaimer
This is our first ever rust contribution.

Who we are? Why are we contributing to Lemmy?
Privacy Portal is an OIDC provider and an email aliasing service focused on privacy. We have decided to contribute to select open source projects that empower Free Speech online.
Our OIDC provider services are currently offered free of charge. In the future, we will have a generous free plan that will cover most deployments.
Using Privacy Portal as your OIDC provider offers your users great privacy benefits. User emails will automatically get replaced by single-purpose Privacy Aliases during sign up. Users will be able to enter any name (to be used as username). Users can benefit from email encryption and much more.

@chagai95
Copy link

chagai95 commented Sep 1, 2024

@dessalines We would love to use lemmy for our project, sso is a hard requirement, is there anything we can help to get this PR merged, or would you rather prefer us forking the project and implementing it on a fork?

@dessalines
Copy link
Member

Looks like its going to get worked on soon, but it'll be a while on a lemmy release anyway.

@privacyguard
Copy link
Contributor Author

@dessalines
The main Lemmy PR has been merged. We just updated this PR with the latest types from main.

PS. The lemmy-ui changes depend on a new release of lemmy-js-client.

@dessalines
Copy link
Member

Cool, I'll update this now and get a test deploy out.

@privacyguard
Copy link
Contributor Author

Oh actually there are some conflicts in this PR. We'll resolve them now.

@dessalines
Copy link
Member

I just did that, but you don't have allow edits to pull requests on this one. I'll do it in another branch.

@dessalines
Copy link
Member

K all this is merged in #348 now. I'm not exactly sure how you enable edits by maintainers (because I think that's the default), but it got turned off somehow here.

@dessalines dessalines closed this Sep 18, 2024
@privacyguard
Copy link
Contributor Author

Thanks!

@privacyguard privacyguard deleted the sso_support branch September 18, 2024 13:38
@dessalines
Copy link
Member

K this should be available in a few minutes as lemmy-js-client: 0.20.0-alpha.7

@privacyguard
Copy link
Contributor Author

privacyguard commented Sep 18, 2024

Perfect. Can we use this version in the lemmy-ui PR or is it just for local testing?

@Nutomic
Copy link
Member

Nutomic commented Sep 18, 2024

Yes you can use it for lemmy-ui.

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

Successfully merging this pull request may close these issues.

5 participants