firesphere / bootstrapmfa
启用带备用代码的认证
Requires
Requires (Dev)
- phpunit/phpunit: ^5.7
Suggests
- firesphere/yubiauth: Authentication via Yubikey 2FA
This package is auto-updated.
Last update: 2024-09-14 18:58:31 UTC
README
本模块旨在通过引导一个未注册的认证器,使用备用令牌来帮助创建SilverStripe的多因素认证方法,以获得基本启动。
当前阶段是一个相当基本的实现,但它应该能让你快速开始。例如,请参阅https://github.com/Firesphere/silverstripe-yubiauth/tree/mfa-base
安装
composer require firesphere/bootstrapmfa
使用
首先,在安装后,创建您的MFA模块。(或使用现有的一个,该模块附加在此之上)
该模块本身并不做任何事情,只是创建了基于2因素令牌的备用登录的基本要求。它不提供积极的2FA登录方法。
您的认证器应该扩展BootstrapMFAAuthenticator
。在验证方法中,如果预期的MFA方法失败,您可以回退到parent::validate()
方法。
这是Bootstrap认证器,将允许人们使用一次性文本令牌登录。
您的第二因素表需要是它自己的表,但必须有一个名为token
的字段,该字段可以通过Bootstrapper回退。
这可以在创建成员时通过BootstrapMFAProvider::updateTokens($member)
来完成。
配置
--- name: AppMFAAuthenticator --- Firesphere\BootstrapMFA\BackupCode: token_limit: 15 # Default amount of tokens Firesphere\BootstrapMFA\CodeGenerator: length: 6 # Length of the codes type: numeric # Type of the codes, numeric|mixed|characters case: mixed # Casing of the characters. upper|lower|mixed
在CMS中,可以请求一组新的令牌。
如果用户重置其密码,登录界面将显示创建的新令牌(一次)
令牌以加密方式存储,无法检索,只能验证。
扩展
本模块旨在扩展而不是独立工作。它只提供备用代码,就像其他多因素认证网站一样。
在构建基于此的MFA模块时,需要以下几个要求
- 您的MFALoginHandler扩展BootstrapMFALoginHandler
- 您的MFAProvider实现MFAProvider
- 您的认证器扩展BootstrapMFAAuthenticator
- 必须调用validateBackupCode方法来验证MFA备用代码
使用此方法的一个示例可以在firesphere/silverstripe-yubiauth找到
一个非功能性演示模块预计很快会发布~
许可证
本模块在BSD 3条款许可证下发布,尽管这些许可证不在实际类中,但许可证确实适用
https://open-source.org.cn/licenses/BSD-2-Clause
版权 (c) 2017-NOW(), Simon "Firesphere" Erkelens
保留所有权利。
在满足以下条件的情况下,允许以源代码形式和二进制形式重新分发和使用,无论是否修改
源代码重新分发必须保留上述版权声明、本条款列表和以下免责声明。以二进制形式重新分发必须以文档和其他材料的形式复制上述版权声明、本条款列表和以下免责声明,这些文档和材料随分发提供。
本软件由版权所有者和贡献者提供,"现状"提供,并且不承担任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对因使用本软件而产生的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论损害是由于何种原因引起的,以及基于何种责任理论,无论是基于合同、严格责任还是侵权(包括疏忽或其他)。
您是否阅读了整个自述文件?太棒了!
下面是一张专为您准备的牛的照片。
/( ,,,,, )\
_\,;;;;;;;,/_
.-"; ;;;;;;;;; ;"-.
'.__/`_ / \ _`\__.'
| (')| |(') |
| .--' '--. |
|/ o o \|
| |
/ \ _..=.._ / \
/:. '._____.' \
;::' / \ .;
| _|_ _|_ ::|
.-| '==o==' '|-.
/ | . / \ | \
| | ::| | | .|
| ( ') (. )::|
|: | |; U U ;|:: | `|
|' | | \ U U / |' | |
##V| |_/`"""`\_| |V##
##V## ##V##