Skip to content

Commit 31636e9

Browse files
tplookerjogu
andauthored
add ability to continue after redirect_to_web (#589)
(Authored by Tobias; now re-applied to the 1.1 spec) Co-authored-by: Joseph Heenan <[email protected]>
1 parent e35469d commit 31636e9

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

1.1/openid-4-verifiable-credential-issuance-1_1.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ The following non-normative example shows a payload of a signed request object:
770770

771771
### Follow-up Request {#follow-up-request}
772772

773-
Follow-up requests to the Interactive Authorization Endpoint only MUST include the `auth_session` value received most recently from the Authorization Server (see (#iar-interaction-required-response)).
773+
Follow-up requests to the Interactive Authorization Endpoint MUST include the `auth_session` value received most recently from the Authorization Server (see (#iar-interaction-required-response)).
774774

775775
Besides `auth_session`, follow-up requests only include the parameters that are in response to the interaction type the Authorization Server requested in the most recent response. The specific parameters are defined by each interaction type.
776776

@@ -802,11 +802,12 @@ Except in error cases, the following key is required in the JSON document of the
802802
Depending on this assessment, the response from the Interactive Authorization Endpoint can take one of the following forms:
803803

804804
### Interaction Required Response {#iar-interaction-required-response}
805+
805806
By setting `status` to `require_interaction` in the response, the Authorization Server requests an additional user interaction.
806807
In this case, the following keys MUST be present in the response as well:
807808

808809
* `type`: REQUIRED. String indicating which type of interaction is required, as defined below. The Authorization Server MUST NOT set this to a value that was not included in the `interaction_types_supported` parameter sent by the Wallet.
809-
* `auth_session`: REQUIRED. String containing a value that allows the Authorization Server to associate subsequent requests by this Wallet with the ongoing authorization request sequence. Wallets SHOULD treat this value as an opaque value.
810+
* `auth_session`: REQUIRED. String containing a value that allows the Authorization Server to associate subsequent requests by this Wallet with the ongoing authorization request sequence. Wallets SHOULD treat this value as an opaque value. The value returned MUST be distinct for each interactive authorization response.
810811

811812
The Wallet MUST include the most recently received `auth_session` in follow-up requests to the Interactive Authorization Endpoint.
812813

@@ -950,7 +951,19 @@ Cache-Control: no-store
950951
}
951952
```
952953

953-
Once this phase of the Authorization process is completed, the Authorization Server MUST redirect back to the Wallet as per [@RFC6749]. If the Authorization process is complete when this redirect occurs, the Authorization Server returns a response with the `code` parameter as per Section 1.3.1 of [@RFC6749].
954+
Once this phase of the Authorization process is completed, the Authorization Server MUST redirect back to the Wallet as per [@RFC6749]. If the Authorization process is complete when this redirect occurs, the Authorization Server returns a response with the `code` parameter as per Section 1.3.1 of [@RFC6749]. If the Authorization process is not complete when this redirect occurs, the Authorization Server returns a response with the `auth_session` parameter. In the event a Wallet receives a response from the Authorization Server which features the `auth_session` parameter, the Wallet MUST make a follow-up request as per (#follow-up-request) to continue the Authorization process. In the event that PKCE as defined in [@RFC7636] was used in the initial authorization request to the interactive authorization endpoint, the Authorization Server MUST enforce the correct usage of the `code_verifier` in the follow-up request that follows the completion of the `redirect_to_web` interaction.
955+
956+
To ensure the security of the `redirect_to_web` flow, the redirect URI MUST be an `https` URL as per Section 7.2 of [@!RFC8252]. The Wallet MUST NOT use an embedded user-agent to perform the `redirect_to_web` flow. The considerations in Section 8.12 of [@!RFC8252] apply. Platform-specific implementation details are provided in Appendix B of the same document.
957+
958+
A non-normative example of a follow-up request featuring PKCE:
959+
960+
```
961+
POST /iar HTTP/1.1
962+
Host: server.example.com
963+
Content-Type: application/x-www-form-urlencoded
964+
965+
auth_session=wxroVrBY2MCq4dDNGXACS&code_verifier=avjebhrnqwketh
966+
```
954967

955968
#### Custom Interaction Extensions {#iar-custom-extensions}
956969

0 commit comments

Comments
 (0)