rawilk/yubikey-u2f

此包已被废弃,不再维护。没有推荐替代包。

为Laravel添加Yubikey U2F身份验证。

资助包维护!
rawilk

v1.0.1 2022-05-12 19:50 UTC

This package is auto-updated.

Last update: 2022-11-03 15:27:06 UTC


README

Latest Version on Packagist Tests Total Downloads

social image

重要提示:此包不是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)。请参阅许可证文件以获取更多信息。