Is nonce required with JARM?
Comment from Nat from a JARM thread:
This conversation also made me became aware of the subtle difference in the security posture.
It may well be a bug of FAPI 1.0 Advanced.
In the case of hybrid flow, `nonce` is required while in the case of JARM, it is not.
So the binding characteristics between the authorization request and token response is a bit different between them, probably a bit weaker in the case of reponse_mode=jwt (JARM).
Comments (8)
-
-
(in the “not using scope=openid” case, state is required instead)
-
I came here to say what @Joseph Heenan said but will pedantically link to the published spec:
https://openid.net/specs/openid-financial-api-part-1-1_0.html#client-requesting-openid-scope
-
And the design assumption was that it does, as it always had “openid” in the scope in the case without JARM so that there always is nonce and all the messages in one protocol execution would be threaded by the nonce. The introduction of JARM was supposed to provide only another mode and was not intended to produce a change in the security posture.
-
- changed component to Part 2: Advanced
-
- changed component to FAPI 1 – Part 2: Advanced
-
- changed component to FAPI 1: Advanced
-
- changed status to resolved
Will deal with in this ticket: https://bitbucket.org/openid/fapi/issues/571/document-differences-between-fapi1advanced
- Log in to comment
I believe that nonce is required in FAPI1Adv when using JARM with scope=openid - as per https://bitbucket.org/openid/fapi/src/master/FAPI_1.0/openid-financial-api-part-1-1_0.md
(and if you’re not using scope=openid, nonce is not required, because there’s nowhere to return a nonce)