-
Notifications
You must be signed in to change notification settings - Fork 40
Building Interactive Authorization on top of first party apps draft #736
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mickrau
wants to merge
8
commits into
main
Choose a base branch
from
719-revisiting-building-iae-on-top-of-first-party-apps-draft
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+143
−159
Open
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
210a48b
add initial comparison table
mickrau ad0d253
add some questions to table
mickrau 34be772
first rough draft specifing interactive authorization with FPA profile
mickrau 0eeb37c
Apply suggestions from code review
mickrau 3a7c046
minor updates
mickrau e07ad06
update comparison to FPA redirect_to_web, as suggested by Gareth.
mickrau d5b4a05
Apply suggestions from code review
mickrau 20058c5
fix Error usage location
mickrau File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| | | [Interactive Authorization Endpoint (VCI 1.1 current draft)](https://openid.github.io/OpenID4VCI/openid-4-verifiable-credential-issuance-1_1-wg-draft.html#name-interactive-authorization-e) | [Oauth 2.0 for 1st Party Application (Draft-3)](https://www.ietf.org/archive/id/draft-ietf-oauth-first-party-apps-03.html) | Open Questions? | | ||
| |-------|------------------------------------|--------------------------------------|---------| | ||
| | **security model** | Third-party application. Wallet is not controlled by same entity as authorization server that protects the credential issuer | First-party applications are applications that are controlled by the same entity as the authorization server. (Profiles can use is for third-party applications with risk assessment) | What risks are associated with third-party apps directly interacting with the user? | | ||
| | **endpoint** | `interactive_authorization_endpoint` parameter in AS Metadata | `authorization_challenge_endpoint` parameter in AS Metadata | | | ||
| | **requests** | (Initial and Follow-Up) Interactive Authorization Request | Authorization Challenge Request, Intermediate Requests are out of scope and must be defined by profile, `authorization_challenge_endpoint` can be reused) | How to specify intermediate requests? IAE distinguishes Follow-up by the presence of `auth_session`, whereas in FPA, `auth_session` can also be present in the initial request. | | ||
| | **responses** | Interaction Required Response, Authorization Code Response, Interactive Authorization Error Response | Authorization Code Response, Error Response (includes requests for more information) | | | ||
| | **scope** | implementation ready specification that defines two interaction types (`urn:openid:dcp:iae:openid4vp_presentation`, `urn:openid:dcp:iae:redirect_to_web`) | defines basic mechanics + `redirect_to_web` option. In order to successfully implement this specification, the Authorization Server will need to define its own specific profile | ||
| | **redirect_to_web** | `redirect_to_web` can be used multiple times in any place in Authorization process. As returns code (finished) or access code (follow up) | `redirect_to_web` as fallback (initiates a new authorization code flow). Not described how to proceed interaction after redirect to client | is this a limitation, that should be solved? | | | | ||
| | **extensibility** | can be extended by interaction_types (collision-resistant URNs) | can be extended by profiles (no explicit profile name needed in request) which defines additional parameters and error codes | can we build interaction_types in profile or should this part of the spec? | | ||
| | **negotiation** | by using interaction_types_supported in initial request | not defined ([#173](https://github.com/oauth-wg/oauth-first-party-apps/issues/173)) | see above | | ||
| | **auth_session** | MUST be distinct for each interactive authorization response. DPOP binding under discussion ([#718](https://github.com/openid/OpenID4VCI/issues/718)). Not (re)used by client for new initial request. | SHOULD be associated with DPOP public, MUST be stored by client beyond the issuance of the authorization code ([#174](https://github.com/oauth-wg/oauth-first-party-apps/issues/174)) | Should profile define that `auth_session` should not be stored by client, and new flow starts without `auth_session`? | | ||
| | | | | | | ||
| | | | | | | ||
| | | | | | | ||
| | | | | | | ||
|
|
||
|
|
||
| ## OpenID4VCI Profile Draft | ||
|
|
||
| - [ ] describe how the application of this specification avoids the risks associated with third-party apps directly interacting with the user | ||
| - [ ] custom Authorization Challenge Request Parameters | ||
| - [ ] custom Authorization Challenge Response Parameters | ||
| - [ ] additional requests needed? | ||
|
|
||
| ### Authorization Challenge Request Parameters | ||
| In addition to the request parameters defined in Section 5.1, the authorization server defines the additional parameters below. | ||
|
|
||
| "_": | ||
| ?? | ||
|
|
||
| ### Authorization Challenge Response Parameters | ||
| In addition to the response parameters defined in Section 5.2, the authorization server defines the additional parameter below. | ||
|
|
||
| "_": | ||
| ?? | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to recommend that
redirect_to_webbe renamed tomethod_via_web. This separates the behavior of this profile from theredirect_to_webbehavior defined in FiPA as the two are semantically different.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. We should define "our own" version of
redirect_to_web. Note that this table is more of an overview made as preparatory work.In the actual text, the interaction type is currently named
urn:openid:dcp:ia:redirect_to_web, but we might want to rename it to make the separation clearer.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i have no strong opinion on whether to use
urn:openid:dcp:ia:redirect_to_weborurn:openid:dcp:ia:method_via_web. If there was consensus/no objection during the call, I can gladly change it.