rawilk / yubikey-u2f
为Laravel添加Yubikey U2F身份验证。
Requires
- php: ^8.1
- illuminate/contracts: ^9.12
- illuminate/http: ^9.12
- spatie/laravel-package-tools: ^1.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- guzzlehttp/guzzle: ^7.4
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^7.5
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- spatie/laravel-ray: ^1.26
README
重要提示:此包不是webauthn包。它只能使用YubiKey设备生成的OTP代码来工作。这对我来说也主要是学习包,实际上可能不应该在生产中使用。如果您想支持安全密钥和其他设备,请考虑使用webauthn。
如果您有来自Yubico的YubiKey,您可以为您的Laravel应用程序添加安全密钥的双因素支持。您的用户账户可以注册最多5个安全密钥(可配置),然后使用这些密钥作为应用程序的双因素身份验证方式。
注意:此包仅提供验证和将密钥与用户关联所需的后端代码。您需要制作必要的UI,并添加到您的身份验证工作流程中进行双因素身份验证的逻辑。
要求
安装
您可以通过composer安装此包
composer require rawilk/yubikey-u2f
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="yubikey-u2f-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="yubikey-u2f-config"
您可以在以下位置查看默认配置: https://github.com/rawilk/yubikey-u2f/blob/main/config/yubikey-u2f.php
您可以使用以下命令发布此包提供的语言文件
php artisan vendor:publish --tag="yubikey-u2f-translations"
使用方法
首先,将\Rawilk\Yubikey\Models\HasYubikeys
特质添加到您的用户模型中。然后您可以像这样验证/关联用户的密钥
// An exception will be thrown if the key is not valid. $response = \Rawilk\Yubikey\Facades\Yubikey::verify(request()->otp); Auth::user()->associateYubikeyIdentity($response['identity']); // On a login 2fa request, you can verify the key is valid and tied to the user like this: $user->verifyYubikeyIdentity(request()->otp);
注意: request()->otp
只是获取服务器收到的包含安全密钥签名的输入的示例,该签名是在接触安全密钥时生成的。请确保根据您捕获方式相应调整。
文档
有关更多信息,请访问:https://randallwilk.dev/docs/yubikey-u2f
测试
composer test
更新日志
请参阅CHANGELOG以了解最近更改的信息。
贡献
请参阅CONTRIBUTING以了解详细信息。
安全
请查看我的安全策略了解如何报告安全漏洞。
致谢
本包的灵感来源于
替代方案
由于现有的解决方案要么已存档,要么不再积极维护,因此我创建了此包。如果您有此包的替代方案,请随时通过PR更新README,并在其中包含您的包。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。