diff --git a/index.html b/index.html index 36b19091..4f81a0c1 100644 --- a/index.html +++ b/index.html @@ -815,6 +815,13 @@
+ A [=user agent=] MUST use its own determination of the [=request + context/document origin=] and the [=request context/top-level origin=], + and MUST NOT rely on an [=origin=] supplied by the content whose request + is being mediated, in determining whether to validate or form the request + or to present the [=digital credential chooser=]. +
A user agent MAY delegate some or all coordinator responsibilities to external [=credential managers=], platform components, or other trusted @@ -982,7 +989,7 @@
To initiate the - credential request given a [=Document=] |document|, a [=list=] of - validated credential requests |validatedRequests|, a {{Promise}} - |promise:Promise|, and an optional {{AbortSignal}} |signal|: + credential request given an [=origin=] |documentOrigin|, a + [=Document=] |document|, a [=list=] of validated credential requests + |validatedRequests|, a {{Promise}} |promise:Promise|, and an optional + {{AbortSignal}} |signal|:
+ The origins presented to the user are determined as follows: +
++ Presenting only the [=request context/document origin=] can + prevent the user from associating the request with the site they + are visiting, as that origin is typically not reflected in the + [=user agent=]'s address bar. Presenting only the [=request + context/top-level origin=] can mislead the user about which party + would receive the [=digital credential=]. Where the [=digital + credential chooser=] is provided by the underlying platform, the + [=user agent=] makes both origins available to it so that they + can be presented to the user. +
++ The [=request context/document origin=] and [=request context/top-level + origin=] are determined by the [=user agent=]: the [=request + context/document origin=] is the [=origin=] passed to + {{DigitalCredential/[[DiscoverFromExternalSource]](origin, options, + sameOriginWithAncestors)}} and {{DigitalCredential/[[Create]](origin, + options, sameOriginWithAncestors)}} by the + [[[#credential-management-integration]]]; the [=request + context/top-level origin=] is that of the [=navigable/active document=] + of the [=navigable/top-level traversable=] in which the request was + made. [[[#credential-request-coordinator]]] requires the [=user agent=] + to use its own determination of both, and to not rely on an [=origin=] + supplied by the content whose request is being mediated, in determining + whether to validate or form the request or to present the [=digital + credential chooser=]. +
++ This mitigates [=Unauthorized Cross-Origin Access=]: the party that is + shown to the user, and that would receive the [=digital credential=], + reflects the [=user agent=]'s own determination of who is asking, + rather than a value the requesting content can choose. +
For additional guidance on preventing abuse of credential requests, please refer to the section