Git Product home page Git Product logo

otp-auth's Introduction

OTP-AUTH

Простое приложение, которое позволяет совместно с nginx реализовать авторизацию по одноразовому паролю.

  • Установить nginx >= 1.5.4 с поддержкой с модуля ngx_http_auth_request_module Проверить можно командой
nginx -V 2>&1 | grep -qF -- --with-http_auth_request_module && echo "OK" || echo "FAIL"

В Ubuntu/Debian:

sudo aptitude update && sudo aptitude install nginx-extras
  • Клонировать репозитарий
git clone [email protected]:loukash/otp-auth.git
  • Установить все зависимости для python2.7
pip install -r requirements.txt
  • Создать базу данных
python manage.py initdb
  • Добавить пользователя
python manage.py useradd -l test
  • Добавить в Google Authentificator, или другой OTP генератор, новый аккаунт на основе данных, полученных на предыдущем шаге (Справка от Google ).

  • Запустить ОТП-прокси

python manage.py runserver
  • Изменить конфиг nginx
# Защищаемый location
location /admin {
  auth_request /auth;
  error_page 401 /login;
  root /var/www/html;
}

# Служебные locations
location = /auth {
  internal;
  proxy_pass_request_body off;
  proxy_set_header Content-Length "";
  proxy_pass http://127.0.0.1:5000;
}

location = /login {
  proxy_pass http://127.0.0.1:5000;
}
  • Рестартовать nginx
sudo service nginx reload

Теперь при открытии защищённого урла http://site.name/admin вы должны увидеть такую форму

login.png

Управление базой пользователей

python manage.py (initdb|useradd|userdel|userlist|renew)

Назначение Команда
Создать базу initdb
Добавить пользователя python manage.py useradd -l test
Удалить пользователя python manage.py userdel -l test
Список пользователей python manage.py userlist
Генерация новых резервных кодов python manage.py renew -l test -с 5

Если ключи не указаны явно, то они будут запрошены.

Использование reCaptcha

  • Получить Ключ и Секретный ключ https://www.google.com/recaptcha/admin

  • Прописать их в config.py и разрешить reCAPTCHA опцией RECAPTCHA_ENABLED = True

otp-auth's People

Contributors

loukash avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.