You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1.0/openid-4-verifiable-presentations-1_0.md
+17-2Lines changed: 17 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -677,7 +677,7 @@ The following is a non-normative example of a payload for a request object:
677
677
}
678
678
```
679
679
680
-
The Wallet MUST process the request as defined in [@RFC9101]. Additionally, if the Wallet passed a `wallet_nonce` in the POST request, the Wallet MUST validate whether the request object contains the respective nonce value in a `wallet_nonce` claim. If it does not, the Wallet MUST terminate request processing.
680
+
The Wallet MUST process the request as defined in [@RFC9101]. The Wallet SHOULD NOT follow HTTP redirects and SHOULD treat them as an error response (see (#http_redirects)). Additionally, if the Wallet passed a `wallet_nonce` in the POST request, the Wallet MUST validate whether the request object contains the respective nonce value in a `wallet_nonce` claim. If it does not, the Wallet MUST terminate request processing.
681
681
682
682
The Wallet MUST extract the set of Authorization Request parameters from the Request Object. The Wallet MUST only use the parameters in this Request Object, even if the same parameter was provided in an Authorization Request query parameter. The Client Identifier value in the `client_id` Authorization Request parameter and the Request Object `client_id` claim value MUST be identical, including the Client Identifier Prefix. If any of these conditions are not met, the Wallet MUST terminate request processing.
If the Response URI has successfully processed the Authorization Response or Authorization Error Response, it MUST respond with an HTTP status code of 200 with `Content-Type` of `application/json` and a JSON object in the response body.
1279
+
If the Response URI has successfully processed the Authorization Response or Authorization Error Response, it MUST respond with an HTTP status code of 200 with `Content-Type` of `application/json` and a JSON object in the response body. The Wallet SHOULD NOT follow HTTP redirects returned by the Response URI and SHOULD treat them as an error response (see (#http_redirects)).
1280
1280
1281
1281
The following new parameter is defined for use in the JSON object returned from the Response Endpoint to the Wallet:
1282
1282
@@ -1900,6 +1900,20 @@ Implementations MUST follow [@!BCP195].
1900
1900
1901
1901
Whenever TLS is used, a TLS server certificate check MUST be performed, per [@!RFC6125].
1902
1902
1903
+
## HTTP Redirects {#http_redirects}
1904
+
1905
+
This specification does not use HTTP redirects (HTTP status codes 3xx) for the HTTP requests defined in this specification that the Wallet sends directly to the Verifier, i.e.:
1906
+
1907
+
- the request to retrieve the Request Object from the Request URI (whether using the `get` method as defined in [@RFC9101] or the `post` method defined in (#request_uri_method_post))
1908
+
- the request transmitting the Authorization Response to the Response URI (see (#response_mode_post))
1909
+
1910
+
If the Wallet receives an HTTP redirect in response to one of these requests, it SHOULD NOT follow the redirect and SHOULD treat the response as an error. Extensions and profiles of this specification MAY define the use of HTTP redirects for specific requests.
1911
+
1912
+
Following redirects for the request to the Response URI would allow an Authorization Response containing personally identifiable information to be re-sent (e.g., in the case of an HTTP 307 or 308 redirect) to a URL that was not validated according to the rules for the Response URI (see (#security_considerations_direct_post)). Similarly, following redirects when retrieving the Request Object could disclose request parameters, such as `wallet_metadata` and `wallet_nonce`, to a host that was not validated. In both cases, following redirects could expose the Wallet to redirect loops.
1913
+
1914
+
Note: This requirement applies only to HTTP-level redirects. It does not affect redirection of the user agent as part of the protocol, e.g., when the Authorization Response is returned via the Redirect URI or when the Wallet redirects the user agent to the `redirect_uri` returned from the Response URI (see (#response_mode_post)); that `redirect_uri` is conveyed as a response parameter in an HTTP 200 response, not as an HTTP-level redirect.
1915
+
1916
+
1903
1917
## Incomplete or Incorrect Implementations of the Specifications and Conformance Testing
1904
1918
1905
1919
To achieve the full security benefits, it is important that the implementation of this specification, and the underlying specifications, are both complete and correct.
@@ -3602,6 +3616,7 @@ The technology described in this specification was made available from contribut
3602
3616
3603
3617
-31
3604
3618
3619
+
* Clarify that the Wallet does not follow HTTP redirects
3605
3620
* Clarify jwks use parameter
3606
3621
* Clarify nonce entropy requirements
3607
3622
* Clarify that state is recommended to match text from Section 14.3.2. Protection of the Response URI
Copy file name to clipboardExpand all lines: 1.1/openid-4-verifiable-presentations-1_1.md
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -673,7 +673,7 @@ The following is a non-normative example of a payload for a request object:
673
673
}
674
674
```
675
675
676
-
The Wallet MUST process the request as defined in [@RFC9101]. Additionally, if the Wallet passed a `wallet_nonce` in the POST request, the Wallet MUST validate whether the request object contains the respective nonce value in a `wallet_nonce` claim. If it does not, the Wallet MUST terminate request processing.
676
+
The Wallet MUST process the request as defined in [@RFC9101]. The Wallet SHOULD NOT follow HTTP redirects and SHOULD treat them as an error response (see (#http_redirects)). Additionally, if the Wallet passed a `wallet_nonce` in the POST request, the Wallet MUST validate whether the request object contains the respective nonce value in a `wallet_nonce` claim. If it does not, the Wallet MUST terminate request processing.
677
677
678
678
The Wallet MUST extract the set of Authorization Request parameters from the Request Object. The Wallet MUST only use the parameters in this Request Object, even if the same parameter was provided in an Authorization Request query parameter. The Client Identifier value in the `client_id` Authorization Request parameter and the Request Object `client_id` claim value MUST be identical, including the Client Identifier Prefix. If any of these conditions are not met, the Wallet MUST terminate request processing.
If the Response URI has successfully processed the Authorization Response or Authorization Error Response, it MUST respond with an HTTP status code of 200 with `Content-Type` of `application/json` and a JSON object in the response body.
1275
+
If the Response URI has successfully processed the Authorization Response or Authorization Error Response, it MUST respond with an HTTP status code of 200 with `Content-Type` of `application/json` and a JSON object in the response body. The Wallet SHOULD NOT follow HTTP redirects returned by the Response URI and SHOULD treat them as an error response (see (#http_redirects)).
1276
1276
1277
1277
The following new parameter is defined for use in the JSON object returned from the Response Endpoint to the Wallet:
1278
1278
@@ -1964,6 +1964,19 @@ Implementations MUST follow [@!BCP195].
1964
1964
1965
1965
Whenever TLS is used, a TLS server certificate check MUST be performed, per [@!RFC6125].
1966
1966
1967
+
## HTTP Redirects {#http_redirects}
1968
+
1969
+
This specification does not use HTTP redirects (HTTP status codes 3xx) for the HTTP requests defined in this specification that the Wallet sends directly to the Verifier, i.e.:
1970
+
1971
+
- the request to retrieve the Request Object from the Request URI (whether using the `get` method as defined in [@RFC9101] or the `post` method defined in (#request_uri_method_post))
1972
+
- the request transmitting the Authorization Response to the Response URI (see (#response_mode_post))
1973
+
1974
+
If the Wallet receives an HTTP redirect in response to one of these requests, it SHOULD NOT follow the redirect and SHOULD treat the response as an error. Extensions and profiles of this specification MAY define the use of HTTP redirects for specific requests.
1975
+
1976
+
Following redirects for the request to the Response URI would allow an Authorization Response containing personally identifiable information to be re-sent (e.g., in the case of an HTTP 307 or 308 redirect) to a URL that was not validated according to the rules for the Response URI (see (#security_considerations_direct_post)). Similarly, following redirects when retrieving the Request Object could disclose request parameters, such as `wallet_metadata` and `wallet_nonce`, to a host that was not validated. In both cases, following redirects could expose the Wallet to redirect loops.
1977
+
1978
+
Note: This requirement applies only to HTTP-level redirects. It does not affect redirection of the user agent as part of the protocol, e.g., when the Authorization Response is returned via the Redirect URI or when the Wallet redirects the user agent to the `redirect_uri` returned from the Response URI (see (#response_mode_post)); that `redirect_uri` is conveyed as a response parameter in an HTTP 200 response, not as an HTTP-level redirect.
1979
+
1967
1980
## Incomplete or Incorrect Implementations of the Specifications and Conformance Testing
1968
1981
1969
1982
To achieve the full security benefits, it is important that the implementation of this specification, and the underlying specifications, are both complete and correct.
@@ -3676,6 +3689,7 @@ The technology described in this specification was made available from contribut
3676
3689
3677
3690
-01
3678
3691
3692
+
* Clarify that the Wallet does not follow HTTP redirects
0 commit comments