supseven / webauthn
TYPO3 v11+ 中 MFA 登录的 Webauthn 提供者
Requires
- php: ^8.1
- ext-fileinfo: *
- ext-json: *
- psr/http-message: *
- psr/log: *
- typo3/cms-backend: ^11.5 || ^12.2
- typo3/cms-core: ^11.5 || ^12.2
- typo3/cms-fluid: ^11.5 || ^12.2
- typo3/cms-frontend: ^11.5 || ^12.2
- web-auth/webauthn-lib: ^4.0
- web-token/jwt-key-mgmt: ^3.1
- web-token/jwt-signature-algorithm-rsa: ^3.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.11
README
这是一个为 TYPO3 CMS 提供后端多因素认证 Webauthn 支持的扩展。它与支持 Webauthn 规范的每个浏览器和设备兼容。当使用基于 Chromium 的浏览器、Firefox 或 Safari 时,这包括硬件棒/密钥、Android 手机以及支持 Webauthn 的系统认证,如 Windows Hello,使用生物识别数据如指纹,以及/或 Active Directory。
安装
如果设置使用 TYPO3 v11.5+,请使用 composer 将扩展添加为依赖项
composer require supseven/webauthn
不支持旧版本的 TYPO3。
配置
以下所有配置设置都是可选的。以下是可用选项及其默认值(如果没有明确设置),如下所示。
基本设置
要将 webauthn 设置为默认的多因素认证方法,请将以下行添加到 TYPO3 设置中,例如在 AdditionalConfiguration.php 文件中
$GLOBALS['TYPO3_CONF_VARS']['BE']['recommendedMfaProvider'] = 'webauthn';
其他提供者仍然可以使用,webauthn 不会干扰它们中的任何一个。
扩展配置
以下配置值在 $GLOBALS['TYPO3_CONF_VARS']
数组中可用(全部可选!)!如果它们实际上被使用或显示,这取决于所使用的 webauthn 设备,例如:一个简单的安全密钥无法显示名称或图标。
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['webauthn']['name']
:包含 TYPO3 安装名称的字符串。如果没有明确设置,默认为 $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename']
的值。
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['webauthn']['id']
:包含应用 ID 的字符串。必须是域名。如果没有提供,浏览器将使用设备注册期间使用的域名。如果 TYPO3 后端在多个域名下可用,则应将其设置为“主”或“主要”域名。否则,注册的设备只能在注册的域名下使用。
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['webauthn']['icon']
:包含图标路径的字符串。如果没有设置,webauthn 将尝试设置 $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['backend']['loginLogo']
的值。如果没有设置这两个设置,则不会使用图标。实际上是否显示图标,取决于设备的功能,例如:没有显示器的棒无法显示它,智能手机可以。
用户配置
实际的设置是在“用户设置”模块中完成的,为每个后端用户单独进行。
如果 be_user 记录中有“真实姓名”,则将显示此名称,否则将使用“用户名”。
替代方案
扩展 mfa_webauthn 也提供了 MFA 的 webauthn 支持。主要区别在于 EXT:mfa_webauthn
以牺牲较少支持的设备为代价,提供了更 引导式 的 UI。此扩展提供了更多设备选择自由度,但可能会使不太经验的用户在选项上感到困惑。
一如既往:如有疑问,只需尝试两者,并选择最适合您需求的即可。
法律
许可
软件根据 GPLv2 许可或,根据您的选择,此许可证的后续版本许可。请参阅 LICENSE 或 https://gnu.ac.cn/licenses/old-licenses/gpl-2.0.txt。
提及
图标为官方的webauthn图标,由Bootstrap 图标项目提供,该项目使用MIT许可。详情请见https://github.com/twbs/icons/blob/main/LICENSE.md。
使用webauth-lib库,该库遵循MIT许可,详情请见https://github.com/web-auth/webauthn-lib。
客户端JS使用simlewebauthn/browser库,该库遵循MIT许可,详情请见https://github.com/web-auth/webauthn-lib。