Skip to content
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

FAPI 1.0 Non Normative Examples #458

Closed
anzbankau opened this issue Jan 23, 2022 · 6 comments
Closed

FAPI 1.0 Non Normative Examples #458

anzbankau opened this issue Jan 23, 2022 · 6 comments
Labels
Documentation Improvements, additions or queries related to documentation Proposal made The DSB has proposed a specific change to the standards to address the change request Security Change or question related to the information security profile

Comments

@anzbankau
Copy link

anzbankau commented Jan 23, 2022

Description

Review and update of the non-normative examples in line with FAPI 1.0 transition.

Area Affected

Security profile > security end-points

Change Proposed

Proposing for review and update of the non normative examples for the security end points in line with FAPI 1.0 transition phases. More specifically:

  1. PAR end point with PKCE. (The following is an industry reference - https://datatracker.ietf.org/doc/html/rfc9126#section-2.1 )
  2. Authorize end point with PKCE
  3. Authorize end point response with PKCE (including JARM). (The following is an industry reference - https://openid.net/specs/openid-financial-api-part-2-1_0.html#example-jarm-response)

DSB Proposed Solution

The current DSB proposal for this issue is in this comment.

@CDR-API-Stream CDR-API-Stream added Documentation Improvements, additions or queries related to documentation implementation examples requested Security Change or question related to the information security profile labels Feb 6, 2022
@CDR-API-Stream CDR-API-Stream added this to Full Backlog in Data Standards Maintenance via automation Feb 10, 2022
@spikejump
Copy link

We note that https://datatracker.ietf.org/doc/html/rfc9126#section-3 is the appropriate section in PAR that describes the use of the request object.

The first paragraph in section 3 indicates that the only permitted parameters outside of the JWT request parameter are 'client_id', 'client_assertion' and 'client_assertion_type'. As the spec says, "Request parameters required by a given client authentication method are included in the "application/x-www-form-urlencoded" request directly and are the only parameters other than "request" in the form body.... All other request parameters, i.e., those pertaining to the authorization request itself, MUST appear as claims of the JWT representing the authorization request.".

The example in section 3 is a continuation of the example from section 2.1.

Section 4, has an example of authorisation request to the authorisation endpoint.

@CDR-API-Stream
Copy link
Collaborator

In follow up to this change request, it is intended that the following sections are updated to include FAPI 1.0 compliant non-normative examples:

  • OpenID discovery document
  • PAR endpoint
  • Authorisation endpoint
  • Token endpoint
  • SSA endpoint
  • Add and example of the Authorisation Code Flow to Authentication Flows
  • Request Object

This will illustrate support and use of:

  • PAR RFC9126
  • PKCE RFC7636
  • JARM

These examples will be included in addition to the existing non-normative examples with labels to clearly indicate what are pre-FAPI 1.0 of OIDC Hybrid Code Flow examples versus FAPI 1.0 compliant examples using the Authorisation Code Flow.

These non-normative examples will include the Authorisation Server publishing supported metadata parameters via their well known OpenID discovery document, client registration and negotiation as well as authorisation and token endpoint calls.

A sequence diagram illustrating the orchestrated flow is presented below. This will be discussed in the maintenance iteration call held at 2pm AEST 06/04/2022. Non-normative examples will be published after discussion of the flow and additional considerations.

PKCE-and-JARM

Further considerations

  • Do the Client Registration, SSA Definition, Registration Response, and OpenID Provider Configuration End Point sections require any changes to better describe the required OIDD metadata, SSA registration parameters and client authorisation request parameters?
  • Are there any non-normative examples other than listed above which also require changes?
  • Are there any other sections that require clarification for the use of the Authorisation Code Flow (vs OIDC Hybrid Code Flow)

@CDR-API-Stream
Copy link
Collaborator

This issue was discussed in the Maintenance Iteration 11 call. It was agreed to carry this change request into maintenance iteration 11.

@CDR-API-Stream
Copy link
Collaborator

Issue #522 has been raised to deal with the registration of required OIDD metadata parameters for JARM, PAR and PKCE.

@CDR-API-Stream
Copy link
Collaborator

Based on the discussion in Maintenance Iteration 11 the sequence diagram has been updated. A separate change request will be raised to consider the requirements for response encryption using JARM. An OIDF issue has already been raised in relation to this.

PAR-PKCE-JARM-Auth-code-flow

@CDR-API-Stream CDR-API-Stream moved this from In Progress: Design to Full Backlog in Data Standards Maintenance Jul 20, 2022
@elizabetharnold elizabetharnold moved this from Full Backlog to Iteration Candidates in Data Standards Maintenance Aug 1, 2022
@CDR-API-Stream CDR-API-Stream moved this from Iteration Candidates to In Progress: Design in Data Standards Maintenance Aug 17, 2022
@CDR-API-Stream CDR-API-Stream moved this from In Progress: Design to Iteration Candidates in Data Standards Maintenance Aug 17, 2022
@anzbankau
Copy link
Author

We view the below as necessary points to resolve in order to enable FAPI 1 phase 3 implementations:

  • DCR metadata introduced in PAR, JAR (used by PAR, specified in FAPI) and JARM not listed in the client registration JWT template
  • response_types defined in the CDS enumerations for v1.17 don’t include ‘code’ which is required to implement the authorization code flow
  • Sequence diagram indicates that the token response JWT (when using JARM) should be encrypted (step 5.3). This is listed in comments as something that will be resolved in a separate change request, however could this position please be clarified.

@CDR-API-Stream CDR-API-Stream moved this from Iteration Candidates to In Progress: Design in Data Standards Maintenance Oct 5, 2022
@markverstege markverstege moved this from In Progress: Design to In Progress: Staging in Data Standards Maintenance Nov 2, 2022
@CDR-API-Stream CDR-API-Stream added the Proposal made The DSB has proposed a specific change to the standards to address the change request label Nov 22, 2022
@JamesMBligh JamesMBligh moved this from In Progress: Staging to Done in Data Standards Maintenance Dec 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation Improvements, additions or queries related to documentation Proposal made The DSB has proposed a specific change to the standards to address the change request Security Change or question related to the information security profile
Projects
Archived in project
Development

No branches or pull requests

4 participants