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

Multi User support #543

Open
arielmoraes opened this issue Oct 26, 2021 · 29 comments
Open

Multi User support #543

arielmoraes opened this issue Oct 26, 2021 · 29 comments
Labels
enhancement New feature or request

Comments

@arielmoraes
Copy link

arielmoraes commented Oct 26, 2021

Does listmonk support multi users (each one with its own Dashboard)?

If not, is it feasible to fork it and do the required changes?

@knadh
Copy link
Owner

knadh commented Oct 27, 2021

It doesn't right now, but it has been on the to-do since the beginning. Some context here #125.

The requirements are:

  • A lightweight authentication lib.
  • Support for native credentials (e-mail / password).
  • Support for oAuth.
  • Granular permissions per user that control API calls and the corresponding UI interactions.

I wrote some pseudocode here a while ago, but never got a chance to focus on this. If you would like to take this up as a project, please feel free to propose a spec. Thanks!

@knadh knadh added the enhancement New feature or request label Oct 27, 2021
@knadh knadh mentioned this issue Oct 27, 2021
@arielmoraes
Copy link
Author

I see, but is that for multi users accessing a shared set of resources or each own user with separate data?

@knadh
Copy link
Owner

knadh commented Oct 27, 2021

There could be lists that are user owned (this is tricky to do), but multi-user here is not intended to be multi-tenancy, but permission'd access to the same instance.

@jooola
Copy link

jooola commented Oct 27, 2021

What about using tools such as ory/kratos or keratin/authn-server, so a powerful user management is shipped in no time and listmonk only has to build the bridge ?

I am not suggesting something like an external auth service, but really a full featured user management system embed into listmonk.

And if one wants to extend this, building multi tenancy would simply mean, spinning another listmonk but still having user management in a single place ?

@charlesmudy
Copy link

+1 to this ... infact, it might solve #499 ... its almost unusable now since every email is unique. Quite limiting.

@knadh
Copy link
Owner

knadh commented Oct 28, 2021

What about using tools such as ory/kratos or keratin/authn-server, so a powerful user management is shipped in no time and listmonk only has to build the bridge ?

These are full fledged, standalone auth servers, programs bigger than listmonk even. Embedding them into listmonk may not be ideal. I'll take a closer look at them though. The auth system will have oAuth support to plugin external providers.

But, multi-user scopes and views vs. multi-tenancy are two different beasts. Multi-tenancy is not on the roadmap.

+1 to this ... infact, it might solve #499 ... its almost unusable now since every email is unique. Quite limiting.

This is unrelated. Subscribers (and by extension, their primary ID, e-mails) being globally unique first-class citizens won't change.

@RKVodde
Copy link

RKVodde commented Jan 25, 2022

Multi User Support is a much needed feature which boosts the usage of a wonderful platform like "listmonk" in an organizational setting.

@bryceprutsos
Copy link

I agree that multi-user support would be a great enhancement. However, like the developer said it's tricky because of which user has access to what. Just pointing out that if multi-user support is a thing LDAP or SSO (SAML, CAS, OpenID) should be supported.

@NicoHood
Copy link
Contributor

NicoHood commented Feb 8, 2022

For me it would be great to have a minimal multi user mode: Just have multiple logins, all with the same access. The reason why this is important, because you can withdraw permissions of the user (aka delete or block a user), when someone leaves the team. We also then do not need to share passwords (this is so bad) and can use multiple accounts and do password reset via email oink. As a first step, this would help to get feedback and set the start for multiple logins.

@knadh
Copy link
Owner

knadh commented Feb 8, 2022

+1 @NicoHood. There should be a simple native permission based multi-user system. Once that's in place, plugging in OAuth, LDAP should be straight forward.

@RKVodde
Copy link

RKVodde commented Sep 4, 2022

Any progress on the multi user support.

@knadh
Copy link
Owner

knadh commented Sep 5, 2022

@RKVodde nothing yet, unfortunately. I was looking at this again last week and came across this new lib: https://github.com/go-pkgz/auth

Haven't had a chance to look at it up close yet.

@RKVodde
Copy link

RKVodde commented Sep 19, 2022

I am not into go-lang but this is what I found, might help. https://github.com/volatiletech/authboss

@c-nv-s
Copy link

c-nv-s commented Oct 9, 2022

@RKVodde nothing yet, unfortunately. I was looking at this again last week and came across this new lib: https://github.com/go-pkgz/auth

Haven't had a chance to look at it up close yet.

I used this library before for a custom OAuth setup and it was fairly straightforward which is nice.
I actually switched to it after failing to get authboss working which was actually a painful experience.

@rpmcoding
Copy link

Sounds good!

@titansmc
Copy link

titansmc commented Dec 2, 2022

Hi,
I am interested on it but found no multi-user support. Is it something being worked on? Before we start evaluating alternatives.
Cheers.

@knadh
Copy link
Owner

knadh commented Dec 5, 2022

It's on the to-do, but haven't started working on it yet. Unable to give a timeline, unfortunately.

@pwnoobz
Copy link

pwnoobz commented Jan 17, 2023

I'm also interested in this. I just want to stay subbed on the topic.

@jmaisonneuve01
Copy link

Hi I'm gonna start working on this function so if anybody got something already running message me plz!

@knadh
Copy link
Owner

knadh commented Jan 25, 2023

@jmaisonneuve01 please share a plan/proposal/spec of what and how you're planning to implement.

@jmaisonneuve01
Copy link

@jmaisonneuve01 please share a plan/proposal/spec of what and how you're planning to implement.

Still gathering and analyzing your code for the moment ill keep you updated

@samuk
Copy link

samuk commented Mar 7, 2023

Any news on this one @jmaisonneuve01

@titansmc
Copy link

https://github.com/coreos/go-oidc

Any chance the OIDC could be used ?

@floridarangers
Copy link

For what it's worth until this feature is available. I use caddy and forward_auth as a work around (nginx supports something like this as well). It's not perfect but it allows me to give multiple people access to the server without having this feature in place.

@knadh
Copy link
Owner

knadh commented Apr 2, 2024

I've finally started working on this. Ref: #1701 (comment)

@knadh knadh pinned this issue Apr 28, 2024
@knadh
Copy link
Owner

knadh commented Apr 28, 2024

Update:

image

  • User management on the UI and backend is done.
  • WIP: Frontend authentication, user permissions, permissions per list.

@chrislbrown84
Copy link

Great news - thanks for sorting this @knadh

@bryceprutsos
Copy link

Great news @knadh I will be more than happy to test.

@shanrahul
Copy link

@knadh when will be the feature the available ?

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

No branches or pull requests