احراز هویت دو مرحله‌ای در جنگو
جنگو

فعال سازی تایید اعتبار دو مرحله ای (2FA) در پنل ادمین جنگو

  • 1403/09/14

فعال سازی تایید اعتبار دو مرحله ای (2FA) در پنل ادمین جنگو

استفاده از تایید اعتبار دو مرحله‌ای (2FA) برای پنل مدیریت در جنگو به طور قابل توجهی امنیت سیستم شما را افزایش می‌دهد. این روش امنیتی، علاوه بر رمز عبور، به یک کد موقت یا تاییدیه اضافی نیاز دارد که معمولاً به گوشی همراه یا ایمیل شما ارسال می‌شود. این لایه اضافی از امنیت به جلوگیری از دسترسی غیرمجاز کمک کرده و محافظت در برابر حملات فیشینگ و سرقت اطلاعات را بهبود می‌بخشد. به‌ویژه در پنل‌های مدیریت که دسترسی به داده‌های حساس و تنظیمات حیاتی را فراهم می‌کند، 2FA یک دفاع موثر و ضروری است.

برای فعال‌سازی تأیید اعتبار دو مرحله‌ای (2FA) در پنل مدیریت جنگو، مراحل زیر را دنبال کنید:

1. نصب پکیج‌های مورد نیاز

ابتدا باید پکیج‌های زیر را نصب کنید:

pip install qrcode

pip install django-otp

2. افزودن به تنظیمات پروژه

پس از نصب پکیج‌ها، آنها را به لیست اپلیکیشن‌ها در فایل settings.py اضافه کنید:

python

INSTALLED_APPS = [

   'django_otp',

   'django_otp.plugins.otp_totp',

   # سایر اپلیکیشن‌ها

]

همچنین، middleware مربوط به django-otp را اضافه کنید:

MIDDLEWARE = [ 

'django_otp.middleware.OTPMiddleware',

# سایر middleware ها

 ]

3. اجرای مهاجرت پایگاه داده

پس از اضافه کردن تنظیمات به پروژه، دستور زیر را در ترمینال اجرا کنید تا تغییرات به پایگاه داده اعمال شود:

bash

python manage.py migrate

4. تنظیمات در پنل مدیریت

پس از اعمال تنظیمات جدید، وارد پنل مدیریت خود (آدرس پیش‌فرض: /admin/) شوید. اکنون یک بخش جدید با نام OTP TOTP در تنظیمات مدیریت اضافه شده است.

  1. وارد بخش TOTP devices شوید.
  2. گزینه Add TOTP Device را انتخاب کنید.
  3. در بخش User، کاربر مورد نظر را انتخاب کرده و یک نام برای دستگاه وارد کنید.
  4. پس از انجام تنظیمات، روی Save کلیک کنید.
  5. با کلیک روی آیتم ذخیره شده جدید، QR code نمایش داده می‌شود.

5. اسکن QR Code

با استفاده از نرم‌افزار Google Authenticator یا برنامه مشابه، QR code را اسکن کنید تا کدهای ورود دو مرحله‌ای را دریافت کنید.

6. تنظیم پنل مدیریت اختصاصی

برای ایجاد یک پنل مدیریت اختصاصی با پشتیبانی از OTP، در فایل urls.py کتابخانه‌های زیر را import کنید:

from django_otp.admin import OTPAdminSite
from django.apps import apps
from django_otp.plugins.otp_totp.models import TOTPDevice

سپس یک کلاس برای پنل مدیریت ایجاد کنید:

class OTPAdmin(OTPAdminSite):
  site_header = "Site Header"
  site_title = "Site Title"
  index_title = "Welcome to AdminPanel"

7. ثبت مدل‌ها در پنل جدید

اپلیکیشن‌ها و مدل‌های مورد نظر خود را برای نمایش در پنل ثبت کنید:

 

admin_site = OTPAdmin(name='OTPAdmin')
for model in apps.get_models():
  if model._meta.app_label in ['نام اپلیکیشن‌های مورد نظر']:
      admin_site.register(model)

8. فعال‌سازی پنل مدیریت جدید

در نهایت، آدرس جدید پنل مدیریت را به شکل زیر تنظیم کنید:

 

path('custom-admin/', admin_site.urls)

همچنین می‌توانید در صورت نیاز، پنل مدیریت قبلی را غیر فعال کنید.

لینک مستندات:

https://pypi.org/project/django-otp/

https://pypi.org/project/qrcode/

دیدگاه
نوشتن یک دیدگاه

آدرس ایمیل شما منتشر نخواهد شد، فیلدهای الزامی علامت گذاری شده است*.

عضویت در خبرنامه

رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.