totp-cgi
totp-cgi copied to clipboard
A centralized totp solution based on google-authenticator
TOTPCGI
A centralized totp solution based on google-authenticator
.. image:: https://travis-ci.org/mricon/totp-cgi.svg?branch=master :target: https://travis-ci.org/mricon/totp-cgi :alt: Build Status
:Author: [email protected] :Copyright: Konstantin Ryabitsev and contributors :License: GPLv2+ :Version: 0.6.0
DECRIPTION
The idea of totpcgi (pronounced "Toopy-CGI") came when lamenting that google-authenticator implementation is "almost there" to be used as a generic org-wide 2-factor solution, but is annoyingly written to be a one-secret-per-service (or -per-host) solution. Thus, totpcgi was born, which uses files generated by google-authenticator and serves them from a central installation.
It is intended to be used with pam_url_.
.. _pam_url: https://fedorahosted.org/pam_url/
FEATURES
- Fully interoperable with Google-Authenticator
- Uses Google-Authenticator-generated secret files
- Supports pincodes (i.e. users log in with 'usercode555555')
- Supports file-based state backend for non-redundant installations and Postgresql for load-balanced setups.
- Supports encrypting the Google-Authenticator master secret with the user's pincode.
- Supports web-based provisioning to generate Google-Authenticator compatible files (or database entries).
REQUIREMENTS
- pyotp_
- google-authenticator_ to generate the .totp files by hand
- flup_ (for .fcgi only)
- psycopg2_ (for postgresql backend support)
- py-bcrypt_ (for pincode support using bcrypt)
- pycrypto_ and passlib_ (for encrypted-secret support)
- pam_url_ (for PAM support)
- python-qrcode_ (for provisioning support)
- MySQL-python_ (for MySQL backend support)
All of these dependencies are in EPEL for RHEL 6.
.. _pyotp: https://github.com/nathforge/pyotp .. _google-authenticator: https://code.google.com/p/google-authenticator/ .. _flup: http://trac.saddi.com/flup .. _psycopg2: http://initd.org/psycopg/ .. _py-bcrypt: https://code.google.com/p/py-bcrypt/ .. _pycrypto: https://www.dlitz.net/software/pycrypto/ .. _passlib: https://code.google.com/p/passlib/ .. _python-qrcode: https://github.com/lincolnloop/python-qrcode .. _MySQL-python: http://sourceforge.net/projects/mysql-python/
AUTHORS
- Konstantin Ryabitsev [email protected]
- Andrew Grimberg [email protected]
SUPPORT
Please open an issue on GitHub: https://github.com/mricon/totp-cgi/issues