尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何用 Authelia CLI 导出并导入 TOTP 配置以完成备份恢复

如何用 Authelia CLI 导出并导入 TOTP 配置以完成备份恢复 如何用 Authelia CLI 导出并导入 TOTP 配置以完成备份恢复【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia如果你需要迁移 Authelia 实例、更换数据库后端或者只是担心数据库损坏导致用户的两步验证失效就需要把数据库中的 TOTP 配置导出一份可恢复的文件并在需要时用导入命令写回。Authelia 的authelia storage user totp export/authelia storage user totp import子命令就是为这个场景设计的导出命令把 TOTP 配置导出为可导入的 YAML 文件导入命令再从该 YAML 文件恢复。为什么要用 CLI 导出而不是直接备份数据库自 4.33.0 起Authelia 在数据库中保存的 TOTP 密钥是经过加密的目的是让仅有数据库访问权限的人无法轻易拿到用户的两步验证信息见 TOTP 配置文档的 Encryption 一节。这意味着直接拷贝数据库表里的数据并不能直接还原 TOTP 配置。官方文档明确说明导出命令需要「配置或至少包含存储后端连接信息和加密密钥的最小配置」才能工作。因此导出/导入的可靠路径是走 CLI 命令而不是手工处理数据库。准备条件执行导出或导入前你需要具备两项信息存储后端连接方式你的 Authelia 使用 SQLitelocal、MySQL 还是 PostgreSQL见 Storage 配置文档storage.encryption_key的值这是加密数据库中敏感数据的密钥也是执行这两个命令的必备项。有两种提供方式二选一配置方式主路径使用你 Authelia 实例正在使用的配置文件默认为configuration.yml它里面已经包含storage段的后端连接和encryption_key。如果配置文件不在默认位置用--config指定。关于密钥在配置中的承载方式参见 Secrets 文档。命令行参数方式不依赖配置文件用命令行参数直接给出连接与密钥。可继承的选项包括--sqlite.path、--mysql.*、--postgres.*地址、库名、用户、密码、schema以及--encryption-key完整列表见 export 命令参考。两种方式不要混用同一个密钥来源文档强调导出/导入命令「require the configuration or at least a minimal configuration」即命令必须能拿到完整的存储连接信息和加密密钥否则无法定位并解密数据。导出 TOTP 配置最基本的用法使用默认配置文件导出authelia storage user totp export导出结果写入--file-f指定的 YAML 文件默认文件名为authelia.export.totp.yml。指定其他文件名或改用其他配置文件时authelia storage user totp export --file example.yml authelia storage user totp export --config config.yml如果你没有配置文件而是希望通过命令行参数连接文档给出的示例形式如下文档示例中的密钥、地址和密码为示例值替换为你自己的值authelia storage user totp export \ --encryption-key b3453fde-ecc2-4a1f-9422-2707ddbed495 \ --postgres.address tcp://postgres:5432 \ --postgres.password autheliapwSQLite 或 MySQL 后端则对应替换为--sqlite.path或--mysql.address、--mysql.username、--mysql.password等参数。导出成功后你得到的是一份可导入的 YAML 文件这就是备份产物。把它妥善存放恢复时导入命令消费的就是这个文件。可选分支authelia storage user totp export还有csv、png、uri三个子命令分别导出 CSV、QR 码 PNG 图片、TOTP URI。注意 export 命令参考明确说明这些是非可导入格式不能用于本场景的备份恢复只适合把 TOTP 迁移到其他服务或生成二维码时参考。恢复导入 TOTP 配置恢复时使用authelia storage user totp import它的第一个参数是 YAML 文件名其余连接/密钥参数与导出时一致见 import 命令参考authelia storage user totp import authelia.export.totp.yml使用指定配置文件、或改用命令行参数连接目标数据库时文档示例authelia storage user totp import --config config.yml authelia.export.totp.yml authelia storage user totp import \ --encryption-key b3453fde-ecc2-4a1f-9422-2707ddbed495 \ --postgres.address tcp://postgres:5432 \ --postgres.password autheliapw \ authelia.export.totp.yml注意两点导入命令只接受YAML 格式import 命令说明原文为「importing TOTP configurations from the YAML format」所以必须使用authelia storage user totp export生成的默认 YAML 文件而不是export csv/export png/export uri的产物导入时提供的存储连接参数和--encryption-key必须对应恢复目标数据库否则配置会写到错误的后端或无法正确写入。如何判断结果文档没有给出固定的成功日志判断依据是文件本身这条闭环导出命令按--file指定路径生成文件不指定时默认生成authelia.export.totp.yml确认该文件已生成且非空导入命令的文档示例参数恰好就是这个默认文件名authelia storage user totp import authelia.export.totp.yml说明导出产物与导入命令的输入是配套关系。命令能完整执行且文件就是导出命令生成的 YAML即完成了一次备份—恢复链路。如果命令因连接失败或密钥缺失报错回到「准备条件」一节核对存储后端参数是否与目标实例一致、--encryption-key是否与数据库中数据的加密密钥相同。注意事项加密密钥是硬性前提两个命令都依赖--encryption-key或配置文件里的storage.encryption_key。密钥丢失会导致数据库中的 TOTP 数据无法解密也就无法导出。导出文件等同于敏感凭据数据库中 TOTP 密钥被加密正是为了防止仅能访问数据库的人绕过两步验证见 TOTP 文档。而导出的 YAML 是可直接导入恢复的明文配置存放该备份文件时要按照与encryption_key同等敏感级别来对待。格式边界只有默认 YAML 导出可用于恢复csv、png、uri格式不可导入。下一步完成导出/导入链路验证后可以把这条命令纳入你的例行备份流程如果还需要了解 TOTP 的其他管理操作删除、生成见 authelia storage user totp 命令参考。【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表