rclone / rclone-webui-react

A full fledged UI for the rclone cloud sync tool
MIT License
1.28k stars 164 forks source link

Any Room For LDAP Authentication / Integration? #109

Open Librechain opened 4 years ago

Librechain commented 4 years ago

Hey!

The app works and I like it.

Since it functions sort of like a PWA, I figured that it should be fairly easy to make it a multi-tenant app (in the truest sense).

I know .htpassword can be used, but assuming one were an admin with 100-200+ users, this could be excessively tedious.

Why I'm Requesting / Asking

To my understanding, if someone is hosting a public GUI, using one user + password combo would mean that anyone using that user / password combo would be able to view and/or manipulate whatever rclone processes are running.

Obviously, given the nature of rclone - this wouldn't be good.

Am I Making an Assumption?

Perhaps the user/pass combo is only used as a general access to the website & every authenticated access provides said requestor with a different 'view', isolated from any other parallel sessions going on?

Thanks in advance for helping me gain a better understanding & great job on this

negative0 commented 4 years ago

Hi. I don't have much (any) experience with LDAP in particular, but what I think you are asking for is role-based access to rclone functionalities with independent sessions.

Currently, the rclone itself is a standalone application and subsequently the GUI.

Is there a potential for a multi-tenant application? Definitely. The gui can easily be used to connect to different rclone instances. But as the rclone itself is standalone, adding such functionality will require major changes in the rclone itself.

This would require a lot of well-thought changes to rclone to facilitate this.

We could even have a service (outside of rclone) that can dynamically spawn and destroy rclone instances when different users use the service.

Librechain commented 4 years ago

Hey

I actually think I was being really dumb here (sorry about that).

I didn't realize that users could adjust servers on the main login screen.

My Overall Goal

The benefits of rclone are numerous. But, as is, only people that are fairly familiar with coding / terminals are able to leverage its capacity.

Spinning up an rclone gui instance is probably a trivial matter to us - but to an end user that rarely (if ever) is in the Terminal, this is probably a complete deal breaker.

Relevance to RClone GUI

The obvious solution is for someone to access a public instance, but then enter in their own personal IP (or wherever they've hosted the other GUI login) [right?]

Currently, it appears I'd need to at least be able to run 'git clone (your repo)', which - again - is very easy for us, but not for Joe Blow the end user that knows nothing about nothing.

If I'm not making sense, its my fault - not yours. Kind of hard to explain on my end

negative0 commented 4 years ago

You can find a deployed version of rclone gui here: https://rclone.github.io/rclone-webui-react/. More details about this: https://github.com/rclone/rclone-webui-react#alternatively-you-can-use-the-hosted-version

This is hosted on github pages and always contains the latest release. And can be used to login to any rclone instance (as long as CORS is configured correctly)

We are actually planning to develop rclone as a service. The discussion is still in it's early stages. Let's see how that goes.

negative0 commented 4 years ago

@Librechain does that solve your issue?