Reputation: 629
I red a lot of articles about Passkey implementation between Mobile and own Relying Party Server, but still have some open questions:
{ "rp": {...} , "user": { "id": "NWRjZTkzZjAtNmY2NC00MDdlLTllMjYtNDU4N2EwNGQzNTNj", "name": "[email protected]", "displayName": "[email protected]" }, challenge: "...", pubKeyCredParams: [...] }
Also didn’t find any information about name and displayName, is there a possibility to change \ update them later?
After the server creates a Challenge during a registration, is it not clear what we want to persist into our database? It seems like we should save the User entity and Challenge string but not the rest of the challenge model (json).
When we request a Challenge during a registration (I will use email as a user), do we need to check if User already exists (My guess would be - No, just want to double check. Because we shouldn’t expose to the wrong person this information)?
Because Mobile device is a trusted source, should we use Basic Auth to request a Challenge and what other options do we have?
Seems like for testing Passkey for example on Android it can not be done locally. Will you need some Relying Party Server deployed somewhere but not a “localhost”?
Upvotes: 0
Views: 188
Reputation: 5329
Basically, the user ID, also known as "user handle" may be exposed without user verification by usb security keys. It's a privacy measure to anonymize it (see https://github.com/w3c/webauthn/issues/1763)
If you re-create a credential with the same user ID, it should be overwritten. This can be used to update name/displayName.
I find the question unclear. This might shed some light: https://passwordless.id/protocols/webauthn/2_registration
Again, I find the question unclear. It's up to you to decide if you allow registering multiple devices/credentials per user, or just a single one and rely on the platform's sync capability to avoid any lockout on device loss.
The challenge is a random nonce to avoid replay attacks. It's always different, each time any user signs up/in. It's not a "protected resource".
Dunno about that.
Upvotes: 1