I red a lot of articles about Passkey implementation between Mobile and own Relying Party Server, but still have some open questions:
- When a client requests a Challenge during a registration, we send a json from the server which includes the User sub-model below. Documentation says that it’s enough to have 16 bytes for ID (all examples use 16 bytes of random string) which is a size of UUID, so question: can \ should we use UUID and can it be our foreign key for other entities not related to Auth itself but as an user id?
{ "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”?
