多因素认证

多因素认证 (MFA) 模块要求您在提供密码后解决第二个挑战。

密码可以通过多种方式被泄露,例如,如果它是一个简单的密码,就可能被猜到。MFA通过要求以下内容提供第二层防御:

  • 您知道的东西,例如您的用户名和密码,以及
  • 您拥有的东西,例如发送到您手机的一次性密码。

您可以与任何其他身份验证提供程序一起使用MFA。如果启用了多个MFA模块,您可以在登录时选择一个。

您可以在您的用户帐户的 个人资料页面 中启用和禁用MFA。

可用的MFA模块

基于时间的一次性密码MFA模块

基于时间的一次性密码 (TOTP) 在现代认证系统中被广泛采用。

Home Assistant生成一个与您手机上的应用程序同步的密钥。每三十秒左右,手机应用生成一个随机的六位数字。由于Home Assistant知道这个密钥,因此它知道将生成哪个数字。如果您输入正确的数字,您就可以进入。

设置 TOTP

在您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中像这样启用TOTP:

homeassistant:
  auth_mfa_modules:
    - type: totp

如果在 configuration.yaml 中未定义 auth_mfa_modules 配置部分,将自动加载名为“Authenticator app”的TOTP模块。

您需要在手机上安装一个身份验证器应用。我们推荐 Google AuthenticatorAuthy。这两款应用均可用于iOS或Android。

重启Home Assistant后,转到您的 Profile,应该会有一个“多因素认证模块”部分。

点击 启用,将生成一个新的密钥。转到您的手机应用并输入该密钥,可以通过扫描二维码或手动输入二维码下方的密钥。

设置多因素认证的截图

Caution

请将密钥视作密码 - 切勿将其泄露给他人。

您的手机应用现在将每三十秒左右生成一个不同的六位数代码。在Home Assistant中,在二维码处请求 代码 的地方输入其中一个代码。Home Assistant和您的手机应用现在已经同步,您可以使用显示在应用中的代码登录。

使用TOTP

一旦启用TOTP,Home Assistant将要求您输入手机应用中的最新代码才能登录。

Note

TOTP是_基于时间_ 的,因此依赖于您的Home Assistant时钟准确。如果验证不断失败,请确保Home Assistant上的时钟是正确的。

通知多因素认证模块

通知MFA模块使用 notify集成 向您发送 基于HMAC的一次性密码。它通常发送到您的手机,但可以发送到任何支持 notify 操作的目标。您使用这个密码登录。

设置MFA通知

在您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中添加通知MFA,如下所示:

homeassistant:
  auth_mfa_modules:
    - type: notify
      include:
        - notify_entity

Configuration Variables

exclude list (Optional)

您想要排除的通知实体列表。

include list (Optional)

您想要包含的通知实体列表。

message template (Optional)

消息模板。

# 示例配置,带有消息模板。
homeassistant:
  auth_mfa_modules:
    - type: totp
      name: "Authenticator app"
    - type: notify
      message: "我差点忘了,想要进入我的俱乐部,您需要说 {}"

重启Home Assistant后,转到您的 Profile,应该会有一个“多因素认证模块”部分。在 通知一次性密码 选项上点击 启用

尝试注销,然后再登录。系统会要求您输入发送到您的通知实体的六位一次性密码。输入密码以登录。

如果验证失败,将再次发送新的一次性密码。

Note

通知MFA模块无法判断一次性密码是否成功送达。如果您未收到通知,将无法登录。

您可以通过编辑或删除文件 [your_config_dir]/.storage/auth_module.notify 来禁用通知MFA模块。