多因素认证
多因素认证 (MFA) 模块要求您在提供密码后解决第二个挑战。
密码可以通过多种方式被泄露,例如,如果它是一个简单的密码,就可能被猜到。MFA通过要求以下内容提供第二层防御:
- 您知道的东西,例如您的用户名和密码,以及
- 您拥有的东西,例如发送到您手机的一次性密码。
您可以与任何其他身份验证提供程序一起使用MFA。如果启用了多个MFA模块,您可以在登录时选择一个。
您可以在您的用户帐户的 个人资料页面 中启用和禁用MFA。
可用的MFA模块
基于时间的一次性密码MFA模块
基于时间的一次性密码
Home Assistant生成一个与您手机上的应用程序同步的密钥。每三十秒左右,手机应用生成一个随机的六位数字。由于Home Assistant知道这个密钥,因此它知道将生成哪个数字。如果您输入正确的数字,您就可以进入。
设置 TOTP
在您的 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中像这样启用TOTP:
homeassistant:
auth_mfa_modules:
- type: totp
如果在 configuration.yaml
中未定义 auth_mfa_modules
配置部分,将自动加载名为“Authenticator app”的TOTP模块。
您需要在手机上安装一个身份验证器应用。我们推荐 Google Authenticator
重启Home Assistant后,转到您的 Profile,应该会有一个“多因素认证模块”部分。
点击 启用,将生成一个新的密钥。转到您的手机应用并输入该密钥,可以通过扫描二维码或手动输入二维码下方的密钥。

请将密钥视作密码 - 切勿将其泄露给他人。
您的手机应用现在将每三十秒左右生成一个不同的六位数代码。在Home Assistant中,在二维码处请求 代码 的地方输入其中一个代码。Home Assistant和您的手机应用现在已经同步,您可以使用显示在应用中的代码登录。
使用TOTP
一旦启用TOTP,Home Assistant将要求您输入手机应用中的最新代码才能登录。
TOTP是_基于时间_ 的,因此依赖于您的Home Assistant时钟准确。如果验证不断失败,请确保Home Assistant上的时钟是正确的。
通知多因素认证模块
通知MFA模块使用 notify集成 向您发送 基于HMAC的一次性密码notify
操作的目标。您使用这个密码登录。
设置MFA通知
在您的 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中添加通知MFA,如下所示:
homeassistant:
auth_mfa_modules:
- type: notify
include:
- notify_entity
# 示例配置,带有消息模板。
homeassistant:
auth_mfa_modules:
- type: totp
name: "Authenticator app"
- type: notify
message: "我差点忘了,想要进入我的俱乐部,您需要说 {}"
重启Home Assistant后,转到您的 Profile,应该会有一个“多因素认证模块”部分。在 通知一次性密码 选项上点击 启用。
尝试注销,然后再登录。系统会要求您输入发送到您的通知实体的六位一次性密码。输入密码以登录。
如果验证失败,将再次发送新的一次性密码。
通知MFA模块无法判断一次性密码是否成功送达。如果您未收到通知,将无法登录。
您可以通过编辑或删除文件 [your_config_dir]/.storage/auth_module.notify
来禁用通知MFA模块。