ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何用 authentik Account Lockdown 快速锁定疑似被盗的用户账户

如何用 authentik Account Lockdown 快速锁定疑似被盗的用户账户 如何用 authentik Account Lockdown 快速锁定疑似被盗的用户账户【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentik当一个用户账户疑似被盗时用户上报凭据泄露、审计日志出现异常登录、或怀疑密码已经外泄你需要立刻切断该账户的一切访问而不是等下一次密码轮换。authentik 的 Account Lockdown 功能Enterprise 许可、2026.5 起提供就是为这种应急场景设计的从用户详情页点一次按钮账户就会被停用、密码失效、所有会话被终止、所有令牌被吊销并留下一条带原因的审计事件。用户本人也可以在认为自己的账户失陷时通过自助入口锁定自己的账户。完成本文后你的 authentik 实例将具备一条可立即执行的应急锁定路径管理员导入随包提供的锁定 blueprint在 Brand 上挂好 Lockdown flow之后对任意用户账户都能一键执行锁定、在审计日志中核对结果并在事后按文档步骤恢复账户。锁定动作会改变什么触发 Account Lockdown 后以下动作会立即执行均可为 Stage 配置项停用用户账户Deactivate useris_active被设为False用户无法再登录设置不可用密码Set unusable password本地 authentik 密码失效外部来源如 LDAP/SCIM 同步的密码不受影响终止所有活动会话Delete sessions用户在所有设备和应用上立即登出吊销所有令牌Revoke tokensAPI token、应用密码、恢复令牌、验证令牌以及 OAuth2 token 和 grant 全部作废创建审计事件记录你填写的锁定原因可进一步触发通知。两个边界需要提前知道Account Lockdown不能用于 anonymous user 或内部服务账户。锁定 Stage 解析出的目标必须是真实用户账户否则返回 No target user specified 错误文档明确警告不建议关闭 Delete sessions否则持有活动会话的攻击者可以继续使用账户。前置条件先检查许可Account Lockdown Stage 和企业许可是硬性前提文档标注authentik_enterprise: true版本 2026.5。这一点从随包的 blueprint 也能看出来blueprint 文件 中每个条目都带有!Context goauthentik.io/enterprise/licensed条件——根据 blueprint 导入逻辑只有检测到有效的 enterprise 许可时该条件才为真条目才会被导入。也就是说在非企业版实例上导入这个 blueprint不会产生任何锁定流程。导入前请确认实例运行的是 2026.5 及以后版本且持有有效的 Enterprise 许可你拥有管理员权限能访问 Admin 界面并编辑 Brand。执行步骤导入随包 blueprint 并挂到 Brand最短主路径是使用 authentik 随包的锁定 blueprint。它会创建两个流程主锁定流程default-account-lockdown需要已认证用户包含Prompt Stage警告信息 原因输入order 0→ Account Lockdown Stageorder 10执行锁定动作→ 管理员可见的完成提示 Prompt Stageorder 20仅管理员触发的锁定会显示自助完成流程default-account-lockdown-complete无需认证用于用户自助锁定后展示提示信息。第 1 步下载 blueprint 文件文档给出的下载地址wget https://goauthentik.io/blueprints/example/flow-default-account-lockdown.yaml也可以在 Admin 界面通过文档提供的链接查看并保存该文件。该文件与仓库中的 blueprints/example/flow-default-account-lockdown.yaml 内容一致。第 2 步导入 blueprint以管理员身份登录 authentik进入 Admin 界面打开Flows and StagesFlows点击Import点击Choose file选择flow-default-account-lockdown.yaml再点击Import。第 3 步在 Brand 上设置 Lockdown flow打开SystemBrands编辑你的 Brand将Lockdown flow设为default-account-lockdown。这一步是必须做的没有 Lockdown flow后续在用户详情页触发锁定时会直接报 No lockdown flow configured。如果 blueprint 不满足需求也可以不导入、改为手工创建流程Designation 选 Stage Configuration、Authentication 选 Require authenticated user加入 Prompt Stage警告与原因收集、Account Lockdown Stage可选加一个仅管理员可见的完成 Prompt Stage最后把这个流程设为 Brand 的 Lockdown flow。Stage 的完整配置项见 Account Lockdown Stage 文档。触发锁定并核对结果从用户详情页触发管理员路径打开DirectoryUsers点击目标用户点击Account Lockdown查看警告、填写原因会记入审计日志点击Continue如果流程中包含管理员可见的完成提示 Stage锁定完成后会显示确认消息随包 blueprint 的提示为code{username}/code has been locked down.。Stage 内部按以下顺序执行从流程的pending_user即你在用户详情页选中的账户解析目标 → 应用已启用的锁定动作 → 为该账户创建事件 → 若为自助锁定且会话被删除则跳转到 Completion flow。锁定原因按以下优先级读取prompt_data.lockdown_reason即 Prompt 表单提交值→ 流程上下文中的lockdown_reason→ 空字符串。如何确认锁定已生效文档给出的核对方式有两处用户状态回到DirectoryUsers被锁定的用户会显示为 inactive停用状态审计事件Account Lockdown 会创建一条 action 为user_write的User Write事件其中context.action_id为account_lockdown。文档给出的事件示例示例结果{ action: user_write, context: { action_id: account_lockdown, reason: User-provided reason, affected_user: username } }在Events界面用action user_write and context.action_id account_lockdown检索即可定位到这次锁定操作及其原因。可选分支让用户自助锁定自己的账户除了管理员操作用户本人可以在 User 界面里锁定自己的账户进入Settings在Account Lockdown区块点击Lock my account填写原因后点击Continue。自助锁定与管理员路径有一个关键差异由于Delete sessions默认开启用户自己的会话会在锁定过程中被删除流程无法继续到下一个 Stage因此 Stage 会跳转到 Stage 上配置的Completion flow——该流程的 Authentication 必须设为No authentication required否则用户会被弹回登录页这正是故障排查表里 Self-service shows login page 的原因。随包 blueprint 已内置这个完成流程default-account-lockdown-complete展示You have been logged down / 请联系 IT一类的警告提示。如果自建流程需要按文档手工创建创建一个 Authentication 为No authentication required的流程加入一个带 alert 字段的 Prompt Stage写入提示信息在 Account Lockdown Stage 上把Completion flow指向该流程。锁定完成后用户被重定向到该完成页且在管理员恢复访问之前无法再登录。可选分支为锁定事件配置通知如果希望账户被锁定时自动通知安全团队可以按 Account Lockdown 文档 配置 Notification Rules事件机制参见 Events 文档打开CustomizationPolicies创建一个Event Matcher PolicyAction设为User WriteQuery设为action user_write and context.action_id account_lockdown打开EventsNotification Rules创建一条规则选择一个通知传输方式如default-email-transport选择目标用户组或勾选Send notification to event user通知被锁定的用户本人把上面的 Event Matcher Policy 绑定到这条规则。锁定之后恢复访问锁定是应急手段不是终点。文档给出的恢复步骤在DirectoryUsers中找到该用户显示为 inactive点击Activate重新启用账户用Set password或Create recovery link设置新密码提醒用户重新注册 MFA 设备。出问题时查哪里文档给出的故障对照表直接对应触发阶段可能遇到的现象现象处理No lockdown flow configured在SystemBrands上为 Brand 设置 Lockdown flow自助锁定后显示登录页在 Stage 上配置Completion flow且该流程 Authentication 为No authentication required警告提示不显示检查 Prompt 字段是否启用了Initial value expression且字段类型为 alert 类型No target user specified流程中没有可用的pending_userStage 返回 invalid response确认是从用户详情页触发的锁定流程另外注意blueprint 中所有条目都要求有效的 enterprise 许可才会生效如果导入后Flows列表里没有default-account-lockdown先检查实例的 Enterprise 许可状态而不是反复导入。完整的场景说明与操作细节可继续查阅 Account Lockdown 主文档 和 Account Lockdown Stage 文档Stage 文档中还提供了仅管理员触发的锁定显示完成 Stage的策略表达式和动态警告消息表达式示例供自建流程时参考。【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentik创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表