-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Surface platform authenticator status in the create
(and maybe get
) response / help RPs track UV/PA/RK
#1567
Comments
create
response / helping RPs track UV/PA/RKcreate
response / help RPs track UV/PA/RK
For what it's worth, my understanding is that authenticators can also change their properties over time. It would be nice to know for sure, and maybe to have a way for the RP to be able to tell if/when this happened. For example, updated info could be sent at auth time. However, this is not as useful for RPs if certain other features/bugs are addressed. |
Regarding this issue, you can implicitly guess whether the generated credential is bound to the platform authenticator when returning the value as internal with |
If RPs require user verification, they specify
The best we can do at this time is via the credProps extension. Regarding the implementation on one browser vs another, that is not a spec issue. Browser/OS vendors are teams with their own schedules and it always takes some time to get everything implemented. We will get there.
API itself contains the attachment property. And the response has |
I probably don't understand the internals well enough; what limits browsers from reporting if a discoverable credential was created?
Ah, thanks, i had forgotten about that. That leaves me with 2 thoughts:
As discussed in #1556 , many devs will probably not collect such data until it's too late. We don't currently collect It would be much more ergonomic if the value could be extracted from the default API response like user verification. |
I think the best effort for the attachment (transport) at this moment is asking for the specific attachment when creating the call by showing different UXs depending on the attachment for the user. And, that attachment value and returned value of getTransports for the future references should be stored. |
"Internal" means platform authenticator. However, mobiles can also act like a roaming authenticator. So in that case, in addition to "internal", they will also include other transports. Overall it is a hint for the platform, and RP should store it and pass it back to the platform. However, they should not rely on exact implementation behavior, as those are actually hints.
I would be against allowing certain authenticators and not others, if that's what you are asking. In a way, specifying attachment=platform property limits one to platform authenticators, but that was for a special case for registration. For authentication, intentionally, there is no attachment property as a platform can be interacted via other mechanisms. |
That's exactly what credProps does! |
on 2021-02-10 call: In any case we are uncertain of the motivation behind this. @nicksteele will ask for clarification. |
create
response / help RPs track UV/PA/RKcreate
(and maybe get
) response / help RPs track UV/PA/RK
Summarizing: there are (admittedly imperfect) answers to all three of the original post's "criteria" in the above discussion. Additionally, the RP techniques and webauthn API changes proposed in issue #1637 will (we hope) ameliorate the concerns expressed in this issue. |
I would argue that most of these are addressed at this point:
This is now sort-of available via getAuthenticatorData() followed by a static byte index (
As mentioned above, this is available in the
This is now available as the
Not really addressed. Perhaps L4 could move
Not addressed. I personally don't think these properties are important enough to be worth this effort. |
The following are specified in the same place:
https://w3c.github.io/webauthn/#dictdef-authenticatorselectioncriteria
However, there is no consistent way for the RP to check on these criteria:
Whether the registration is for a user-verifying authenticator
Embedded inside CBOR attestation.
Drawbacks:
Whether the registration is a discoverable credential (resident key)
Available in a client extension.
Drawbacks:
"required"
semantics were passed to the authenticator, not what type of credential was created?Whether the registration is a platform authenticator
As far as I can tell, this information is not available from the response. The RP has to ask for it, and hope the client did the right thing.
EDIT based on comments below: This is implicitly revealed by a value of
internal
returned bygetTransports()
.Looking at this, I have the following thoughts:
null
to indicated redacted info.I know there are historical reasons why the spec acts as it does. But it is bewildering to find out this information for an RP implementing WebAuthn the first time, and even I myself mistakenly believed for almost two years that the
create
response contains the platform authenticator status of the registration.Quoting myself from #1565
The text was updated successfully, but these errors were encountered: