@@ -1133,7 +1133,7 @@ An extension may use the following instead of the [=create identity credential/s
1133
1133
The <a>fetch the config file</a> algorithm fetches both the [=well-known file=] and the config file from
1134
1134
the [=IDP=] , checks that the config file is mentioned in the [=well-known file=] , and returns the config.
1135
1135
1136
- <div algorithm>
1136
+ <div algorithm="fetch the config file" >
1137
1137
To <dfn>fetch the config file</dfn> given an {{IdentityProviderConfig}} |provider| and
1138
1138
|globalObject|, run the following steps. This returns an {{IdentityProviderAPIConfig}}
1139
1139
or failure.
@@ -1241,7 +1241,8 @@ or failure.
1241
1241
1. If |skipWellKnown| is true, return |config|.
1242
1242
1. Wait for |wellKnown| to be set.
1243
1243
1. If |wellKnown| is failure, return failure.
1244
- 1. If |wellKnown|.{{IdentityProviderWellKnown/accounts_endpoint}} and
1244
+ 1. <dfn for="fetch the config file">Check accounts and login url step</dfn> : If
1245
+ |wellKnown|.{{IdentityProviderWellKnown/accounts_endpoint}} and
1245
1246
|wellKnown|.{{IdentityProviderWellKnown/login_url}} are set:
1246
1247
1. Let |well_known_accounts_url| be the result of [=computing the manifest URL=] with
1247
1248
|provider|, |wellKnown|.{{IdentityProviderWellKnown/accounts_endpoint}} , and
@@ -1258,6 +1259,14 @@ or failure.
1258
1259
1259
1260
</div>
1260
1261
1262
+ <div class="issue" heading="extension">
1263
+ An extension which implements the client metadata endpoint must add the following step right before
1264
+ the [=fetch the config file/check accounts and login url step=] :
1265
+ 1. If |config|.{{IdentityProviderAPIConfig/client_metadata_endpoint}} is set but either
1266
+ |wellKnown|.{{IdentityProviderWellKnown/accounts_endpoint}} or
1267
+ |wellKnown|.{{IdentityProviderWellKnown/login_url}} is not set, return failure.
1268
+ </div>
1269
+
1261
1270
NOTE: a two-tier file system is used in order to prevent the [=IDP=] from easily determining the [=RP=]
1262
1271
that a user is visiting by encoding the information in the config file path. This issue is solved by
1263
1272
requiring a [=well-known file=] to be on the root of the [=IDP=] . The config file itself can be anywhere, but
@@ -2064,7 +2073,11 @@ The {{IdentityProviderWellKnown}} JSON object has the following semantics:
2064
2073
:: A URL that points to the same location as the {{IdentityProviderAPIConfig/login_url}} in [[#idp-api-config-file]] s.
2065
2074
</dl>
2066
2075
2067
- Either <b> provider_urls</b> or both <b> accounts_endpoint</b> and <b> login_url</b> are required.
2076
+ Either {{IdentityProviderWellKnown/provider_urls}} or both
2077
+ {{IdentityProviderWellKnown/accounts_endpoint}} and {{IdentityProviderWellKnown/login_url}} are
2078
+ required. If the [=config file=] contains the {{IdentityProviderAPIConfig/client_metadata_endpoint}} ,
2079
+ then both {{IdentityProviderWellKnown/accounts_endpoint}} and {{IdentityProviderWellKnown/login_url}}
2080
+ are required.
2068
2081
2069
2082
<!-- ============================================================ -->
2070
2083
## The config file ## {#idp-api-config-file}
0 commit comments