FIDO认证插件¶
重要的
此功能是一个技术预览版。在生产中使用此特性之前,我们建议您在环境中测试从物理备份恢复生产,并使用替代备份方法实现冗余。
雷竞技下载官网Percona Server for MySQL 8.0.30-22增加了对使用插件的快速在线识别(FIDO)认证方法的支持。FIDO身份验证提供了一组减少对密码依赖的标准。
服务器端fido身份验证插件支持使用外部设备进行身份验证。如果此插件是该帐户使用的唯一身份验证插件,则此插件允许无需密码的身份验证。多因素身份验证可以使用非FIDO MySQL身份验证方法、FIDO身份验证方法或两者的组合。
所有发行版都包括客户端authentication_fido_client插件。这个插件允许客户端连接到使用authentication_fido并在加载了该插件的服务器上进行身份验证。
插件和库文件名¶
插件和库的文件名如下表所示。
| 插件或文件名 | 插件或库文件名 |
|---|---|
| 服务器端插件 | authentication_fido |
| 客户端插件 | authentication_fido_client |
| 库文件 | authentication_fido.so |
安装FIDO身份验证插件¶
类命名的目录中必须存储库文件plugin_dir变量。
在服务器启动时,使用——plugin_load_add选项。该选项必须在每次服务器启动时添加。
(mysqld)……plugin-load-add = authentication_fido。所以…
mysql >安装插件authentication_fidoSONAME`authentication_fido.so`;
验证安装¶
使用显示插件语句或查询INFORMATION_SCHEMA。插件表,以验证插件已成功加载并且处于活动状态。
如果插件没有加载,检查服务器错误日志。
使用FIDO身份验证¶
FIDO可以与非FIDO身份验证一起使用。看到使用FIDO身份验证和非FIDO身份验证。FIDO可用于创建不需要密码的1FA帐户。有关说明,请参见使用狗。
使用FIDO身份验证和非FIDO身份验证¶
通过FIDO认证方式将FIDO设备与账号关联。必须先注册FIDO设备,才能一次性使用该帐户。该设备必须可用,用户必须执行所需的任何FIDO设备操作,例如添加拇指指纹,否则注册失败。
只能由该帐号命名的用户进行注册。如果一个用户尝试为另一个用户注册,将发生错误。
设备注册可以在mysql客户端或mysql Shell上进行。使用——fido-register-factor选项与因素或因素为设备。例如,如果使用FIDO作为第二种身份验证方法(这是一种常见的实践),则语句为——fido-register-factor = 2。
在继续注册之前,进行FIDO注册的任何身份验证因素都必须成功。
服务器检查用户帐户信息,以确定FIDO设备是否需要注册。如果必须注册设备,服务器端会将客户端会话切换到沙箱模式。注册必须在任何其他活动之前完成。在此模式下,仅适用改变用户允许使用语句。如果会话是以——fido-register-factor,客户端生成注册所需的报表。注册完成后,会话切换出沙盒模式,客户端可以正常运行。
设备注册完成后,服务器会更新mysql.user系统表中包含该帐户的设备注册状态,并存储公钥和凭据ID。
用户在注册和认证过程中必须使用相同的FIDO设备。如果设备复位或用户尝试使用其他设备,则认证失败。若要使用不同的设备,必须注销已注册的设备,并且必须重新完成注册过程。
仅使用FIDO认证¶
如果使用FIDO作为唯一的认证方法,则该方法不使用密码。身份验证使用生物特征扫描或安全密钥等方法。
属性创建帐户PASSWORDLESS_USER_ADMIN特权和创建用户特权。
元素的第一个元素authentication_policy取值必须为星号(*)。不要以插件名开头。控件的配置信息身份验证策略价值,看到配置多因素认证策略。
你必须包括初始身份验证由条款创建用户声明。服务器接受没有该子句的语句,但由于用户无法连接到服务器来注册设备,因此该帐户不可用。
的创建用户语法如下:
mysql >创建用户<用户名> @ <主机名>确认与authentication_fido最初的身份验证确认通过' <密码> ';
在注册时,用户必须使用密码进行身份验证。设备注册成功后,服务器会删除密码并修改账号,使FIDO成为唯一的认证方式。
注销FIDO设备¶
如果FIDO设备被更换或丢失,会出现以下现象:
| 行动要求 | 谁能执行这个动作 |
|---|---|
| 注销上一个设备 | 属性的帐户所有者或任何用户创建用户特权可以注销设备 |
| 注册新设备 | 计划使用该设备的用户必须注册新设备 |
注销设备的语句如下:
mysql >改变用户`用户名`@`主机名`{2|3.}因素注销;