meeb / tubesync

Syncs YouTube channels and playlists to a locally hosted media server
GNU Affero General Public License v3.0
1.96k stars 123 forks source link

Feature request: OIDC/SAML login and ACL syncing #451

Open grapemix opened 10 months ago

grapemix commented 10 months ago

Use case:

Lots of homelabers already have setup Authelia and use it as identity provider for various apps, it would be nice if tubesync is one of them too, so users don't have to login hundred times a day. Besides, it would be nice that only admin is allowed to add the channel, not everyone like kids. Authelia allows admin to define users' group and should able

Thanks to the Django's ecosystem, we already have django packages for this feature, so this feature should be low-hanging fruit. For examples:

https://github.com/juanifioren/django-oidc-provider https://github.com/grafana/django-saml2-auth

Group stuff: https://github.com/juanifioren/django-oidc-provider/issues/61 https://github.com/pennersr/django-allauth

meeb commented 10 months ago

Thanks for the issue. While there seems to be good support for Django authentication with Authelia, TubeSync doesn't actually use Django's authentication system at all. Originally, TubeSync had no authentication at all as it was only meant to be run on a trusted system or network. The authentication in TubeSync is just a basic HTTP authentication shim with no user accounts. You can integrate basic HTTP authentication already:

https://goauthentik.io/docs/providers/proxy/header_authentication

If a future version of TubeSync adds multi-user support and uses the Django auth system I'll look into reviewing some of these plugins.

grapemix commented 10 months ago

What a pity, but thanks for the app. Please consider to add this feature to the roadmap when you think the time is right.