-
Notifications
You must be signed in to change notification settings - Fork 9
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
Transition of required parameters in the CDR Arrangement JWT #521
Comments
Thank you for raising this change. We are a Data Holder impacted by this issue and are supportive of Option 2. A obligation date of 31/08/2022 would be appropriate in our view. |
Hi all / @anzbankau This change request has been updated with a third option. Given the timeframes of the existing obligations and issues identified to Data Holders this change can be treated as urgent if community input requests it to be. |
Following on from the addition of option 3 - ANZ maintain support of option 2 as it honours any existing implementation that has been complete during the transition period from 31st March to 31st July. That is, the prior FDO in 1.15 should remain intact for 31st July. A new FDO for the addition of all parameters to JWT should assigned to allow DH and ADR to implement required changes. We would support a FDO for this new aspect of either 31/08/2022 or 15/11/2022, with the later date potentially preferable to give ADRs a longer lead time to implement. It could also be clarified for Option 2 that although the ADRs will need to accept both style of JWT, they will not need to validate that all parameters are present. The addition of validation will then be added in the new FDO date. We request this change to be treated urgently so there is predictability about the required changes by DH and ADR for 31st July. |
Given the change wasn't properly published in the Standards until 1.17.0 (May 2022) it seems appropriate that the FDO now move so Option 3 is supported. Requesting Data Recipients to change their implementation to work around a documentation defect introduced by the DSB is not appropriate. Holders should reverse their broken implementation and the DSB should facilitate a mechanism for handling backward compatible. As a result of the above it seems appropriate to introduce some FAPI like wording to support sending duplicate parameter (notably
This matters because a Data Holder can't transition to only Finally, this issue (and it's precursors) seems to be highlighting the brokenness of the DSBs merge and release strategy. |
This change request has been marked as urgent with the approval of the Data Standards Chair to progress a solution to provide transition certainly prior to the current obligation date of July 31st 2022. |
CBA proposes a fourth option, which combines aspects of option two and three to allow for a broader scope of current implementations to be supported until participants are able to implement the required solution. From a Data Holder perspective, extend the timeframe that both methods are accepted until 15 November 2022 (CDR Arrangement Form Parameter method and the CDR Arrangement JWT method), and where the CDR Arrangement JWT method is used, allow the Data Holder to present a JWT with either (a) only the cdr_arrangement_id or (b) a complete JWT, at which point they will be required to use only the CDR Arrangement JWT methods, constructing the JWT with all required parameters. From a Data Recipient perspective, extend support of both methods, and where the CDR Arrangement JWT method is used, only validate the cdr_arrangement ID, until the new obligation date (proposed as 15 November above), at which point only the CDR Arrangement JWT method should be accepted, and all required parameters should be validated. CBA would also like to note that https://github.com/ConsumerDataStandardsAustralia/standards-maintenance/issues/247 was previously raised to propose alternative solutions to implement the functionality currently managed by the ADR revocation endpoint, and that the options presented in that CR would reduce complexity and increase security and interoperability. In addition, it is noted that the current ADR revocation endpoint is completely custom designed and not protected by any security profile (such as FAPI), and requires proper threat and security analysis to be done to make sure this doesn’t cause ecosystem problems in the future. |
Feedback and discussionBased on discussion in the maintenance iteration call, it was supported that
For Data Holders This would retain the 31st July 2022 transition but allow Data Holders to ship a CDR Arrangement JWT including only the Noting that feedback has indicated that for the options presented above, it was requested that transition be extended to November 15th 2022. It is unclear whether this would be needed now that support of the JWT excluding additional Self-Signed JWT claims is not required. Data Holders may send the revocation request using the CDR Arrangement JWT using only the cdr_arrangement_id from July 31st 2022. For Data Recipients This would require them to continue to accept the This proposal would also require Data Recipients to validate all parameters, where presented within the JWT, are correct. Data Recipients would have additional build requirements to not reject the Feedback indicated that Data Recipients are currently supporting both being presented together and they are validating JWTs presented with only the ProposalData Recipient hosted endpoint The location of the Data Recipient Software Product CDR Arrangement Revocation End Point is determined by the This end point will be implemented according to the following:
CDR Arrangement JWT method The request MUST include the following parameters using the application/x-www-form-urlencoded format in the HTTP request entity-body:
The Further discussionThis change was discussed as a transition state towards a longer-term target state where a more secure solution is adopted for secure event notifications to Data Recipients. This was discussed as part of the FAPI 2.0 transition for consultation later in 2022. Discussion also considered the need for explicit standards defining how ADRs verify that a Data Holder is still a valid active participant. |
It seems the original issue is really some Data Holders not able to meet the July 31st 2022 obligation date. The way the options are proposed are very one-sided with Data Holders having the flexibility to support the new obligation when they're ready. But the Data Recipients are required to support new obligation with added functional requirements. i.e. support both formats concurrently as well as validating |
Hi @spikejump, the purpose is multi-faceted. This proposal seeks to support a transition where Data Recipients continue to receive a revocation request they can handle whilst minimising impact for both Data Recipients and Data Holders. We have feedback that some ADRs can meet the current obligation date and all Data Recipients should currently support JWT validation and validation of the The only changes after 31st of July that weren't previously articulated are:
For the inclusion of Self-Signed JWT claims, rather than making this a MUST for Data Holders it was agreed on the maintenance iteration call that applying a SHOULD requirement for Data Holders to send a JWT including the If you have other views you'd like to progress please include them in the conversation. |
Hi @CDR-API-Stream, Perhaps the ADRs can have relaxation on compliance on the new requirement to match It is most unlikely that DHs will be requesting revocation with two different May be one of the following options will be acceptable:
Option 1 is the best and would be surprising it will be an issue with the DHs. In this case, no change for ADRs. May be a combination of Options 1 & 2 are suitable. Thanks for the consideration. |
Hi @spikejump,
Feedback from ADRs on the maintenance iteration call last week indicated that some are already correctly handling this scenario. Given we are currently within the transition phase, ADRs should be handling both the form parameter and JWT methods presently.
That is certainly the expectation. However given the DH is acting as the client in this request it is important for the ADR to correctly handle situations where both values are different.
Perhaps in this situation additional statements to the affect of Data Holders should not send or must not send a different cdr_arrangement_id if sending both from parameter and JWT could be included however as part of any server side validation, ADRs shouldn't be relying on clients doing the right thing. This issue is on the agenda for the Maintenance Iteration call tomorrow. If you can attend that would be helpful to further this discussion. Given this issue is marked as urgent, the intention is to arrive at a resolution at the conclusion of the call. |
Hi @CDR-API-Stream, Given the expectation is no DHs will send two different In addition, what should ADRs return in terms of error code when Thanks for the consideration. p.s. Apologies I won't be able to make the call today as I've been sick. I only happened to see this when dealing with something critical. |
CBA agrees with Intuit, that if an additional requirement is being placed on ADRs to match the cdr_arrangement_id when both forms are present in the same request, a July 31st obligation date does not allow for enough time to support this change. CBA recommends extending the compliance date in line with the typical 6 month allowance. The alternative options proposed by Intuit, whereby matching is not be required, is preferable. CBA supports either Option 1 or Option 2, as both options remove the requirement for and ADR to build additional selection logic if both options are present. |
Hi @spikejump,
The standards currently state that both methods are to be supported:
|
@CDR-API-Stream
This seems to contradict the design of the original proposed solution whose example can still be found in the current version of CDS (screenshot is attached). In https://consumerdatastandardsaustralia.github.io/standards/#client-authentication under
|
Hi @CDR-API-Stream,
We've read above quoted part of the specification multiple times. We've never read it as supporting both methods in the same request. We'd say this is a typical interpretation issue for specifications. Our interpretation of the above is that ADRs are to support both formats during the transition period to facilitate DHs sending old format as well as those DHs (that have uplifted) sending new format but not both formats together in the same request. We don't believe we're alone in this interpretation. To be frank, it is unexpected for a DH to send both formats in the same request given the old format will need to be removed in the near future. It will be another uplift for the DHs later to remove redundant code in which the exercise will incur additional (unnecessary) costs. The costs could have being avoided if the old format was removed when new format adopted. Given where we are, we think our proposed Option 1, 2 are quite reasonable. |
Thanks all for the additional feedback. Option 1 would be hard to enforce and would be an anti-pattern for request validation. For Option 2, if I understand your proposal correctly @spikejump, where both JWT and form parameter are sent in the same request, an additional transition is required (15/11/2022) for ADRs to validate a This aligns to the intent of introducing the JWT in the first place. The updated proposal incorporating @spikejump and @commbankoss feedback is as follows (note 🟧 indicates the changed statements): Data Recipient hosted endpoint The location of the Data Recipient Software Product CDR Arrangement Revocation End Point is determined by the This end point will be implemented according to the following:
CDR Arrangement JWT method The request MUST include the following parameters using the application/x-www-form-urlencoded format in the HTTP request entity-body:
The |
This change as presented above is staged for review: |
One of the staged change says:
Should this not say MUST? The SHOULD implies not all required parameters need to be supplied which contradicts the MUST wording in Self-Signed JWT Client Authentication. Perhaps something like the below was intended? The |
In the staged change above, an additional clarifying statement has been proposed for Data Recipient software product validation to deal with Data Holders sending all Self-Signed JWT claims:
|
Hi @spikejump,
The feedback during the maintenance iteration calls supported a SHOULD (strong recommendation) to permit Data Holders to continue to send the cdr_arrangement_jwt as is during the active transition period but upgrade to supporting all Self-Signed JWT claims as soon as practicable. |
Hi @CDR-API-Stream, Thanks for the clarification. Where the statement of
appears in the spec in the staged doc does not imply it is only for transition. It sits in "CDR Arrangement JWT method" section and before "Data Holder hosted endpoint" section?? or have we misread the staged information. It would be clearer if the SHOULD is called out as only applicable during transition period. Thanks. |
Hi @spikejump thanks for your feedback on this. The retention of SHOULD was discussed and considered acceptable. The implementation of including all parameters is highly recommended and many DHs indicated their security posture was to do so. |
Hi @CDR-API-Stream, We are concerned that without clarification of the SHOULD being transitional only, then post Nov when an (existing/upcoming) DH does not send all the MUST claims/parameters (eg. missing What may be the concern of stating the SHOULD sentence being transitional only? |
Description
Version 1.17.0 clarified that the CDR Arrangement JWT presented by the Data Holder to the Data Recipient must include
Some Data Holders have indicated that:
cdr_arrangement_id
.Area Affected
CDR Arrangement Revocation End Point - CDR Arrangement JWT method.
Change Proposed
Option 1: No change - transition requirements as described are unchanged. In this situation,
Option 2: New transition arrangements - new transition arrangements are introduced to allow Data Holders to present a JWT with either (a) only the
cdr_arrangement_id
, or (b) a complete JWT. In this situation,Option 3: Extend existing transition arrangements - the current transition arrangements are extended to allow Data Holders to present a JWT a complete JWT with a longer lead time. In this situation,
cdr_arrangement_id
using the "CDR Arrangement Form Parameter" methodcdr_arrangement_jwt
in accordance to the "CDR Arrangement JWT" method must validate that all claims including those in accordance with the Self-Signed JWT Client Authentication requirements.Feedback is sought from Data Holders that are affected and what impact Option 2 and Option 3 would impose on Data Recipients.
Option 3 is preferred. This will extend existing obligation dates. The proposed obligation date would change from July 31st 2022 to FDO Y22 #3 (August 31st 2022) or FDO Y22 #4 (November 15th 2022). Feedback is sought on the existing obligation dates and the desired transition period.
The text was updated successfully, but these errors were encountered: