2017-09-09 1 views
1

Est-il possible d'ajouter l'authentification 2fa à la page de connexion de Wagtail Admin.Authentification Wagtail Admin à deux facteurs

+0

Si vous avez plusieurs questions, s'il vous plaît leur demander des postes séparés - voir https://meta.stackexchange.com/questions/39223/one-post-with-multiple-questions-or-multiple-posts. – gasman

Répondre

1

Oui - la page de connexion de l'administrateur Wagtail utilise le cadre d'authentification intégré de Django, il est donc possible d'incorporer n'importe lequel des différents paquets 2FA pour Django, tel que django-otp. Si vous devez remplacer la page de connexion par une vue personnalisée, vous pouvez le faire en définissant un itinéraire URL pour r'^admin/login/$' dans urls.py, en veillant à le placer au-dessus de l'itinéraire pour r'^admin/'.

Vous pouvez également consulter wagtail-yubikey, une solution spécifique à Wagtail utilisant le périphérique YubiKey.

0

Oui! Avec un peu de hokiness. Je veux dire, l'écran de connexion est maintenant un bootstrap plutôt que le joli berger. Mais, cela vous mènera avec une tonne d'options telles que l'utilisation de Google Authenticator. Voici ce que j'ai fait:

De plus:

  • Ajout d'un lien vers {% url 'two_factor:profile' %} dans le modèle de compte Bergeronnette /templates/wagtailadmin/account/account.html afin que l'utilisateur peut gérer.
  • Ajout d'un lien pour revenir à l'administrateur dans le modèle de profil à deux facteurs de Django /templates/two_factor/profile/profile.html b/c il vide juste la personne sur l'écran de gestion.
  • Dans urls, ajouté ce qui suit:

    from two_factor.admin import AdminSiteOTPRequired 
    from two_factor.views import LoginView 
    
    admin.site.__class__ = AdminSiteOTPRequired 
    # btw, AdminSiteOTPRequired will only lock the django admin in to a 
    # mandatory requirement, but not Wagtail and needs further work 
    
    
    urlpatterns += [ 
        url(r'', include('user_sessions.urls', 'user_sessions')), 
        url(r'', include('two_factor.urls', 'two_factor')), 
        url(r'^admin/login/$', 
         view=LoginView.as_view(), name='login' 
         ), 
        url(r'^admin/', include(wagtailadmin_urls)), 
    ] 
    
  • dans les paramètres, LOGIN_REDIRECT_URL = '/admin/'

  • nouveaux utilisateurs sont envoyés à /account/login/?next=/account/two_factor/setup/