使用常驻密钥时,依赖方如何确定用户?

How does relying party determine the user when resident keys are used?

当客户端可发现常驻密钥与 WebAuthN 一起使用时,依赖方无需首先识别尝试登录的用户。那么 RP 如何知道哪个用户登录了? RP 是否仅收到 AuthenticatorAssertionResponse 并从中获取 user.id?

传递给 navigator.credentials.create()PublicKeyCredentialCreationOptionsresponse.userHandle in an assertion response can be used to identify the user that's logging in - it will equal whatever was set to user.id 的值。

userHandle 一个可能未定义的值,但是当证明期间需要常驻密钥时,验证者必须记住用户 ID - see Step 7.4 of the authenticatorMakeCredential operation(用户句柄是身份验证器在其内部凭据映射中使用的密钥的一部分,用于记住给定 RP ID 和用户句柄的可发现凭据)。