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

2FA Options #35

Open
3 of 4 tasks
ShaneMcC opened this issue Nov 7, 2018 · 3 comments
Open
3 of 4 tasks

2FA Options #35

ShaneMcC opened this issue Nov 7, 2018 · 3 comments

Comments

@ShaneMcC
Copy link
Member

ShaneMcC commented Nov 7, 2018

2FA workflow sucks a bit.

I dislike having to pick up the phone, open authy, find the right app, then type the code. (Not a unique problem!)

It would be nice to support some other options:

  • U2F
    • I have no compatible devices, and have no idea how this works
  • Yubikey
    • Should be easy enough to add as it's still a "type a code, check it matches" option
  • Push Auth
    • Authy, DuoSecurity etc. This is a bit more work. We'd want to have the login page wait for the authentication to reply yay/nay and offer the option of just giving a code instead if possible.
  • Backup single-use codes.
  • Something else?
ShaneMcC added a commit to mydnshost/mydnshost-frontend that referenced this issue Nov 11, 2018
@ShaneMcC
Copy link
Member Author

ShaneMcC commented Nov 11, 2018

We can now do single-use codes.

Will look at Yubikey at some point.

For push-based services I'm thinking that we can do something like:

When we reject an authentication request that requires 2fa, if there is a push-based method added to the account we can return a "supports push" header of some kind.

The calling party (the frontend) can then call a /pushAuth endpoint. That endpoint then triggers the push and waits (long-polling) for a period of time for the push to be approved.

If the push is approved generate a one-time-use temporary internal twofactorkey with a short expiry time and return the code to the user, they can then pass this through as the 2fa key for login.

The temporary internal key can then be removed automatically after being used.

This requires minimal changes to the auth flow then.

ShaneMcC added a commit that referenced this issue Nov 11, 2018
@ShaneMcC
Copy link
Member Author

ShaneMcC commented Nov 11, 2018

Yubikey OTPs:

92afdaf
mydnshost/mydnshost-frontend@348d897

ShaneMcC added a commit to mydnshost/mydnshost-php-api that referenced this issue Mar 10, 2019
ShaneMcC added a commit to mydnshost/mydnshost-frontend that referenced this issue Mar 10, 2019
@ShaneMcC
Copy link
Member Author

More Authy Commits:

mydnshost/mydnshost-frontend@838b2aa
9c3e8cf

Probably not going to enable this any time soon, but the ground work is at least there for doing 2fapush stuff if I find something a bit less awful.

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

No branches or pull requests

1 participant