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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mandatory 2FA] Spec: Admin 2FA support provider #11020

Closed
3 tasks done
ChristophWurst opened this issue Sep 3, 2018 · 8 comments
Closed
3 tasks done

[Mandatory 2FA] Spec: Admin 2FA support provider #11020

ChristophWurst opened this issue Sep 3, 2018 · 8 comments

Comments

@ChristophWurst
Copy link
Member

ChristophWurst commented Sep 3, 2018

Mandatory 2FA in Nextcloud 15

Overview/progress board: https://github.com/orgs/nextcloud/projects/17

馃殌


Specification: Admin 2FA support provider

For Nextcloud 15, we want to have a clean, secure and less error-prone way to help admins in unlocking user accounts where users lost access to one of their second factors. This should make both admins and users happy.

Overview

This will be a new 2FA provider where you have to enter a code (number?) on the second factor page. It will be registered like any other provider and could therefore be used as an alternative (no access to other factors) or singular second factor (2FA enforced, no other login allowed).

The app could be either just enabled by default or enabled on demand (when admins generate a code, disabled after successful code usage).

Admin interface

The admin should have an interface where they can enter a username. If the username is valid, the system shall generate and display a new code. The admin tells the user the code (via an undefined channel, e.g. telephone). Note: The admin does not have to wait for the user to log in.

This could be added to the admin 2FA settings section as well as an occ command (ref #11019).

Open questions

@rullzer
Copy link
Member

rullzer commented Sep 3, 2018

Basically #9643 but lets track it here.

@rullzer rullzer mentioned this issue Sep 3, 2018
@ChristophWurst ChristophWurst modified the milestone: Nextcloud 15 Sep 3, 2018
@ChristophWurst
Copy link
Member Author

Oh, I'm sorry, totally forgot we already had a ticket for this.

@ChristophWurst
Copy link
Member Author

@rullzer should the admin provider be a separate app or shall we include this in the server (repo) just like the backup codes provider?

@ChristophWurst
Copy link
Member Author

Started development at https://github.com/ChristophWurst/twofactor_admin.

@ChristophWurst ChristophWurst added the 2. developing Work in progress label Sep 7, 2018
@ChristophWurst
Copy link
Member Author

First working version can be found at nextcloud/twofactor_admin@6952db2.

@rullzer
Copy link
Member

rullzer commented Sep 25, 2018

Should the code be temporary/time-based?

Yes. I mean we could just use TOTP with a code that is valid for 30 or 60 minutes.

Should admins see users for which codes have been generated? E.g. to delete outdated ones.

Not required if the time is limited IMO.

Should we add an option for admins to send out the code via email? Might make the admin UX better, but could be problematic in terms of security.

Nah. You have to contact your admin anyways. For e-mail we can have a different provider if they want.
I vote to keep it simple for now. We can extend later if needed.

@ChristophWurst
Copy link
Member Author

Yes. I mean we could just use TOTP with a code that is valid for 30 or 60 minutes.

Fine except that we'd have to use a different lib as the totp https://github.com/nextcloud/twofactor_totp/blob/ef7616ef25d6b52b455365af3188723ddd3911d9/composer.json#L3 app to prevent a dependency hell, which is kind of 馃挬

I'd go for a simple timestamp-based implementation.

@rullzer
Copy link
Member

rullzer commented Sep 25, 2018

That would also work of course.

@ChristophWurst ChristophWurst moved this from In progress to Done in Mandatory 2FA Sep 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Mandatory 2FA
  
Done
Development

No branches or pull requests

3 participants