outline-apps icon indicating copy to clipboard operation
outline-apps copied to clipboard

Ability to limit the number of devices using an access key at the same time

Open thelonious89 opened this issue 5 years ago • 13 comments

Is there a built-in fix yet for limiting concurrent sessions? Similar to this request here: https://github.com/Jigsaw-Code/outline-server/issues/32#issuecomment-379418574

It’s important as one part of an access protocol in a security regime.

thelonious89 avatar Jun 03 '19 00:06 thelonious89

Do you mean the number of different devices using an access key? Could you clarify why you need that?

fortuna avatar Aug 02 '19 19:08 fortuna

Yes, the number of different devices using an access key at the same time. It's important because:

  1. if the confidentiality of the keys are broken, then at least we can limit access. So if I give employee Bob the key to put on his company device, he cannot share it with Alice's device.
  2. Track the bandwidth and usage better, so I know it's all coming from 1 device rather than maybe an entire office of machines.

Thank you~

thelonious89 avatar Aug 02 '19 22:08 thelonious89

Thanks for the feedback. We are looking into implementing features to allow admins to control access to their servers.

We are currently focused on implementing quotas, but we'll consider this after that.

fortuna avatar Aug 02 '19 22:08 fortuna

Excellent thank you. Yes quotas are actually the best ultimate way to stop bandwidth abuse because even one user can fry the lines. So working on quotas should be the first priority.

thelonious89 avatar Aug 02 '19 23:08 thelonious89

Any updates about this features request...?

remagio avatar Jun 09 '20 12:06 remagio

This feature is really needed...

HosseyNJF avatar Aug 06 '20 17:08 HosseyNJF

FYI, data limits has launched already. We may tweak it a bit. W are focused on server resilience, making sharing easier and adding more cloud providers. Limiting concurrent connections is something we've thought about, but it's not in the immediate roadmap.

fortuna avatar Aug 06 '20 18:08 fortuna

@fortuna I like to contribute to this feature because I need it personally. could you give me a little guidance so that I can start developing the feature?

HosseyNJF avatar Aug 06 '20 19:08 HosseyNJF

Hello team, this is really annoying that the entire world is asking you to implement this single essential feature for YEARS BUT you continue to polish the UI.

halpro avatar Mar 31 '23 09:03 halpro

@halpro we can only ask developers to do it. Show respect and gratitude to the developers for making it OpenSource or contribute and make it yourself

@fortuna Also I vote that this will be a good feature, for example to control how much bandwidth this key can take. For example:

  1. I have 2 profile keys. First for me, and second I shared
  2. I logically believe, that I will share half of bandwidth in moment if we use it in parallel.
  3. Second user install this key on 10 different devices and ever shared it to another man. So bandwidth in moment now shared not for 2 devices, but for 11 or more. And I ever cannot track it or restrict
  4. If this feature will be implemented - I will select that this key can be used only by one device same time and problem is solved

Also will be nice to configure it via API

crash481 avatar Oct 31 '23 18:10 crash481

@HosseyNJF did you contributed and have some success on implement it?

crash481 avatar Oct 31 '23 18:10 crash481

@crash481 I did try, but it is impractical at best. The best method is to limit by IP count (prevent more than 2 IPs from using the service simultaneously), but I don't have the resources and time to develop it. :(

HosseyNJF avatar Nov 06 '23 14:11 HosseyNJF

@crash481 I did try, but it is impractical at best. The best method is to limit by IP count (prevent more than 2 IPs from using the service simultaneously), but I don't have the resources and time to develop it. :(

IP count isn't best method, cause different devices with same key can be hidden under NAT, for example.

The best method, in my opinion, is to simply add an incremental counter (or even a boolean flag) and break the connection if it's set to some value. Thus, the first connected user sets the flag to the "busy" state, the second and subsequent ones receive a connection break.

BolshakovEvgeniy avatar Jan 19 '24 12:01 BolshakovEvgeniy