Yubikey php整合

时间:2012-04-26 06:31:55

标签: php authentication

所以我一直在使用Yubikey,现在想将它集成到我的管理部分。

我在这里找到了一个很棒的课程:http://code.google.com/p/yubikey-php-webservice-class

唯一的问题是,它会检查:

[yubikeytest.php]

if (md5 (substr ($otp, 0, 12).":".$_POST['username']) != $token_id)

这意味着我必须已在数据库中拥有令牌ID。

但我无法弄清楚如何创建原始令牌并将其放在数据库中,因为$ token_id必须= OTP的md5哈希和用户名,但我们都知道otp是一次,因此永远不会=原始令牌

我做错了什么,我怎么能尽可能少地实现这个呢?

我想要做的是保留我当前的身份验证,但对于那些/想要使用yubiekey进行身份验证的用户,他们可以向我们注册他们的密钥< - 我想知道如何以及然后每次登录,这些用户,在登录期间,将要求您输入yubiekey OTP。

请帮助,一旦我得到一个合适的解决方案,我将让其他任何用户都可以访问,以便让这个过程更容易,因为这个主题没有太多信息。

PS。如果我正在寻找的内容已经在剧本中,请告诉我。

1 个答案:

答案 0 :(得分:3)

YubiKey OTP由两部分构成,最后32个字符是加密的OTP,之前的字符(默认为12)是静态公共ID,用于标识密钥。所以上面的代码只做公共id的md5,你可以从给定密钥的任何OTP中获取。

对于php解决方案,还有由Yubico维护的php-yubico项目:http://code.google.com/p/php-yubico/