Asegurar el inicio de sesión de administrador de Django con OTP (autenticación de 2 factores)

La autenticación multifactor es uno de los principios más básicos al agregar seguridad a nuestras aplicaciones. En este tutorial, agregaremos la autenticación de múltiples factores mediante el método OTP. Construyendo Blog CMS (Sistema de Gestión de Contenidos) con Django

Configuración de la autenticación de 2 factores para el proyecto Django

Instalaremos el paquete TOTP para nuestro blog CMS que agregará seguridad OTP para nuestro inicio de sesión de administrador. Primero instale el paquete django-otp

pip install django-otp

 y agregue ‘django_otp, django_otp.plugins.otp_totp ‘ en nuestras aplicaciones instaladas y django_otp.middleware.OTPMiddleware en la sección de middleware de nuestro archivo de configuración. 

Python3

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_otp',
    'django_otp.plugins.otp_totp'
  
]
  
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django_otp.middleware.OTPMiddleware'
]

Ahora corre,

# migrate our app
python3 manage.py migrate

Creación de un dispositivo TOTP – 

Ahora inicie sesión en django admin para crear un dispositivo TOTP. Puedes verlo después de iniciar sesión

página de inicio de sesión

Haga clic en agregar y complete los detalles para crear un nuevo qrcode TOTP

añadir dispositivos TOTP

 Ahora ingrese nuevamente a la sección del dispositivo totp y abra el código QR y escanéelo con sus aplicaciones TOTP como Authy, las aplicaciones Google Authenticator.

escanear el qrcode

Establecer clase OTP de administración:

Ahora ingrese al archivo django urls.py en gfgblog, no en el blog urls.py y agregue las líneas

Python3

from django_otp.admin import OTPAdminSite
  
admin.site.__class__ = OTPAdminSite

Producción –

Ahora cierre la sesión e inicie sesión en el administrador de django, debe ingresar OTP cada vez que necesite iniciar sesión en el administrador de django.

administrador de django con OTP

Algunos principios básicos de seguridad a seguir

  • Mantenga Debug = False en producción
  • Límite permitido alojado en nuestra IP de servidor, host local y nombres de host
  • Mantenga la clave secreta fuerte y segura
  • Todas las formas usan HTTPS en producción
  • Controle las cargas de los usuarios si son administrados por varios usuarios
  • Mantenga su base de datos segura y no use SQLite en producción
  • Intente usar encabezados de seguridad y contenido en producción, a continuación se proporcionan algunos encabezados, agréguelos en Settings.py

Python3

SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_CONTENT_TYPE_NOSNIFF = True
CSRF_COOKIE_SECURE = True

Publicación traducida automáticamente

Artículo escrito por kushwanthreddy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *