两步认证

时间:2013-01-06 19:54:21

标签: php symfony-2.1 two-factor-authentication

我正在尝试在我正在编写的Symfony2应用程序中实现双因素身份验证方案。基本上,系统目前正常工作,Doctrine ORM实体作为用户提供者。但是,我遇到了一个问题,即弄清楚如何正确且最有效地添加它。

基本上,身份验证应该如此工作。 用户看到登录表单。键入用户/密码组合,然后输入OTP(在本例中为yubikey。)

标准symfony2身份验证处理用户/密码就好了。但是,我想添加添加OTP支持的选项(前提是用户有yubikey的数据库条目,并且它在站点范围内启用。)

有没有人对这样的架构有运气?我想避免重新发明轮子,只需要弄清楚如何将其与当前的身份验证模式联系起来。

最初,我曾想过在我正在使用的自定义密码编码器(bcrypt)中使用isPasswordValid()函数。但是,似乎无法将otp传递给该函数。

1 个答案:

答案 0 :(得分:1)

您需要编写一个自定义身份验证提供程序(我假设您正在使用基于默认实体的提供程序),该提供程序包含OTP相关逻辑。我不会在这里复制和粘贴Symfony的示例,但是documentation中有一个可供参考。