2013-01-06 3 views
1

J'essaie d'implémenter un schéma d'authentification à deux facteurs dans une application Symfony2 que j'écris. Fondamentalement, le système fonctionne normalement, avec une entité ORM Doctrine en tant que fournisseur de l'utilisateur. Cependant, je suis confronté à un problème avec savoir comment ajouter correctement et efficacement.Authentification en deux étapes

Fondamentalement, l'authentification devrait fonctionner comme telle. L'utilisateur voit le formulaire de connexion. Tapez la combinaison utilisateur/mot de passe, puis saisit un OTP (dans ce cas yubikey.)

L'authentification standard symfony2 gère très bien l'utilisateur/mot de passe. Cependant, j'aimerais ajouter l'option d'ajouter le support OTP (à condition que l'utilisateur ait une entrée de base de données pour le yubikey, et qu'il soit activé sur tout le site.)

Est-ce que quelqu'un a eu de la chance avec de tels schémas? Je voudrais éviter de réinventer la roue, et juste juste besoin de comprendre comment lier cela dans le schéma d'authentification actuel. A l'origine, j'avais pensé à utiliser la fonction isPasswordValid() dans l'encodeur de mot de passe personnalisé (bcrypt) que j'utilise. Cependant, il n'y a apparemment aucun moyen de passer le otp à cette fonction.

Répondre

1

Vous devrez écrire un fournisseur d'authentification personnalisé (je suppose que vous utilisez le fournisseur basé sur l'entité par défaut) qui incorpore la logique liée à l'OTP. Je ne vais pas copier et coller l'exemple de Symfony ici, mais il y en a un dans leur documentation pour référence.

+0

Je craignais autant. J'avais pensé que ce serait la route que je devrais prendre. Je déteste l'idée de devoir «réinventer» ce qui existe déjà. Le fournisseur d'authentification normal fonctionne très bien. Et oui, j'utilise le fournisseur basé sur l'entité par défaut. – Dameon87

+0

Bonjour, avez-vous implémenté votre propre fournisseur d'authentification, ou avez-vous résolu ce problème de manière différente? – Tom

Questions connexes