linuxmint / cinnamon-screensaver

The Cinnamon screen locker and screensaver program
GNU General Public License v2.0
151 stars 86 forks source link

[Feature Req] 2FA with Google Authenticator #372

Open ItzSwirlz opened 3 years ago

ItzSwirlz commented 3 years ago
 * Cinnamon-Screensaver version 4.8.1
 * Distribution - Ubuntu Cinnamon Remix 21.04 (unstable branch)
 * 64 bit

This is an idea I got today that I want to discuss and think about with others before I (or someone else because I'm still new to this and figuring how to work out everything) - 2FA with Google Authenticator.

At first it seems easy; there is conviently a pam library for Google Authentication Google maintains, written in C (https://github.com/google/google-authenticator-libpam) but the problem is the end user setup

Initializing the request to the user besides the challenge of me setting it up and figuring it out will be easy, but the setup is a little more difficult.

Here is how a setup would go. You would have to start in a terminal and run google-authenticator. Then you link it with your phone, do the setup, blah. Somehow in cs-screensaver that'd have to be translated and put into schemas. The configuration is written to ~/.google_authenticator. Need to read that too.

Marking as an issue here because I may take this on myself, but if not someone else I or someone else will. (Also, discussion may be wanted and progress discussion should be put here)

Blueshawk commented 3 years ago

Just say no to more google intrusions.

corbin-auriti commented 3 years ago

I'd rather see an implementation of TOTP which can be used by any TOTP compatible app, open source or Google's, such as this implementation https://github.com/mtigas/django-twofactor

stevenmoto commented 3 months ago

Running into this as well, not google auth but using radius, the lockscreen/screensaver is unable to prompt for TOTP code when using pam radius module so it fails at login

auth sufficient or requisite pam_radius_auth.so does not work in /etc/pam.d/cinnamon-screensaver https://github.com/FreeRADIUS/pam_radius