1
+ <h1>Web Authentication:<br>An API for accessing Public Key Credentials<br>[Level 1]</h1>
1
2
<pre class='metadata'>
2
- Title : Web Authentication: An API for accessing Public Key Credentials
3
3
Status : ED
4
4
Prepare for TR : true
5
5
TR : https://www.w3.org/TR/webauthn/
@@ -11,7 +11,7 @@ Previous Version: https://www.w3.org/TR/2016/WD-webauthn-20160928/
11
11
Previous Version : https://www.w3.org/TR/2016/WD-webauthn-20160902/
12
12
Previous Version : https://www.w3.org/TR/2016/WD-webauthn-20160531/
13
13
Shortname : webauthn
14
- Level :
14
+ Level : 1
15
15
Editor : Vijay Bharadwaj, w3cid 55440, Microsoft, [email protected]
16
16
Editor : Hubert Le Van Gong, w3cid 84817, PayPal, [email protected]
17
17
Editor : Dirk Balfanz, w3cid 47648, Google, [email protected]
@@ -627,7 +627,7 @@ When this method is invoked, the user agent MUST execute the following algorithm
627
627
1. Let |clientDataHash| be the [=hash of the serialized client data=] represented by |clientDataJSON|.
628
628
629
629
1. Let |currentlyAvailableAuthenticators| be a new [=ordered set=] consisting of all [=authenticators=]
630
- available on this platform.
630
+ currently available on this platform.
631
631
632
632
1. Let |selectedAuthenticators| be a new [=ordered set=] .
633
633
@@ -834,20 +834,39 @@ When this method is invoked, the user agent MUST execute the following algorithm
834
834
1. If |allowCredentialDescriptorList|
835
835
<dl class="switch">
836
836
: [=list/is not empty=]
837
- :: [=in parallel=] , [=list/for each=] credential descriptor |C| in |allowCredentialDescriptorList|:
838
- 1. If <code> |C|.{{transports}} </code> [=list/is not empty=] , the client SHOULD select one |transport| from
839
- {{transports}} . Then, using |transport|, invoke the [=authenticatorGetAssertion=] operation on
840
- |authenticator|, with |rpId|, |clientDataHash|, |allowCredentialDescriptorList|, and
841
- |authenticatorExtensions| as parameters.
842
-
843
- 1. Otherwise, using local configuration knowledge of the appropriate transport to use with |authenticator|,
844
- invoke the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|,
845
- |clientDataHash|, |allowCredentialDescriptorList|, and |clientExtensions| as parameters.
837
+ :: 1. Let |distinctTransports| be a new [=ordered set=] .
838
+
839
+ 1. [=list/For each=] credential descriptor |C| in |allowCredentialDescriptorList|,
840
+ [=set/append=] each value, if any, of <code> |C|.{{transports}} </code> to |distinctTransports|.
841
+
842
+ Note: This will aggregate only distinct values of {{transports}} (for this [=authenticator=] ) in
843
+ |distinctTransports| due to the properties of [=ordered sets=] .
844
+
845
+ 1. If |distinctTransports|
846
+ <dl class="switch">
847
+ : [=list/is not empty=]
848
+ :: The client selects one |transport| value from |distinctTransports|, possibly incorporating local
849
+ configuration knowledge of the appropriate transport to use with |authenticator| in making its
850
+ selection.
851
+
852
+ Then, using |transport|, invoke [=in parallel=] the [=authenticatorGetAssertion=] operation on
853
+ |authenticator|, with |rpId|, |clientDataHash|, |allowCredentialDescriptorList|, and
854
+ |authenticatorExtensions| as parameters.
855
+
856
+ : [=list/is empty=]
857
+ :: Using local configuration knowledge of the appropriate transport to use with |authenticator|,
858
+ invoke [=in parallel=] the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|,
859
+ |clientDataHash|, |allowCredentialDescriptorList|, and |clientExtensions| as parameters.
860
+ </dl>
846
861
847
862
: [=list/is empty=]
848
863
:: Using local configuration knowledge of the appropriate transport to use with |authenticator|, invoke
849
864
[=in parallel=] the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|, |clientDataHash|,
850
865
and |clientExtensions| as parameters.
866
+
867
+ Note: In this case, the [=[RP]=] did not supply a list of acceptable credential descriptors. Thus the
868
+ authenticator is being asked to exercise any credential it may possess that is bound to
869
+ the [=[RP]=] , as identified by |rpId|.
851
870
</dl>
852
871
853
872
1. [=set/Append=] |authenticator| to |issuedRequests|.
@@ -1019,7 +1038,7 @@ optionally evidence of [=user consent=] to a specific transaction.
1019
1038
required sequence<PublicKeyCredentialParameters> parameters;
1020
1039
1021
1040
unsigned long timeout;
1022
- sequence<PublicKeyCredentialDescriptor> excludeCredentials;
1041
+ sequence<PublicKeyCredentialDescriptor> excludeCredentials = [] ;
1023
1042
AuthenticatorSelectionCriteria authenticatorSelection;
1024
1043
AuthenticationExtensions extensions;
1025
1044
};
0 commit comments