Skip to content

Commit d6ee7cf

Browse files
committed
Make auth_session optional if other binding mechanism exists.
The auth_session parameter is not needed in the all Interaction Required Responses since some interaction types already include a way to associate the next request with the ongoing auth sequence. This makes the requirement for auth_session conditional on there not being some other mechanism for binding the request to the auth sequence. It also adds a description of why the auth_session is not necessary in the redirect_to_web case and the custom example.
1 parent ffcce76 commit d6ee7cf

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,9 +808,13 @@ Depending on this assessment, the response from the Interactive Authorization En
808808
### Interaction Required Response {#iae-interaction-required-response}
809809

810810
By setting `status` to `require_interaction` in the response, the Authorization Server requests an additional user interaction.
811-
In this case, the following keys MUST be present in the response as well:
811+
In this case, the following key MUST be present in the response as well:
812812

813813
* `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.
814+
815+
The Authorization Server MUST provide a mechanism to associate the next request by this Wallet with the ongoing authorization request sequence.
816+
If no other mechanism to associate the next request by this Wallet with the ongoing authorization request sequence is defined by the type of interaction, the following key MUST be present in the response as well:
817+
814818
* `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.
815819

816820
The Wallet MUST include the most recently received `auth_session` in follow-up requests to the Interactive Authorization Endpoint.
@@ -826,6 +830,8 @@ If `type` is set to `openid4vp_presentation`, as shown in the following example,
826830
* The `response_mode` MUST be either `iae-post` for unencrypted responses or `iae-post.jwt` for encrypted responses. These modes are used to indicate to the Wallet to return the response back to the same Interactive Authorization Endpoint.
827831
* If `expected_origins` is present, it MUST contain only the derived Origin of the Interactive Authorization Endpoint as defined in Section 4 in [@RFC6454]. For example, the derived Origin from `https://example.com/iae` is `https://example.com`.
828832

833+
The response MUST include the key `auth_session` to associate the next request by this Wallet with the ongoing authorization request sequence.
834+
829835
The following is a non-normative example of an unsigned Authorization Request:
830836

831837
```
@@ -939,6 +945,8 @@ In this case, the Authorization server MUST include the key `request_uri` in the
939945
The Wallet MUST use the `request_uri` value to build an Authorization Request as defined in Section 4 of [@!RFC9126] and complete the rest of the authorization process as defined there.
940946
The Authorization Server MAY include the `expires_in` key as defined in [@!RFC9126].
941947

948+
Since the `request_uri` allows the Authorization Server to associate the Authorization Request with the ongoing authorization request sequence, no `auth_session` is needed.
949+
942950
Non-normative Example:
943951

944952
```
@@ -975,6 +983,7 @@ It is RECOMMENDED to use this extension point instead of modifying the OAuth pro
975983
See (#iae-security) for additional security considerations.
976984

977985
In the following non-normative example, this extension point is used to read the Betelgeuse Intergalactic ID card through an NFC interface in the Wallet. A token called `biic_token` is used to start the process.
986+
It is assumed that the `biic_token` is used by the Authorization Server to associate the next request by this Wallet with the ongoing authorization request sequence, and no `auth_session` is thus needed.
978987

979988
```
980989
HTTP/1.1 200 OK

0 commit comments

Comments
 (0)