Skip to content

Commit 8258482

Browse files
druberyDaniel Rubery
andauthored
Make bikeshed warning-clean (#166)
We had a lot of warnings about unused defns. All of them were just the JSON keys, so we no longer give linkable defn's to the JSON keys. --------- Co-authored-by: Daniel Rubery <[email protected]>
1 parent 8fb6e10 commit 8258482

File tree

1 file changed

+32
-55
lines changed

1 file changed

+32
-55
lines changed

spec.bs

Lines changed: 32 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -815,8 +815,7 @@ registration and optionally during session refresh. If the response
815815
contains session instructions, it MUST be in JSON format.
816816

817817
At the root of the JSON object, the following keys can exist:
818-
<dl dfn-for="session instructions">
819-
: <dfn>session identifier</dfn>
818+
: session identifier
820819
:: a [=string=] representing a [=device bound session/session identifier=].
821820
If this [=session instructions=] is sent during a refresh request this MUST be
822821
the [=device bound session/session identifier=] for the current session. If
@@ -827,38 +826,29 @@ At the root of the JSON object, the following keys can exist:
827826
current [=host/registrable domain=].
828827
This key MUST be present.
829828

830-
: <dfn>refresh_url</dfn>
829+
: refresh_url
831830
:: a [=string=] representing the [=URL=] used for future refresh requests.
832831
This can be a full [=URL=], or relative to the current [=request=].
833832
This key is OPTIONAL; if not present the registration URL will be used for
834833
future refresh requests.
835834

836-
: <dfn>defer_requests</dfn>
837-
:: a [=boolean=] describing the wanted session behavior during a session
838-
refresh. If this value is true all requests related to this session will be
839-
deferred while the session is refreshed. If instead the value is false every
840-
request will instead be sent as normal, but with a [:Secure-Session-Response:]
841-
header containing the [=DBSC proof=].
842-
This key is OPTIONAL, and if not present a value of true is default.
843-
844-
: <dfn>continue</dfn>
835+
: continue
845836
:: a [=boolean=] indicating if the session should continue to apply.
846837
Registration and refresh endpoints can set this to false to terminate a session.
847838
This key is OPTIONAL, and if not present, the default value will be true.
848839

849-
: <dfn>scope</dfn>
840+
: scope
850841
:: a [=dictionary=] of [=session scope instructions=] describing the request
851842
destinations covered by the session. This field MUST be present.
852843

853-
: <dfn>credentials</dfn>
844+
: credentials
854845
:: a [=list=] of [=session credentials=] describing the cookies protected by
855846
this session. This field MUST be present.
856847

857-
: <dfn>allowed_refresh_initiators</dfn>
848+
: allowed_refresh_initiators
858849
:: a [=list=] of [=string=]s describing which hosts are allowed to initiate
859850
DBSC refreshes due to non-CORS requests. See
860851
[[#algo-request-allows-refresh]] for details.
861-
</dl>
862852

863853
<div class="example" id="secure-session-instruction-example">
864854
```json
@@ -905,108 +895,94 @@ The server sends <dfn>session scope instructions</dfn> in the [=session
905895
instructions=] during registration and optionally during session refresh.
906896

907897
At the root of the JSON object, the following keys can exist:
908-
<dl dfn-for="session scope instructions">
909-
: <dfn>origin</dfn>
898+
: origin
910899
:: a [=string=] indicating the origin or site that the session applies to.
911900
This key is OPTIONAL; if not present, the origin of the URL serving the
912901
instructions will be used. This is the registration URL during registration
913902
and the refresh URL during refresh.
914903

915-
: <dfn>include_site</dfn>
904+
: include_site
916905
:: a [=boolean=] indicating if the session is origin-scoped (false) or
917906
site-scoped (true). This key is OPTIONAL; if not present, it will be false
918907
(origin-scoped). Note that this takes precedence over any
919-
[=session scope rule=]s in [=scope_specification=] (see
920-
[[#algo-url-in-scope]]).
908+
[=session scope rule=]s in [=scope specification=] (see
909+
[[#algo-url-in-scope]]).
921910

922-
: <dfn>scope_specification</dfn>
911+
: scope_specification
923912
:: a [=list=] of [=session scope rule=]s describing modifications to the
924913
default scope (the entire origin or site). This key is OPTIONAL; if not
925914
present, an empty list will be used.
926-
</dl>
927915

928916
## DBSC Session Scope Rule Format ## {#format-session-scope-rule}
929917
The server sends <dfn>session scope rule</dfn>s in the [=session scope
930918
instructions=] during registration and optionally during session refresh.
931919

932920
At the root of each [=session scope rule=], the following keys can exist:
933-
<dl dfn-for="session scope rule">
934-
: <dfn>type</dfn>
921+
: type
935922
:: a [=string=] indicating whether the rule includes or excludes destinations.
936923
This key MUST be present, and the value MUST be "include" or "exclude".
937924

938-
: <dfn>domain</dfn>
925+
: domain
939926
:: a [=string=] indicating the domains that should match the rule. This key
940927
MUST be present. This can include wildcards (see [[#algo-url-in-scope]]).
941928

942-
: <dfn>path</dfn>
929+
: path
943930
:: a [=string=] indicating the path-prefixes that should match the rule. This
944931
key MUST be present. See [[#algo-url-in-scope]] for the detailed semantics.
945-
</dl>
946932

947933
## DBSC Session Credentials Format ## {#format-session-credentials}
948934
The server sends <dfn>session credentials</dfn> in the [=session
949935
instructions=] during registration and optionally during session refresh.
950936

951937
At the root of the JSON object, the following keys can exist:
952-
<dl dfn-for="session scope instructions">
953-
: <dfn>type</dfn>
938+
: type
954939
:: a [=string=] indicating the kind of credential protected by this session.
955940
This key MUST be present, and the value MUST be "cookie".
956941

957-
: <dfn>name</dfn>
942+
: name
958943
:: a [=string=] indicating the name of the bound cookie.
959944

960-
: <dfn>attributes</dfn>
945+
: attributes
961946
:: a [=string=] containing the expected attributes of the protected cookie.
962947
See [[#algo-identify-missing-session-credential]] for details on how this
963948
is used.
964-
</dl>
965949

966950
## DBSC Proof JWT Syntax ## {#format-jwt}
967951
A <dfn>DBSC proof</dfn> proof is a JWT that is signed (using JSON Web Signature
968952
(JWS)), with a private key chosen by the client. The header of a [=DBSC proof=]
969953
MUST contain at least the following <a>sf-parameter</a>s:
970-
<dl dfn-for="DBSC proof">
971-
: <dfn>typ</dfn>
954+
: typ
972955
:: a [=string=] MUST be "dbsc+jwt"
973-
: <dfn>alg</dfn>
956+
: alg
974957
:: a [=string=] defining the algorithm used to sign this JWT. It MUST be
975958
either "RS256" or "ES256" from [IANA.JOSE.ALGS].
976-
</dl>
977959

978960
The payload of [=DBSC proof=] MUST contain at least the following claims:
979-
<dl dfn-for="DBSC proof">
980-
: <dfn>aud</dfn>
961+
: aud
981962
:: a [=string=], MUST be the [=URL=] this JWT was originally sent to.
982963
Example: "https://example.com/refresh.html"
983-
: <dfn>jti</dfn>
964+
: jti
984965
:: a [=string=], a copy of the challenge value sent in the registration
985966
header.
986-
: <dfn>iat</dfn>
967+
: iat
987968
:: a [=string=], this claim identifies the time at which the JWT was
988969
issued. This claim can be used to determine the age of the JWT. Its
989970
value MUST be a number containing a NumericDate value.
990-
: <dfn>key</dfn>
971+
: key
991972
:: a [=string=] defining a JWK as specified in [rfc7517].
992-
</dl>
993973

994974
In addition the following claims MUST be present if present in
995975
[:Secure-Session-Registration:]:
996-
<dl dfn-for="DBSC proof">
997-
: <dfn>authorization</dfn>
976+
: authorization
998977
:: a [=string=], direct copy of the string from
999978
[:Secure-Session-Registration:], if set there. Note that this string is
1000979
OPTIONAL to include in the header, but if it is present it is
1001980
MANDATORY for clients to add the claim in the [=DBSC proof=].
1002-
</dl>
1003981

1004982
If the DBSC proof is for a refresh request, the following claim MUST be
1005983
present:
1006-
<dl dfn-for="DBSC proof">
1007-
: <dfn>sub</dfn>
984+
: sub
1008985
:: the [=device bound session/session identifier=], a [=string=].
1009-
</dl>
1010986

1011987
<div class="example" id="dbsc-proof-example">
1012988
An example [=DBSC proof=] sent to https://example.com/reg:
@@ -1046,12 +1022,13 @@ present:
10461022

10471023
This specification requires an update to the <a
10481024
href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">HTTP-network-or-cache
1049-
fetch</a> algorithm. A [=request=] has a [=list=] of [=tuple=]s
1050-
([=host/registrable domain=] |domain|, [=string=] |session id|), <dfn
1051-
for="request">deferred device bound session ids</dfn>. This list is initially
1052-
empty. At the end of step 8.21
1053-
run [[#algo-identify-session-needing-refresh]]. If the resulting |session| is
1054-
non-null:
1025+
fetch</a> algorithm. A [=request=] has a <dfn
1026+
for="request">deferred device bound session ids</dfn>, a [=list=] of [=tuple=]s consisting of:
1027+
- a domain (a [=host/registrable domain=]).
1028+
- a session id (a [=string=]).
1029+
This list is initially empty. At the end of step 8.21, run
1030+
[[#algo-identify-session-needing-refresh]]. If the resulting
1031+
|session| is non-null:
10551032
1. Run [[#algo-session-request]] with the returned |session|'s
10561033
[=session key=], [=refresh URL=], [=device bound session/session
10571034
identifier=], [=cached challenge=], and an empty authorization.

0 commit comments

Comments
 (0)