验证
Home Assistant 内置了一套认证系统,允许不同用户与 Home Assistant 交互。该认证系统由多个部分组成。

身份验证提供程序
身份验证提供程序用于验证用户身份。每个身份验证提供程序都定义了所使用的认证方式。默认情况下,会启用内置的 Home Assistant 身份验证提供程序,它会将用户信息安全地存储在配置目录中。
Home Assistant 会在 configuration.yaml 中指定要使用的身份验证提供程序。同一类型的身份验证提供程序可以同时存在多个实例,此时每个实例都通过唯一标识符区分。同一类型的不同身份验证提供程序实例之间不会共享凭据。
凭据
凭据表示用户通过某个特定身份验证提供程序完成认证后的结果。它会在用户成功通过身份验证时生成,并让系统能够在内部定位到对应用户。如果该用户尚不存在,系统会创建一个新用户;但该用户不会立即激活,而是需要所有者批准。
一个用户可以关联多个凭据,但对于每个特定的身份验证提供程序,只能有一个对应凭据。
用户
系统中的每个人都对应一个用户。若要以某个用户身份登录,需要通过与该用户关联的任一身份验证提供程序完成认证。用户登录后,将获得刷新令牌和访问令牌,用于向 Home Assistant 发起请求。
所有者
在初始设置期间创建的用户会被标记为“所有者”。所有者可以管理其他用户,并始终拥有全部权限。
组
用户可以属于一个或多个组,系统通过组成员关系向用户授予权限。
权限策略
权限策略用于描述某个组可以访问哪些资源。有关权限与策略的更多信息,请参阅权限。
访问和刷新令牌
希望访问 Home Assistant 的应用程序需要引导用户启动授权流程。当用户在 Home Assistant 中成功授权应用程序后,系统会生成一个授权码。该授权码可用于换取访问令牌和刷新令牌。访问令牌具有有限的生命周期,而刷新令牌会一直有效,直到用户将其删除。
访问令牌用于访问 Home Assistant API。刷新令牌用于检索新的有效访问令牌。
刷新令牌类型
刷新令牌分为三种不同类型:
- 正常:这些是用户授权应用程序时生成的令牌。应用程序将代表用户保留这些令牌。
- 长期访问令牌:这些是支持长期访问令牌的刷新令牌。它们是内部创建的,永远不会暴露给用户。
- 系统:这些令牌仅限于由 Home Assistant 操作系统和 Supervisor 等系统用户生成和使用。它们永远不会暴露给用户。

