You need to enable JavaScript to run this app. 使用resident keys时,依赖方(Relying Party)如何识别登录用户?
优惠活动
大模型
产品
解决方案
定价
更多

使用resident keys时,依赖方(Relying Party)如何识别登录用户?

WebAuthN 常驻密钥场景下的用户识别逻辑

首先直接回答你的疑问:仅拿返回的user.id直接做用户识别是不行的,必须配套完整的校验流程,完整的识别逻辑如下:

  • 当你使用客户端可发现的常驻密钥(Resident Key)做无用户名登录时,用户完成生物验证等操作后,认证器返回的AuthenticatorAssertionResponse结构中会携带userHandle字段,这个字段的值就是你在凭证注册阶段传入的user.id。
  • 拿到返回结果后,你需要先完成几项必做的安全校验,再做用户身份匹配:
    1. 首先校验断言签名合法性:用该凭证注册时你存在服务端的公钥,验证AuthenticatorAssertionResponse里的签名是否有效,避免请求被伪造
    2. 校验返回的rpId是否和你依赖方的合法ID完全匹配,防止跨站点的凭证冒用
    3. 校验当前返回的凭证ID(credential.id)是否确实绑定在userHandle对应的用户名下,避免凭证被篡改冒用
  • 所有校验都通过之后,你才可以确认userHandle对应的用户就是本次完成登录的用户。

注意:如果跳过签名校验直接用userHandle匹配用户,攻击者可以伪造携带任意userHandle的请求,直接登录你平台上的任意用户,会有极严重的安全风险。

内容的提问来源于stack exchange,提问作者adoyon23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 22:15:02