跳到主要内容

MFA 第二因子登录会话绑定

背景

MFA verify 若不绑定首因子上下文,跨 client 混淆与 redirect_uri 旁路可组合出账户接管。

决策

MFA verify 必须校验:client 注册关系 + redirect_uri 白名单 + 与首因子登录一致的 pending 绑定(users.mfa_pending_client_id / mfa_pending_redirect_uri,验证后清 NULL 防重放)。所有新拒绝统一 AUTH_INVALID_CREDENTIALS 401,消除 client 注册枚举 oracle。已知接受的限制:mfa_token 无过期与并发覆盖。

后果与现状对照

V022 迁移在库;MfaController 按 pending 绑定实现。