madwizard / webauthn
PHP的Web Authentication API服务器
v0.10.0
2024-05-28 08:49 UTC
Requires
- php: ^7.2.0|^8.0
- ext-json: *
- ext-openssl: *
- ext-sodium: *
- guzzlehttp/guzzle: ^6.5|^7.0
- kevinrob/guzzle-cache-middleware: ^3.3
- psr/cache: ^1.0|^2.0|^3.0
- psr/log: ^1.1|^2.0|^3.0
- sop/asn1: ^4.1
- sop/crypto-bridge: ^0.3.1
- sop/crypto-encoding: ^0.3.0
- sop/crypto-types: ^0.3.0
- sop/x501: ^0.6.1
- sop/x509: ^0.7.0
- symfony/cache: ^4.4|^5.2|^6.0|^7.0
Requires (Dev)
- phpseclib/phpseclib: ^3.0.1
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^8.5.29
- sebastian/comparator: ^3.0.5
- symfony/console: ^5.4
- symfony/dotenv: ^5.2
- symfony/var-dumper: ^5.4
README
当前状态
非常稳定,但API在1.0版本发布前可能会有轻微的变化。
目标
这个库旨在用PHP实现WebAuthn规范的受信任方服务器。重要的目标包括
- 实现第1级WebAuthn规范
- 高质量的、安全的、可维护的代码
- 易于最终用户使用
安装
通过composer安装
composer require madwizard/webauthn
支持的功能
-
PHP 7.2
- FIDO兼容的库
- 认证类型
- FIDO U2F
- 封装
- TPM
- Android SafetyNet
- Android密钥
- Apple
- 无
- 可选的'不支持的'类型,以处理未来的类型
- 元数据服务支持
- 验证元数据
- 扩展
- appid
使用
该库仍在开发中,因此文档有限。遵循的一般模式是
- 实现
CredentialStoreInterface
(您需要UserCredential
或您自己的UserCredentialInterface
实现) - 创建一个
RelyingParty
实例,并使用ServerBuilder
类构建服务器对象
$server = (new ServerBuilder()) ->setRelyingParty($rp) ->setCredentialStore($store) ->build();
- 使用
startRegistration
/finishRegistration
来注册凭据。务必在服务器端存储临时的AttestationContext
! - 以及使用
startAuthentication
/finishAuthentication
进行身份验证。务必在服务器端存储临时的AssertionContext
!